debspawn 0.6.3 on cumin at 2023-06-21 20:11:11 UTC+0000 dpkg-source: info: extracting vg in vg-1.30.0+ds dpkg-source: info: unpacking vg_1.30.0+ds.orig.tar.xz dpkg-source: info: unpacking vg_1.30.0+ds-1.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying gcc-10 dpkg-source: info: applying use_packaged_libdeflate dpkg-source: info: applying use_packaged_jemalloc dpkg-source: info: applying use_packaged_libbackward-cpp dpkg-source: info: applying use_packaged_elfutils dpkg-source: info: applying use_packaged_raptor2 dpkg-source: info: applying no_need_for_snappy dpkg-source: info: applying use_packaged_sparsehash dpkg-source: info: applying use_packaged_ssw dpkg-source: info: applying use_packaged_rapidjson dpkg-source: info: applying use_packaged_fermi-lite dpkg-source: info: applying spelling dpkg-source: info: applying no_rpath dpkg-source: info: applying no_pg dpkg-source: info: applying use_packaged_fastahack dpkg-source: info: applying hardening_flags dpkg-source: info: applying use_packaged_smithwaterman dpkg-source: info: applying static dpkg-source: info: applying use_packaged_lz4 dpkg-source: info: applying parallize_better dpkg-source: info: applying use_packaged_libtsl-hopscotch-map-dev dpkg-source: info: applying libVCFH_unneeded dpkg-source: info: applying better_clean dpkg-source: info: applying use_packaged_vcflib dpkg-source: info: applying use_packaged_htslib dpkg-source: info: applying simde dpkg-source: info: applying crossbuild dpkg-source: info: applying python3 dpkg-source: info: applying fix-handlegraph ╔═══════════════════════╗ ║ Package build ║ ╚═══════════════════════╝ Package: vg Version: 1.30.0+ds-1 Distribution: landing Architecture: arm64 Free space in workspace: 84.0GiB ┌───────────────────────────────────────┐ │ Preparing container for build │ └───────────────────────────────────────┘ Get:1 https://repo.pureos.net/pureos landing InRelease [8717 B] Get:2 https://repo.pureos.net/pureos landing/main all Packages [3713 kB] Fetched 3722 kB in 3s (1383 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... Calculating upgrade... The following packages will be upgraded: dpkg-dev libdpkg-perl 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/1960 kB of archives. After this operation, 1529 kB disk space will be freed. debconf: delaying package configuration, since apt-utils is not installed (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 13138 files and directories currently installed.) Preparing to unpack .../dpkg-dev_1.21.22pureos1_all.deb ... Unpacking dpkg-dev (1.21.22pureos1) over (1.20.12pureos1) ... Preparing to unpack .../libdpkg-perl_1.21.22pureos1_all.deb ... Unpacking libdpkg-perl (1.21.22pureos1) over (1.20.12pureos1) ... Setting up libdpkg-perl (1.21.22pureos1) ... Setting up dpkg-dev (1.21.22pureos1) ... Reading package lists... Building dependency tree... Reading state information... build-essential is already the newest version (12.9). dpkg-dev is already the newest version (1.21.22pureos1). fakeroot is already the newest version (1.31-1.2). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. ┌───────────────────────────────────────────────┐ │ Installing package build-dependencies │ └───────────────────────────────────────────────┘ Note, using directory './' to get the build dependencies Reading package lists... Building dependency tree... Reading state information... The following NEW packages will be installed: autoconf automake autopoint autotools-dev bc bison bsdextrautils bsdmainutils bwa cmake cmake-data debhelper dh-autoreconf dh-strip-nondeterminism docbook docbook-to-man docbook-xml docbook-xsl dwz elfutils fastahack file flex fontconfig fontconfig-config fonts-dejavu-core gawk gettext gettext-base groff-base gtk-doc-tools help2man icu-devtools intltool-debian jq libarchive-zip-perl libarchive13 libasm1 libbackward-cpp-dev libblas3 libblkid-dev libboost-program-options-dev libboost-program-options1.74-dev libboost-program-options1.74.0 libboost1.74-dev libbrotli-dev libbrotli1 libbsd0 libbz2-dev libcairo-gobject2 libcairo-script-interpreter2 libcairo2 libcairo2-dev libcurl3-gnutls libcurl4 libcurl4-gnutls-dev libdatrie1 libdebhelper-perl libdeflate-dev libdeflate0 libdisorder-dev libdisorder0 libdivsufsort-dev libdivsufsort3 libdw-dev libdw1 libelf-dev libelf1 libexpat1-dev libfastahack-dev libfastahack0 libffi-dev libfile-stripnondeterminism-perl libfml-dev libfml0 libfontconfig-dev libfontconfig1 libfreetype-dev libfreetype6 libfribidi0 libgfortran5 libglib2.0-0 libglib2.0-bin libglib2.0-data libglib2.0-dev libglib2.0-dev-bin libgmp-dev libgmpxx4ldbl libgraphite2-3 libharfbuzz0b libhts-dev libhts3 libhtscodecs2 libice-dev libice6 libicu-dev libicu72 libjansson-dev libjbig0 libjemalloc-dev libjemalloc2 libjpeg62-turbo libjq1 libjsoncpp25 liblapack3 libldap-2.5-0 liblerc4 liblocale-gettext-perl libltdl7 liblz4-dev liblzma-dev liblzo2-2 libmagic-mgc libmagic1 libmd0 libmhash2 libmount-dev libncurses-dev libncurses5-dev libncurses6 libncursesw6 libnghttp2-14 libonig5 libosp5 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpaper-utils libpaper1 libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpipeline1 libpixman-1-0 libpixman-1-dev libpkgconf3 libpng-dev libpng16-16 libproc2-0 libprotobuf-dev libprotobuf-lite32 libprotobuf32 libprotoc-dev libprotoc32 libpsl5 libpthread-stubs0-dev libpython3-stdlib libpython3.11-stdlib libraptor2-0 libraptor2-dev librasqal3 librasqal3-dev librdf0 librdf0-dev libreadline8 librhash0 librtmp1 libsasl2-2 libsasl2-modules-db libselinux1-dev libsepol-dev libsigsegv2 libsimde-dev libsm-dev libsm6 libsmithwaterman-dev libsmithwaterman0 libsparsehash-dev libsqlite3-0 libssh2-1 libssw-dev libssw0 libsub-override-perl libtabixpp-dev libtabixpp0 libtcl8.6 libthai-data libthai0 libtiff6 libtk8.6 libtool libtsl-hopscotch-map-dev libuchardet0 libuv1 libvcflib-dev libvcflib-tools libvcflib1 libwebp7 libx11-6 libx11-data libx11-dev libxau-dev libxau6 libxcb-render0 libxcb-render0-dev libxcb-shm0 libxcb-shm0-dev libxcb1 libxcb1-dev libxdmcp-dev libxdmcp6 libxext-dev libxext6 libxft2 libxml2 libxml2-dev libxrender-dev libxrender1 libxslt1-dev libxslt1.1 libxss1 libxt6 libyajl-dev libyajl2 littler m4 man-db media-types ncal opensp pkg-config pkgconf pkgconf-bin po-debconf procps protobuf-compiler pv python3 python3-distutils python3-lib2to3 python3-lxml python3-pkg-resources python3-pygments python3.11 r-base-core r-cran-cli r-cran-colorspace r-cran-fansi r-cran-farver r-cran-ggplot2 r-cran-glue r-cran-gridbase r-cran-gtable r-cran-isoband r-cran-labeling r-cran-lattice r-cran-lifecycle r-cran-littler r-cran-magrittr r-cran-mass r-cran-matrix r-cran-mgcv r-cran-munsell r-cran-nlme r-cran-pillar r-cran-pkgconfig r-cran-pkgkitten r-cran-plyr r-cran-r6 r-cran-rcolorbrewer r-cran-rcpp r-cran-rlang r-cran-scales r-cran-tibble r-cran-utf8 r-cran-vctrs r-cran-viridislite r-cran-withr rapidjson-dev raptor2-utils rasqal-utils readline-common rs samtools sensible-utils sgml-base sgml-data tabix ucf unzip uuid-dev x11-common x11proto-core-dev x11proto-dev xdg-utils xml-core xorg-sgml-doctools xsltproc xtrans-dev xxd zip zlib1g-dev 0 upgraded, 293 newly installed, 0 to remove and 0 not upgraded. Need to get 73.5 MB/164 MB of archives. After this operation, 661 MB of additional disk space will be used. Get:1 https://repo.pureos.net/pureos landing/main arm64 flex arm64 2.6.4-8.2 [411 kB] Get:2 https://repo.pureos.net/pureos landing/main arm64 ncal arm64 12.1.8 [19.2 kB] Get:3 https://repo.pureos.net/pureos landing/main all bsdmainutils all 12.1.8 [5952 B] Get:4 https://repo.pureos.net/pureos landing/main arm64 bc arm64 1.07.1-3 [107 kB] Get:5 https://repo.pureos.net/pureos landing/main arm64 bison arm64 2:3.8.2+dfsg-1+b1 [1152 kB] Get:6 https://repo.pureos.net/pureos landing/main all sgml-data all 2.0.11+nmu1 [179 kB] Get:7 https://repo.pureos.net/pureos landing/main all docbook all 4.5-10 [131 kB] Get:8 https://repo.pureos.net/pureos landing/main arm64 libosp5 arm64 1.5.2-13+b2 [884 kB] Get:9 https://repo.pureos.net/pureos landing/main arm64 opensp arm64 1.5.2-13+b2 [414 kB] Get:10 https://repo.pureos.net/pureos landing/main arm64 docbook-to-man arm64 1:2.0.0-45 [75.6 kB] Get:11 https://repo.pureos.net/pureos landing/main all docbook-xml all 4.5-12 [85.2 kB] Get:12 https://repo.pureos.net/pureos landing/main all docbook-xsl all 1.79.2+dfsg-2 [1237 kB] Get:13 https://repo.pureos.net/pureos landing/main arm64 libasm1 arm64 0.188-2.1 [27.2 kB] Get:14 https://repo.pureos.net/pureos landing/main arm64 elfutils arm64 0.188-2.1 [427 kB] Get:15 https://repo.pureos.net/pureos landing/main arm64 libdisorder0 arm64 0.0.2+git20130809.8062ee1-4+b1 [4880 B] Get:16 https://repo.pureos.net/pureos landing/main arm64 libfastahack0 arm64 1.0.0+dfsg-10 [23.8 kB] Get:17 https://repo.pureos.net/pureos landing/main arm64 fastahack arm64 1.0.0+dfsg-10 [12.2 kB] Get:18 https://repo.pureos.net/pureos landing/main all python3-pygments all 2.14.0+dfsg-1 [783 kB] Get:19 https://repo.pureos.net/pureos landing/main arm64 xsltproc arm64 1.1.35-1 [126 kB] Get:20 https://repo.pureos.net/pureos landing/main all gtk-doc-tools all 1.33.2-1 [329 kB] Get:21 https://repo.pureos.net/pureos landing/main arm64 libonig5 arm64 6.9.8-1 [179 kB] Get:22 https://repo.pureos.net/pureos landing/main arm64 libjq1 arm64 1.6-2.1 [121 kB] Get:23 https://repo.pureos.net/pureos landing/main arm64 jq arm64 1.6-2.1 [64.5 kB] Get:24 https://repo.pureos.net/pureos landing/main all libbackward-cpp-dev all 1.6-1 [34.3 kB] Get:25 https://repo.pureos.net/pureos landing/main arm64 libdisorder-dev arm64 0.0.2+git20130809.8062ee1-4+b1 [4856 B] Get:26 https://repo.pureos.net/pureos landing/main arm64 libdivsufsort3 arm64 2.0.1-5 [38.9 kB] Get:27 https://repo.pureos.net/pureos landing/main arm64 libdivsufsort-dev arm64 2.0.1-5 [19.1 kB] Get:28 https://repo.pureos.net/pureos landing/main arm64 libelf-dev arm64 0.188-2.1 [73.8 kB] Get:29 https://repo.pureos.net/pureos landing/main arm64 libdw-dev arm64 0.188-2.1 [299 kB] Get:30 https://repo.pureos.net/pureos landing/main arm64 libfastahack-dev arm64 1.0.0+dfsg-10 [26.1 kB] Get:31 https://repo.pureos.net/pureos landing/main arm64 libfml0 arm64 0.1+git20190320.b499514-1+b1 [65.9 kB] Get:32 https://repo.pureos.net/pureos landing/main arm64 libfml-dev arm64 0.1+git20190320.b499514-1+b1 [79.5 kB] Get:33 https://repo.pureos.net/pureos landing/main arm64 libjansson-dev arm64 2.14-2 [44.4 kB] Get:34 https://repo.pureos.net/pureos landing/main arm64 libjemalloc2 arm64 5.3.0-1 [217 kB] Get:35 https://repo.pureos.net/pureos landing/main arm64 libjemalloc-dev arm64 5.3.0-1 [357 kB] Get:36 https://repo.pureos.net/pureos landing/main arm64 libmhash2 arm64 0.9.9.9-9 [99.9 kB] Get:37 https://repo.pureos.net/pureos landing/main arm64 libprotobuf32 arm64 3.21.12-3 [821 kB] Get:38 https://repo.pureos.net/pureos landing/main arm64 libprotobuf-lite32 arm64 3.21.12-3 [240 kB] Get:39 https://repo.pureos.net/pureos landing/main arm64 libprotobuf-dev arm64 3.21.12-3 [1219 kB] Get:40 https://repo.pureos.net/pureos landing/main arm64 libprotoc32 arm64 3.21.12-3 [718 kB] Get:41 https://repo.pureos.net/pureos landing/main arm64 libprotoc-dev arm64 3.21.12-3 [866 kB] Get:42 https://repo.pureos.net/pureos landing/main arm64 libyajl2 arm64 2.1.0-3 [22.9 kB] Get:43 https://repo.pureos.net/pureos landing/main arm64 libraptor2-0 arm64 2.0.15-4 [150 kB] Get:44 https://repo.pureos.net/pureos landing/main arm64 libyajl-dev arm64 2.1.0-3 [31.5 kB] Get:45 https://repo.pureos.net/pureos landing/main arm64 libraptor2-dev arm64 2.0.15-4 [189 kB] Get:46 https://repo.pureos.net/pureos landing/main arm64 librasqal3 arm64 0.9.33-2 [177 kB] Get:47 https://repo.pureos.net/pureos landing/main arm64 librasqal3-dev arm64 0.9.33-2 [224 kB] Get:48 https://repo.pureos.net/pureos landing/main arm64 librdf0 arm64 1.0.17-3 [97.8 kB] Get:49 https://repo.pureos.net/pureos landing/main arm64 librdf0-dev arm64 1.0.17-3 [237 kB] Get:50 https://repo.pureos.net/pureos landing/main all libsimde-dev all 0.7.4~rc2-2 [377 kB] Get:51 https://repo.pureos.net/pureos landing/main arm64 libsmithwaterman0 arm64 0.0+git20160702.2610e25-12+b1 [32.7 kB] Get:52 https://repo.pureos.net/pureos landing/main arm64 libsmithwaterman-dev arm64 0.0+git20160702.2610e25-12+b1 [38.4 kB] Get:53 https://repo.pureos.net/pureos landing/main all libsparsehash-dev all 2.0.3-2 [76.8 kB] Get:54 https://repo.pureos.net/pureos landing/main arm64 libtabixpp0 arm64 1.1.2-1 [9120 B] Get:55 https://repo.pureos.net/pureos landing/main arm64 libtabixpp-dev arm64 1.1.2-1 [8756 B] Get:56 https://repo.pureos.net/pureos landing/main all libtsl-hopscotch-map-dev all 2.3.0-3 [36.9 kB] Get:57 https://repo.pureos.net/pureos landing/main arm64 libvcflib1 arm64 1.0.3+dfsg-2 [132 kB] Get:58 https://repo.pureos.net/pureos landing/main arm64 libvcflib-dev arm64 1.0.3+dfsg-2 [85.2 kB] Get:59 https://repo.pureos.net/pureos landing/main arm64 r-base-core arm64 4.2.2.20221110-2 [25.7 MB] Get:60 https://repo.pureos.net/pureos landing/main arm64 r-cran-littler arm64 0.3.17-1 [95.6 kB] Get:61 https://repo.pureos.net/pureos landing/main all littler all 0.3.17-1 [14.4 kB] Get:62 https://repo.pureos.net/pureos landing/main all r-cran-pkgkitten all 0.2.2-2 [27.0 kB] Get:63 https://repo.pureos.net/pureos landing/main arm64 r-cran-rcpp arm64 1.0.10-1 [2043 kB] Get:64 https://repo.pureos.net/pureos landing/main arm64 r-cran-plyr arm64 1.8.8-1 [830 kB] Get:65 https://repo.pureos.net/pureos landing/main arm64 r-cran-cli arm64 3.6.0-1 [1282 kB] Get:66 https://repo.pureos.net/pureos landing/main arm64 r-cran-glue arm64 1.6.2-1 [152 kB] Get:67 https://repo.pureos.net/pureos landing/main all r-cran-gtable all 0.3.1+dfsg-1 [165 kB] Get:68 https://repo.pureos.net/pureos landing/main arm64 r-cran-isoband arm64 0.2.7-1 [1612 kB] Get:69 https://repo.pureos.net/pureos landing/main arm64 r-cran-rlang arm64 1.0.6-1 [1614 kB] Get:70 https://repo.pureos.net/pureos landing/main all r-cran-lifecycle all 1.0.3+dfsg-1 [109 kB] Get:71 https://repo.pureos.net/pureos landing/main arm64 r-cran-mass arm64 7.3-58.2-1 [1120 kB] Get:72 https://repo.pureos.net/pureos landing/main arm64 r-cran-lattice arm64 0.20-45-3 [1175 kB] Get:73 https://repo.pureos.net/pureos landing/main arm64 r-cran-nlme arm64 3.1.162-1 [2255 kB] Get:74 https://repo.pureos.net/pureos landing/main arm64 r-cran-matrix arm64 1.5-3-1 [3757 kB] Get:75 https://repo.pureos.net/pureos landing/main arm64 r-cran-mgcv arm64 1.8-41-1 [3144 kB] Get:76 https://repo.pureos.net/pureos landing/main arm64 r-cran-farver arm64 2.1.1-1 [1388 kB] Get:77 https://repo.pureos.net/pureos landing/main all r-cran-labeling all 0.4.2-1 [62.7 kB] Get:78 https://repo.pureos.net/pureos landing/main arm64 r-cran-colorspace arm64 2.1-0+dfsg-1 [1690 kB] Get:79 https://repo.pureos.net/pureos landing/main all r-cran-munsell all 0.5.0-2 [236 kB] Get:80 https://repo.pureos.net/pureos landing/main all r-cran-r6 all 2.5.1-1 [105 kB] Get:81 https://repo.pureos.net/pureos landing/main all r-cran-rcolorbrewer all 1.1-3-1 [54.7 kB] Get:82 https://repo.pureos.net/pureos landing/main all r-cran-viridislite all 0.4.1-1 [1299 kB] Get:83 https://repo.pureos.net/pureos landing/main all r-cran-scales all 1.2.1-1 [614 kB] Get:84 https://repo.pureos.net/pureos landing/main arm64 r-cran-fansi arm64 1.0.4-1 [615 kB] Get:85 https://repo.pureos.net/pureos landing/main arm64 r-cran-magrittr arm64 2.0.3-1 [200 kB] Get:86 https://repo.pureos.net/pureos landing/main arm64 r-cran-utf8 arm64 1.2.3-1 [132 kB] Get:87 https://repo.pureos.net/pureos landing/main arm64 r-cran-vctrs arm64 0.5.2-1 [1350 kB] Get:88 https://repo.pureos.net/pureos landing/main all r-cran-pillar all 1.8.1+dfsg-1 [463 kB] Get:89 https://repo.pureos.net/pureos landing/main all r-cran-pkgconfig all 2.0.3-2 [19.6 kB] Get:90 https://repo.pureos.net/pureos landing/main arm64 r-cran-tibble arm64 3.1.8+dfsg-1 [513 kB] Get:91 https://repo.pureos.net/pureos landing/main all r-cran-withr all 2.5.0-1 [236 kB] Get:92 https://repo.pureos.net/pureos landing/main all r-cran-ggplot2 all 3.4.1+dfsg-1 [3333 kB] Get:93 https://repo.pureos.net/pureos landing/main all r-cran-gridbase all 0.4-7-5 [163 kB] Get:94 https://repo.pureos.net/pureos landing/main arm64 libvcflib-tools arm64 1.0.3+dfsg-2 [667 kB] Get:95 https://repo.pureos.net/pureos landing/main arm64 protobuf-compiler arm64 3.21.12-3 [83.9 kB] Get:96 https://repo.pureos.net/pureos landing/main arm64 pv arm64 1.6.20-1 [58.6 kB] Get:97 https://repo.pureos.net/pureos landing/main arm64 raptor2-utils arm64 2.0.15-4 [25.2 kB] Get:98 https://repo.pureos.net/pureos landing/main arm64 rasqal-utils arm64 0.9.33-2 [42.5 kB] Get:99 https://repo.pureos.net/pureos landing/main arm64 rs arm64 20200313-1 [15.6 kB] Get:100 https://repo.pureos.net/pureos landing/main arm64 samtools arm64 1.16.1-1 [580 kB] Get:101 https://repo.pureos.net/pureos landing/main arm64 tabix arm64 1.16+ds-3 [427 kB] Get:102 https://repo.pureos.net/pureos landing/main arm64 xxd arm64 2:9.0.1378-2 [83.4 kB] Fetched 73.5 MB in 7s (11.1 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package m4. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 13167 files and directories currently installed.) Preparing to unpack .../archives/m4_1.4.19-3_arm64.deb ... Unpacking m4 (1.4.19-3) ... Selecting previously unselected package flex. Preparing to unpack .../flex_2.6.4-8.2_arm64.deb ... Unpacking flex (2.6.4-8.2) ... Selecting previously unselected package readline-common. Preparing to unpack .../readline-common_8.2-1.3_all.deb ... Unpacking readline-common (8.2-1.3) ... Selecting previously unselected package libreadline8:arm64. Preparing to unpack .../libreadline8_8.2-1.3_arm64.deb ... Unpacking libreadline8:arm64 (8.2-1.3) ... Selecting previously unselected package libsigsegv2:arm64. Preparing to unpack .../libsigsegv2_2.14-1_arm64.deb ... Unpacking libsigsegv2:arm64 (2.14-1) ... Setting up readline-common (8.2-1.3) ... Setting up libreadline8:arm64 (8.2-1.3) ... Setting up libsigsegv2:arm64 (2.14-1) ... Selecting previously unselected package gawk. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 13382 files and directories currently installed.) Preparing to unpack .../000-gawk_1%3a5.2.1-2_arm64.deb ... Unpacking gawk (1:5.2.1-2) ... Selecting previously unselected package liblocale-gettext-perl. Preparing to unpack .../001-liblocale-gettext-perl_1.07-5_arm64.deb ... Unpacking liblocale-gettext-perl (1.07-5) ... Selecting previously unselected package media-types. Preparing to unpack .../002-media-types_10.0.0_all.deb ... Unpacking media-types (10.0.0) ... Selecting previously unselected package libncursesw6:arm64. Preparing to unpack .../003-libncursesw6_6.4-4_arm64.deb ... Unpacking libncursesw6:arm64 (6.4-4) ... Selecting previously unselected package libsqlite3-0:arm64. Preparing to unpack .../004-libsqlite3-0_3.40.1-2_arm64.deb ... Unpacking libsqlite3-0:arm64 (3.40.1-2) ... Selecting previously unselected package libpython3.11-stdlib:arm64. Preparing to unpack .../005-libpython3.11-stdlib_3.11.2-6_arm64.deb ... Unpacking libpython3.11-stdlib:arm64 (3.11.2-6) ... Selecting previously unselected package python3.11. Preparing to unpack .../006-python3.11_3.11.2-6_arm64.deb ... Unpacking python3.11 (3.11.2-6) ... Selecting previously unselected package libpython3-stdlib:arm64. Preparing to unpack .../007-libpython3-stdlib_3.11.2-1+b1_arm64.deb ... Unpacking libpython3-stdlib:arm64 (3.11.2-1+b1) ... Selecting previously unselected package python3. Preparing to unpack .../008-python3_3.11.2-1+b1_arm64.deb ... Unpacking python3 (3.11.2-1+b1) ... Selecting previously unselected package sgml-base. Preparing to unpack .../009-sgml-base_1.31_all.deb ... Unpacking sgml-base (1.31) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../010-bsdextrautils_2.38.1-5pureos1_arm64.deb ... Unpacking bsdextrautils (2.38.1-5pureos1) ... Selecting previously unselected package ncal. Preparing to unpack .../011-ncal_12.1.8_arm64.deb ... Unpacking ncal (12.1.8) ... Selecting previously unselected package bsdmainutils. Preparing to unpack .../012-bsdmainutils_12.1.8_all.deb ... Unpacking bsdmainutils (12.1.8) ... Selecting previously unselected package libproc2-0:arm64. Preparing to unpack .../013-libproc2-0_2%3a4.0.2-3_arm64.deb ... Unpacking libproc2-0:arm64 (2:4.0.2-3) ... Selecting previously unselected package procps. Preparing to unpack .../014-procps_2%3a4.0.2-3_arm64.deb ... Unpacking procps (2:4.0.2-3) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../015-sensible-utils_0.0.17+nmu1_all.deb ... Unpacking sensible-utils (0.0.17+nmu1) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../016-libmagic-mgc_1%3a5.44-3_arm64.deb ... Unpacking libmagic-mgc (1:5.44-3) ... Selecting previously unselected package libmagic1:arm64. Preparing to unpack .../017-libmagic1_1%3a5.44-3_arm64.deb ... Unpacking libmagic1:arm64 (1:5.44-3) ... Selecting previously unselected package file. Preparing to unpack .../018-file_1%3a5.44-3_arm64.deb ... Unpacking file (1:5.44-3) ... Selecting previously unselected package gettext-base. Preparing to unpack .../019-gettext-base_0.21-12_arm64.deb ... Unpacking gettext-base (0.21-12) ... Selecting previously unselected package libuchardet0:arm64. Preparing to unpack .../020-libuchardet0_0.0.7-1_arm64.deb ... Unpacking libuchardet0:arm64 (0.0.7-1) ... Selecting previously unselected package groff-base. Preparing to unpack .../021-groff-base_1.22.4-10_arm64.deb ... Unpacking groff-base (1.22.4-10) ... Selecting previously unselected package libpipeline1:arm64. Preparing to unpack .../022-libpipeline1_1.5.7-1_arm64.deb ... Unpacking libpipeline1:arm64 (1.5.7-1) ... Selecting previously unselected package man-db. Preparing to unpack .../023-man-db_2.11.2-2_arm64.deb ... Unpacking man-db (2.11.2-2) ... Selecting previously unselected package ucf. Preparing to unpack .../024-ucf_3.0043+nmu1_all.deb ... Moving old data out of the way Unpacking ucf (3.0043+nmu1) ... Selecting previously unselected package autoconf. Preparing to unpack .../025-autoconf_2.71-3_all.deb ... Unpacking autoconf (2.71-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../026-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../027-automake_1%3a1.16.5-1.3_all.deb ... Unpacking automake (1:1.16.5-1.3) ... Selecting previously unselected package autopoint. Preparing to unpack .../028-autopoint_0.21-12_all.deb ... Unpacking autopoint (0.21-12) ... Selecting previously unselected package bc. Preparing to unpack .../029-bc_1.07.1-3_arm64.deb ... Unpacking bc (1.07.1-3) ... Selecting previously unselected package bison. Preparing to unpack .../030-bison_2%3a3.8.2+dfsg-1+b1_arm64.deb ... Unpacking bison (2:3.8.2+dfsg-1+b1) ... Selecting previously unselected package bwa. Preparing to unpack .../031-bwa_0.7.17-7+b2_arm64.deb ... Unpacking bwa (0.7.17-7+b2) ... Selecting previously unselected package libicu72:arm64. Preparing to unpack .../032-libicu72_72.1-3_arm64.deb ... Unpacking libicu72:arm64 (72.1-3) ... Selecting previously unselected package libxml2:arm64. Preparing to unpack .../033-libxml2_2.9.14+dfsg-1.2_arm64.deb ... Unpacking libxml2:arm64 (2.9.14+dfsg-1.2) ... Selecting previously unselected package libarchive13:arm64. Preparing to unpack .../034-libarchive13_3.6.2-1_arm64.deb ... Unpacking libarchive13:arm64 (3.6.2-1) ... Selecting previously unselected package libbrotli1:arm64. Preparing to unpack .../035-libbrotli1_1.0.9-2+b6_arm64.deb ... Unpacking libbrotli1:arm64 (1.0.9-2+b6) ... Selecting previously unselected package libsasl2-modules-db:arm64. Preparing to unpack .../036-libsasl2-modules-db_2.1.28+dfsg-10_arm64.deb ... Unpacking libsasl2-modules-db:arm64 (2.1.28+dfsg-10) ... Selecting previously unselected package libsasl2-2:arm64. Preparing to unpack .../037-libsasl2-2_2.1.28+dfsg-10_arm64.deb ... Unpacking libsasl2-2:arm64 (2.1.28+dfsg-10) ... Selecting previously unselected package libldap-2.5-0:arm64. Preparing to unpack .../038-libldap-2.5-0_2.5.13+dfsg-5_arm64.deb ... Unpacking libldap-2.5-0:arm64 (2.5.13+dfsg-5) ... Selecting previously unselected package libnghttp2-14:arm64. Preparing to unpack .../039-libnghttp2-14_1.52.0-1_arm64.deb ... Unpacking libnghttp2-14:arm64 (1.52.0-1) ... Selecting previously unselected package libpsl5:arm64. Preparing to unpack .../040-libpsl5_0.21.2-1_arm64.deb ... Unpacking libpsl5:arm64 (0.21.2-1) ... Selecting previously unselected package librtmp1:arm64. Preparing to unpack .../041-librtmp1_2.4+20151223.gitfa8646d.1-2+b2_arm64.deb ... Unpacking librtmp1:arm64 (2.4+20151223.gitfa8646d.1-2+b2) ... Selecting previously unselected package libssh2-1:arm64. Preparing to unpack .../042-libssh2-1_1.10.0-3+b1_arm64.deb ... Unpacking libssh2-1:arm64 (1.10.0-3+b1) ... Selecting previously unselected package libcurl4:arm64. Preparing to unpack .../043-libcurl4_7.88.1-10_arm64.deb ... Unpacking libcurl4:arm64 (7.88.1-10) ... Selecting previously unselected package libjsoncpp25:arm64. Preparing to unpack .../044-libjsoncpp25_1.9.5-4_arm64.deb ... Unpacking libjsoncpp25:arm64 (1.9.5-4) ... Selecting previously unselected package librhash0:arm64. Preparing to unpack .../045-librhash0_1.4.3-3_arm64.deb ... Unpacking librhash0:arm64 (1.4.3-3) ... Selecting previously unselected package libuv1:arm64. Preparing to unpack .../046-libuv1_1.44.2-1_arm64.deb ... Unpacking libuv1:arm64 (1.44.2-1) ... Selecting previously unselected package cmake-data. Preparing to unpack .../047-cmake-data_3.25.1-1_all.deb ... Unpacking cmake-data (3.25.1-1) ... Selecting previously unselected package cmake. Preparing to unpack .../048-cmake_3.25.1-1_arm64.deb ... Unpacking cmake (3.25.1-1) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../049-libdebhelper-perl_13.11.4_all.deb ... Unpacking libdebhelper-perl (13.11.4) ... Selecting previously unselected package libtool. Preparing to unpack .../050-libtool_2.4.7-5_all.deb ... Unpacking libtool (2.4.7-5) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../051-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../052-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libsub-override-perl. Preparing to unpack .../053-libsub-override-perl_0.09-4_all.deb ... Unpacking libsub-override-perl (0.09-4) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../054-libfile-stripnondeterminism-perl_1.13.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.13.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../055-dh-strip-nondeterminism_1.13.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.13.1-1) ... Selecting previously unselected package libelf1:arm64. Preparing to unpack .../056-libelf1_0.188-2.1_arm64.deb ... Unpacking libelf1:arm64 (0.188-2.1) ... Selecting previously unselected package dwz. Preparing to unpack .../057-dwz_0.15-1_arm64.deb ... Unpacking dwz (0.15-1) ... Selecting previously unselected package gettext. Preparing to unpack .../058-gettext_0.21-12_arm64.deb ... Unpacking gettext (0.21-12) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../059-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../060-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../061-debhelper_13.11.4_all.deb ... Unpacking debhelper (13.11.4) ... Selecting previously unselected package xml-core. Preparing to unpack .../062-xml-core_0.18+nmu1_all.deb ... Unpacking xml-core (0.18+nmu1) ... Selecting previously unselected package sgml-data. Preparing to unpack .../063-sgml-data_2.0.11+nmu1_all.deb ... Unpacking sgml-data (2.0.11+nmu1) ... Selecting previously unselected package docbook. Preparing to unpack .../064-docbook_4.5-10_all.deb ... Unpacking docbook (4.5-10) ... Selecting previously unselected package libosp5. Preparing to unpack .../065-libosp5_1.5.2-13+b2_arm64.deb ... Unpacking libosp5 (1.5.2-13+b2) ... Selecting previously unselected package opensp. Preparing to unpack .../066-opensp_1.5.2-13+b2_arm64.deb ... Unpacking opensp (1.5.2-13+b2) ... Selecting previously unselected package docbook-to-man. Preparing to unpack .../067-docbook-to-man_1%3a2.0.0-45_arm64.deb ... Unpacking docbook-to-man (1:2.0.0-45) ... Selecting previously unselected package docbook-xml. Preparing to unpack .../068-docbook-xml_4.5-12_all.deb ... Unpacking docbook-xml (4.5-12) ... Selecting previously unselected package docbook-xsl. Preparing to unpack .../069-docbook-xsl_1.79.2+dfsg-2_all.deb ... Unpacking docbook-xsl (1.79.2+dfsg-2) ... Selecting previously unselected package libdw1:arm64. Preparing to unpack .../070-libdw1_0.188-2.1_arm64.deb ... Unpacking libdw1:arm64 (0.188-2.1) ... Selecting previously unselected package libasm1:arm64. Preparing to unpack .../071-libasm1_0.188-2.1_arm64.deb ... Unpacking libasm1:arm64 (0.188-2.1) ... Selecting previously unselected package elfutils. Preparing to unpack .../072-elfutils_0.188-2.1_arm64.deb ... Unpacking elfutils (0.188-2.1) ... Selecting previously unselected package libdisorder0:arm64. Preparing to unpack .../073-libdisorder0_0.0.2+git20130809.8062ee1-4+b1_arm64.deb ... Unpacking libdisorder0:arm64 (0.0.2+git20130809.8062ee1-4+b1) ... Selecting previously unselected package libfastahack0:arm64. Preparing to unpack .../074-libfastahack0_1.0.0+dfsg-10_arm64.deb ... Unpacking libfastahack0:arm64 (1.0.0+dfsg-10) ... Selecting previously unselected package fastahack. Preparing to unpack .../075-fastahack_1.0.0+dfsg-10_arm64.deb ... Unpacking fastahack (1.0.0+dfsg-10) ... Selecting previously unselected package libpng16-16:arm64. Preparing to unpack .../076-libpng16-16_1.6.39-2_arm64.deb ... Unpacking libpng16-16:arm64 (1.6.39-2) ... Selecting previously unselected package libfreetype6:arm64. Preparing to unpack .../077-libfreetype6_2.12.1+dfsg-5_arm64.deb ... Unpacking libfreetype6:arm64 (2.12.1+dfsg-5) ... Selecting previously unselected package fonts-dejavu-core. Preparing to unpack .../078-fonts-dejavu-core_2.37-6_all.deb ... Unpacking fonts-dejavu-core (2.37-6) ... Selecting previously unselected package fontconfig-config. Preparing to unpack .../079-fontconfig-config_2.14.1-4_arm64.deb ... Unpacking fontconfig-config (2.14.1-4) ... Selecting previously unselected package libfontconfig1:arm64. Preparing to unpack .../080-libfontconfig1_2.14.1-4_arm64.deb ... Unpacking libfontconfig1:arm64 (2.14.1-4) ... Selecting previously unselected package fontconfig. Preparing to unpack .../081-fontconfig_2.14.1-4_arm64.deb ... Unpacking fontconfig (2.14.1-4) ... Selecting previously unselected package libpkgconf3:arm64. Preparing to unpack .../082-libpkgconf3_1.8.1-1_arm64.deb ... Unpacking libpkgconf3:arm64 (1.8.1-1) ... Selecting previously unselected package pkgconf-bin. Preparing to unpack .../083-pkgconf-bin_1.8.1-1_arm64.deb ... Unpacking pkgconf-bin (1.8.1-1) ... Selecting previously unselected package pkgconf:arm64. Preparing to unpack .../084-pkgconf_1.8.1-1_arm64.deb ... Unpacking pkgconf:arm64 (1.8.1-1) ... Selecting previously unselected package pkg-config:arm64. Preparing to unpack .../085-pkg-config_1.8.1-1_arm64.deb ... Unpacking pkg-config:arm64 (1.8.1-1) ... Selecting previously unselected package libxslt1.1:arm64. Preparing to unpack .../086-libxslt1.1_1.1.35-1_arm64.deb ... Unpacking libxslt1.1:arm64 (1.1.35-1) ... Selecting previously unselected package python3-lxml:arm64. Preparing to unpack .../087-python3-lxml_4.9.2-1+b1_arm64.deb ... Unpacking python3-lxml:arm64 (4.9.2-1+b1) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../088-python3-pkg-resources_66.1.1-1_all.deb ... Unpacking python3-pkg-resources (66.1.1-1) ... Selecting previously unselected package python3-pygments. Preparing to unpack .../089-python3-pygments_2.14.0+dfsg-1_all.deb ... Unpacking python3-pygments (2.14.0+dfsg-1) ... Selecting previously unselected package xsltproc. Preparing to unpack .../090-xsltproc_1.1.35-1_arm64.deb ... Unpacking xsltproc (1.1.35-1) ... Selecting previously unselected package gtk-doc-tools. Preparing to unpack .../091-gtk-doc-tools_1.33.2-1_all.deb ... Unpacking gtk-doc-tools (1.33.2-1) ... Selecting previously unselected package help2man. Preparing to unpack .../092-help2man_1.49.3_arm64.deb ... Unpacking help2man (1.49.3) ... Selecting previously unselected package icu-devtools. Preparing to unpack .../093-icu-devtools_72.1-3_arm64.deb ... Unpacking icu-devtools (72.1-3) ... Selecting previously unselected package libonig5:arm64. Preparing to unpack .../094-libonig5_6.9.8-1_arm64.deb ... Unpacking libonig5:arm64 (6.9.8-1) ... Selecting previously unselected package libjq1:arm64. Preparing to unpack .../095-libjq1_1.6-2.1_arm64.deb ... Unpacking libjq1:arm64 (1.6-2.1) ... Selecting previously unselected package jq. Preparing to unpack .../096-jq_1.6-2.1_arm64.deb ... Unpacking jq (1.6-2.1) ... Selecting previously unselected package libbackward-cpp-dev. Preparing to unpack .../097-libbackward-cpp-dev_1.6-1_all.deb ... Unpacking libbackward-cpp-dev (1.6-1) ... Selecting previously unselected package libblas3:arm64. Preparing to unpack .../098-libblas3_3.11.0-2_arm64.deb ... Unpacking libblas3:arm64 (3.11.0-2) ... Selecting previously unselected package uuid-dev:arm64. Preparing to unpack .../099-uuid-dev_2.38.1-5pureos1_arm64.deb ... Unpacking uuid-dev:arm64 (2.38.1-5pureos1) ... Selecting previously unselected package libblkid-dev:arm64. Preparing to unpack .../100-libblkid-dev_2.38.1-5pureos1_arm64.deb ... Unpacking libblkid-dev:arm64 (2.38.1-5pureos1) ... Selecting previously unselected package libboost1.74-dev:arm64. Preparing to unpack .../101-libboost1.74-dev_1.74.0+ds1-21_arm64.deb ... Unpacking libboost1.74-dev:arm64 (1.74.0+ds1-21) ... Selecting previously unselected package libboost-program-options1.74.0:arm64. Preparing to unpack .../102-libboost-program-options1.74.0_1.74.0+ds1-21_arm64.deb ... Unpacking libboost-program-options1.74.0:arm64 (1.74.0+ds1-21) ... Selecting previously unselected package libboost-program-options1.74-dev:arm64. Preparing to unpack .../103-libboost-program-options1.74-dev_1.74.0+ds1-21_arm64.deb ... Unpacking libboost-program-options1.74-dev:arm64 (1.74.0+ds1-21) ... Selecting previously unselected package libboost-program-options-dev:arm64. Preparing to unpack .../104-libboost-program-options-dev_1.74.0.3_arm64.deb ... Unpacking libboost-program-options-dev:arm64 (1.74.0.3) ... Selecting previously unselected package libbrotli-dev:arm64. Preparing to unpack .../105-libbrotli-dev_1.0.9-2+b6_arm64.deb ... Unpacking libbrotli-dev:arm64 (1.0.9-2+b6) ... Selecting previously unselected package libmd0:arm64. Preparing to unpack .../106-libmd0_1.0.4-2_arm64.deb ... Unpacking libmd0:arm64 (1.0.4-2) ... Selecting previously unselected package libbsd0:arm64. Preparing to unpack .../107-libbsd0_0.11.7-2_arm64.deb ... Unpacking libbsd0:arm64 (0.11.7-2) ... Selecting previously unselected package libbz2-dev:arm64. Preparing to unpack .../108-libbz2-dev_1.0.8-5+b1_arm64.deb ... Unpacking libbz2-dev:arm64 (1.0.8-5+b1) ... Selecting previously unselected package libpixman-1-0:arm64. Preparing to unpack .../109-libpixman-1-0_0.42.2-1_arm64.deb ... Unpacking libpixman-1-0:arm64 (0.42.2-1) ... Selecting previously unselected package libxau6:arm64. Preparing to unpack .../110-libxau6_1%3a1.0.9-1_arm64.deb ... Unpacking libxau6:arm64 (1:1.0.9-1) ... Selecting previously unselected package libxdmcp6:arm64. Preparing to unpack .../111-libxdmcp6_1%3a1.1.2-3_arm64.deb ... Unpacking libxdmcp6:arm64 (1:1.1.2-3) ... Selecting previously unselected package libxcb1:arm64. Preparing to unpack .../112-libxcb1_1.15-1_arm64.deb ... Unpacking libxcb1:arm64 (1.15-1) ... Selecting previously unselected package libx11-data. Preparing to unpack .../113-libx11-data_2%3a1.8.4-2_all.deb ... Unpacking libx11-data (2:1.8.4-2) ... Selecting previously unselected package libx11-6:arm64. Preparing to unpack .../114-libx11-6_2%3a1.8.4-2_arm64.deb ... Unpacking libx11-6:arm64 (2:1.8.4-2) ... Selecting previously unselected package libxcb-render0:arm64. Preparing to unpack .../115-libxcb-render0_1.15-1_arm64.deb ... Unpacking libxcb-render0:arm64 (1.15-1) ... Selecting previously unselected package libxcb-shm0:arm64. Preparing to unpack .../116-libxcb-shm0_1.15-1_arm64.deb ... Unpacking libxcb-shm0:arm64 (1.15-1) ... Selecting previously unselected package libxext6:arm64. Preparing to unpack .../117-libxext6_2%3a1.3.4-1+b1_arm64.deb ... Unpacking libxext6:arm64 (2:1.3.4-1+b1) ... Selecting previously unselected package libxrender1:arm64. Preparing to unpack .../118-libxrender1_1%3a0.9.10-1.1_arm64.deb ... Unpacking libxrender1:arm64 (1:0.9.10-1.1) ... Selecting previously unselected package libcairo2:arm64. Preparing to unpack .../119-libcairo2_1.16.0-7_arm64.deb ... Unpacking libcairo2:arm64 (1.16.0-7) ... Selecting previously unselected package libglib2.0-0:arm64. Preparing to unpack .../120-libglib2.0-0_2.74.6-2_arm64.deb ... Unpacking libglib2.0-0:arm64 (2.74.6-2) ... Selecting previously unselected package libcairo-gobject2:arm64. Preparing to unpack .../121-libcairo-gobject2_1.16.0-7_arm64.deb ... Unpacking libcairo-gobject2:arm64 (1.16.0-7) ... Selecting previously unselected package liblzo2-2:arm64. Preparing to unpack .../122-liblzo2-2_2.10-2_arm64.deb ... Unpacking liblzo2-2:arm64 (2.10-2) ... Selecting previously unselected package libcairo-script-interpreter2:arm64. Preparing to unpack .../123-libcairo-script-interpreter2_1.16.0-7_arm64.deb ... Unpacking libcairo-script-interpreter2:arm64 (1.16.0-7) ... Selecting previously unselected package libexpat1-dev:arm64. Preparing to unpack .../124-libexpat1-dev_2.5.0-1_arm64.deb ... Unpacking libexpat1-dev:arm64 (2.5.0-1) ... Selecting previously unselected package zlib1g-dev:arm64. Preparing to unpack .../125-zlib1g-dev_1%3a1.2.13.dfsg-1_arm64.deb ... Unpacking zlib1g-dev:arm64 (1:1.2.13.dfsg-1) ... Selecting previously unselected package libpng-dev:arm64. Preparing to unpack .../126-libpng-dev_1.6.39-2_arm64.deb ... Unpacking libpng-dev:arm64 (1.6.39-2) ... Selecting previously unselected package libfreetype-dev:arm64. Preparing to unpack .../127-libfreetype-dev_2.12.1+dfsg-5_arm64.deb ... Unpacking libfreetype-dev:arm64 (2.12.1+dfsg-5) ... Selecting previously unselected package libfontconfig-dev:arm64. Preparing to unpack .../128-libfontconfig-dev_2.14.1-4_arm64.deb ... Unpacking libfontconfig-dev:arm64 (2.14.1-4) ... Selecting previously unselected package libffi-dev:arm64. Preparing to unpack .../129-libffi-dev_3.4.4-1_arm64.deb ... Unpacking libffi-dev:arm64 (3.4.4-1) ... Selecting previously unselected package libglib2.0-data. Preparing to unpack .../130-libglib2.0-data_2.74.6-2_all.deb ... Unpacking libglib2.0-data (2.74.6-2) ... Selecting previously unselected package libglib2.0-bin. Preparing to unpack .../131-libglib2.0-bin_2.74.6-2_arm64.deb ... Unpacking libglib2.0-bin (2.74.6-2) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../132-python3-lib2to3_3.11.2-3_all.deb ... Unpacking python3-lib2to3 (3.11.2-3) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../133-python3-distutils_3.11.2-3_all.deb ... Unpacking python3-distutils (3.11.2-3) ... Selecting previously unselected package libglib2.0-dev-bin. Preparing to unpack .../134-libglib2.0-dev-bin_2.74.6-2_arm64.deb ... Unpacking libglib2.0-dev-bin (2.74.6-2) ... Selecting previously unselected package libsepol-dev:arm64. Preparing to unpack .../135-libsepol-dev_3.4-2.1_arm64.deb ... Unpacking libsepol-dev:arm64 (3.4-2.1) ... Selecting previously unselected package libpcre2-16-0:arm64. Preparing to unpack .../136-libpcre2-16-0_10.42-1_arm64.deb ... Unpacking libpcre2-16-0:arm64 (10.42-1) ... Selecting previously unselected package libpcre2-32-0:arm64. Preparing to unpack .../137-libpcre2-32-0_10.42-1_arm64.deb ... Unpacking libpcre2-32-0:arm64 (10.42-1) ... Selecting previously unselected package libpcre2-posix3:arm64. Preparing to unpack .../138-libpcre2-posix3_10.42-1_arm64.deb ... Unpacking libpcre2-posix3:arm64 (10.42-1) ... Selecting previously unselected package libpcre2-dev:arm64. Preparing to unpack .../139-libpcre2-dev_10.42-1_arm64.deb ... Unpacking libpcre2-dev:arm64 (10.42-1) ... Selecting previously unselected package libselinux1-dev:arm64. Preparing to unpack .../140-libselinux1-dev_3.4-1+b6_arm64.deb ... Unpacking libselinux1-dev:arm64 (3.4-1+b6) ... Selecting previously unselected package libmount-dev:arm64. Preparing to unpack .../141-libmount-dev_2.38.1-5pureos1_arm64.deb ... Unpacking libmount-dev:arm64 (2.38.1-5pureos1) ... Selecting previously unselected package libglib2.0-dev:arm64. Preparing to unpack .../142-libglib2.0-dev_2.74.6-2_arm64.deb ... Unpacking libglib2.0-dev:arm64 (2.74.6-2) ... Selecting previously unselected package libpixman-1-dev:arm64. Preparing to unpack .../143-libpixman-1-dev_0.42.2-1_arm64.deb ... Unpacking libpixman-1-dev:arm64 (0.42.2-1) ... Selecting previously unselected package x11-common. Preparing to unpack .../144-x11-common_1%3a7.7+23_all.deb ... Unpacking x11-common (1:7.7+23) ... Selecting previously unselected package libice6:arm64. Preparing to unpack .../145-libice6_2%3a1.0.10-1_arm64.deb ... Unpacking libice6:arm64 (2:1.0.10-1) ... Selecting previously unselected package libsm6:arm64. Preparing to unpack .../146-libsm6_2%3a1.2.3-1_arm64.deb ... Unpacking libsm6:arm64 (2:1.2.3-1) ... Selecting previously unselected package xorg-sgml-doctools. Preparing to unpack .../147-xorg-sgml-doctools_1%3a1.11-1.1_all.deb ... Unpacking xorg-sgml-doctools (1:1.11-1.1) ... Selecting previously unselected package x11proto-dev. Preparing to unpack .../148-x11proto-dev_2022.1-1_all.deb ... Unpacking x11proto-dev (2022.1-1) ... Selecting previously unselected package x11proto-core-dev. Preparing to unpack .../149-x11proto-core-dev_2022.1-1_all.deb ... Unpacking x11proto-core-dev (2022.1-1) ... Selecting previously unselected package libice-dev:arm64. Preparing to unpack .../150-libice-dev_2%3a1.0.10-1_arm64.deb ... Unpacking libice-dev:arm64 (2:1.0.10-1) ... Selecting previously unselected package libsm-dev:arm64. Preparing to unpack .../151-libsm-dev_2%3a1.2.3-1_arm64.deb ... Unpacking libsm-dev:arm64 (2:1.2.3-1) ... Selecting previously unselected package libxau-dev:arm64. Preparing to unpack .../152-libxau-dev_1%3a1.0.9-1_arm64.deb ... Unpacking libxau-dev:arm64 (1:1.0.9-1) ... Selecting previously unselected package libxdmcp-dev:arm64. Preparing to unpack .../153-libxdmcp-dev_1%3a1.1.2-3_arm64.deb ... Unpacking libxdmcp-dev:arm64 (1:1.1.2-3) ... Selecting previously unselected package xtrans-dev. Preparing to unpack .../154-xtrans-dev_1.4.0-1_all.deb ... Unpacking xtrans-dev (1.4.0-1) ... Selecting previously unselected package libpthread-stubs0-dev:arm64. Preparing to unpack .../155-libpthread-stubs0-dev_0.4-1_arm64.deb ... Unpacking libpthread-stubs0-dev:arm64 (0.4-1) ... Selecting previously unselected package libxcb1-dev:arm64. Preparing to unpack .../156-libxcb1-dev_1.15-1_arm64.deb ... Unpacking libxcb1-dev:arm64 (1.15-1) ... Selecting previously unselected package libx11-dev:arm64. Preparing to unpack .../157-libx11-dev_2%3a1.8.4-2_arm64.deb ... Unpacking libx11-dev:arm64 (2:1.8.4-2) ... Selecting previously unselected package libxcb-render0-dev:arm64. Preparing to unpack .../158-libxcb-render0-dev_1.15-1_arm64.deb ... Unpacking libxcb-render0-dev:arm64 (1.15-1) ... Selecting previously unselected package libxcb-shm0-dev:arm64. Preparing to unpack .../159-libxcb-shm0-dev_1.15-1_arm64.deb ... Unpacking libxcb-shm0-dev:arm64 (1.15-1) ... Selecting previously unselected package libxext-dev:arm64. Preparing to unpack .../160-libxext-dev_2%3a1.3.4-1+b1_arm64.deb ... Unpacking libxext-dev:arm64 (2:1.3.4-1+b1) ... Selecting previously unselected package libxrender-dev:arm64. Preparing to unpack .../161-libxrender-dev_1%3a0.9.10-1.1_arm64.deb ... Unpacking libxrender-dev:arm64 (1:0.9.10-1.1) ... Selecting previously unselected package libcairo2-dev:arm64. Preparing to unpack .../162-libcairo2-dev_1.16.0-7_arm64.deb ... Unpacking libcairo2-dev:arm64 (1.16.0-7) ... Selecting previously unselected package libcurl3-gnutls:arm64. Preparing to unpack .../163-libcurl3-gnutls_7.88.1-10_arm64.deb ... Unpacking libcurl3-gnutls:arm64 (7.88.1-10) ... Selecting previously unselected package libcurl4-gnutls-dev:arm64. Preparing to unpack .../164-libcurl4-gnutls-dev_7.88.1-10_arm64.deb ... Unpacking libcurl4-gnutls-dev:arm64 (7.88.1-10) ... Selecting previously unselected package libdatrie1:arm64. Preparing to unpack .../165-libdatrie1_0.2.13-2+b1_arm64.deb ... Unpacking libdatrie1:arm64 (0.2.13-2+b1) ... Selecting previously unselected package libdeflate0:arm64. Preparing to unpack .../166-libdeflate0_1.14-1_arm64.deb ... Unpacking libdeflate0:arm64 (1.14-1) ... Selecting previously unselected package libdeflate-dev:arm64. Preparing to unpack .../167-libdeflate-dev_1.14-1_arm64.deb ... Unpacking libdeflate-dev:arm64 (1.14-1) ... Selecting previously unselected package libdisorder-dev:arm64. Preparing to unpack .../168-libdisorder-dev_0.0.2+git20130809.8062ee1-4+b1_arm64.deb ... Unpacking libdisorder-dev:arm64 (0.0.2+git20130809.8062ee1-4+b1) ... Selecting previously unselected package libdivsufsort3:arm64. Preparing to unpack .../169-libdivsufsort3_2.0.1-5_arm64.deb ... Unpacking libdivsufsort3:arm64 (2.0.1-5) ... Selecting previously unselected package libdivsufsort-dev:arm64. Preparing to unpack .../170-libdivsufsort-dev_2.0.1-5_arm64.deb ... Unpacking libdivsufsort-dev:arm64 (2.0.1-5) ... Selecting previously unselected package libelf-dev:arm64. Preparing to unpack .../171-libelf-dev_0.188-2.1_arm64.deb ... Unpacking libelf-dev:arm64 (0.188-2.1) ... Selecting previously unselected package liblzma-dev:arm64. Preparing to unpack .../172-liblzma-dev_5.4.1-0.2_arm64.deb ... Unpacking liblzma-dev:arm64 (5.4.1-0.2) ... Selecting previously unselected package libdw-dev:arm64. Preparing to unpack .../173-libdw-dev_0.188-2.1_arm64.deb ... Unpacking libdw-dev:arm64 (0.188-2.1) ... Selecting previously unselected package libfastahack-dev:arm64. Preparing to unpack .../174-libfastahack-dev_1.0.0+dfsg-10_arm64.deb ... Unpacking libfastahack-dev:arm64 (1.0.0+dfsg-10) ... Selecting previously unselected package libfml0:arm64. Preparing to unpack .../175-libfml0_0.1+git20190320.b499514-1+b1_arm64.deb ... Unpacking libfml0:arm64 (0.1+git20190320.b499514-1+b1) ... Selecting previously unselected package libfml-dev:arm64. Preparing to unpack .../176-libfml-dev_0.1+git20190320.b499514-1+b1_arm64.deb ... Unpacking libfml-dev:arm64 (0.1+git20190320.b499514-1+b1) ... Selecting previously unselected package libfribidi0:arm64. Preparing to unpack .../177-libfribidi0_1.0.8-2.1_arm64.deb ... Unpacking libfribidi0:arm64 (1.0.8-2.1) ... Selecting previously unselected package libgfortran5:arm64. Preparing to unpack .../178-libgfortran5_12.2.0-14_arm64.deb ... Unpacking libgfortran5:arm64 (12.2.0-14) ... Selecting previously unselected package libgmpxx4ldbl:arm64. Preparing to unpack .../179-libgmpxx4ldbl_2%3a6.2.1+dfsg1-1.1_arm64.deb ... Unpacking libgmpxx4ldbl:arm64 (2:6.2.1+dfsg1-1.1) ... Selecting previously unselected package libgmp-dev:arm64. Preparing to unpack .../180-libgmp-dev_2%3a6.2.1+dfsg1-1.1_arm64.deb ... Unpacking libgmp-dev:arm64 (2:6.2.1+dfsg1-1.1) ... Selecting previously unselected package libgraphite2-3:arm64. Preparing to unpack .../181-libgraphite2-3_1.3.14-1_arm64.deb ... Unpacking libgraphite2-3:arm64 (1.3.14-1) ... Selecting previously unselected package libharfbuzz0b:arm64. Preparing to unpack .../182-libharfbuzz0b_6.0.0+dfsg-3_arm64.deb ... Unpacking libharfbuzz0b:arm64 (6.0.0+dfsg-3) ... Selecting previously unselected package libhtscodecs2:arm64. Preparing to unpack .../183-libhtscodecs2_1.3.0-4_arm64.deb ... Unpacking libhtscodecs2:arm64 (1.3.0-4) ... Selecting previously unselected package libhts3:arm64. Preparing to unpack .../184-libhts3_1.16+ds-3_arm64.deb ... Unpacking libhts3:arm64 (1.16+ds-3) ... Selecting previously unselected package libhts-dev:arm64. Preparing to unpack .../185-libhts-dev_1.16+ds-3_arm64.deb ... Unpacking libhts-dev:arm64 (1.16+ds-3) ... Selecting previously unselected package libicu-dev:arm64. Preparing to unpack .../186-libicu-dev_72.1-3_arm64.deb ... Unpacking libicu-dev:arm64 (72.1-3) ... Selecting previously unselected package libjansson-dev:arm64. Preparing to unpack .../187-libjansson-dev_2.14-2_arm64.deb ... Unpacking libjansson-dev:arm64 (2.14-2) ... Selecting previously unselected package libjbig0:arm64. Preparing to unpack .../188-libjbig0_2.1-6.1_arm64.deb ... Unpacking libjbig0:arm64 (2.1-6.1) ... Selecting previously unselected package libjemalloc2:arm64. Preparing to unpack .../189-libjemalloc2_5.3.0-1_arm64.deb ... Unpacking libjemalloc2:arm64 (5.3.0-1) ... Selecting previously unselected package libjemalloc-dev. Preparing to unpack .../190-libjemalloc-dev_5.3.0-1_arm64.deb ... Unpacking libjemalloc-dev (5.3.0-1) ... Selecting previously unselected package libjpeg62-turbo:arm64. Preparing to unpack .../191-libjpeg62-turbo_1%3a2.1.5-2_arm64.deb ... Unpacking libjpeg62-turbo:arm64 (1:2.1.5-2) ... Selecting previously unselected package liblapack3:arm64. Preparing to unpack .../192-liblapack3_3.11.0-2_arm64.deb ... Unpacking liblapack3:arm64 (3.11.0-2) ... Selecting previously unselected package liblerc4:arm64. Preparing to unpack .../193-liblerc4_4.0.0+ds-2_arm64.deb ... Unpacking liblerc4:arm64 (4.0.0+ds-2) ... Selecting previously unselected package libltdl7:arm64. Preparing to unpack .../194-libltdl7_2.4.7-5_arm64.deb ... Unpacking libltdl7:arm64 (2.4.7-5) ... Selecting previously unselected package liblz4-dev:arm64. Preparing to unpack .../195-liblz4-dev_1.9.4-1_arm64.deb ... Unpacking liblz4-dev:arm64 (1.9.4-1) ... Selecting previously unselected package libmhash2:arm64. Preparing to unpack .../196-libmhash2_0.9.9.9-9_arm64.deb ... Unpacking libmhash2:arm64 (0.9.9.9-9) ... Selecting previously unselected package libncurses6:arm64. Preparing to unpack .../197-libncurses6_6.4-4_arm64.deb ... Unpacking libncurses6:arm64 (6.4-4) ... Selecting previously unselected package libncurses-dev:arm64. Preparing to unpack .../198-libncurses-dev_6.4-4_arm64.deb ... Unpacking libncurses-dev:arm64 (6.4-4) ... Selecting previously unselected package libncurses5-dev:arm64. Preparing to unpack .../199-libncurses5-dev_6.4-4_arm64.deb ... Unpacking libncurses5-dev:arm64 (6.4-4) ... Selecting previously unselected package libthai-data. Preparing to unpack .../200-libthai-data_0.1.29-1_all.deb ... Unpacking libthai-data (0.1.29-1) ... Selecting previously unselected package libthai0:arm64. Preparing to unpack .../201-libthai0_0.1.29-1_arm64.deb ... Unpacking libthai0:arm64 (0.1.29-1) ... Selecting previously unselected package libpango-1.0-0:arm64. Preparing to unpack .../202-libpango-1.0-0_1.50.12+ds-1_arm64.deb ... Unpacking libpango-1.0-0:arm64 (1.50.12+ds-1) ... Selecting previously unselected package libpangoft2-1.0-0:arm64. Preparing to unpack .../203-libpangoft2-1.0-0_1.50.12+ds-1_arm64.deb ... Unpacking libpangoft2-1.0-0:arm64 (1.50.12+ds-1) ... Selecting previously unselected package libpangocairo-1.0-0:arm64. Preparing to unpack .../204-libpangocairo-1.0-0_1.50.12+ds-1_arm64.deb ... Unpacking libpangocairo-1.0-0:arm64 (1.50.12+ds-1) ... Selecting previously unselected package libpaper1:arm64. Preparing to unpack .../205-libpaper1_1.1.29_arm64.deb ... Unpacking libpaper1:arm64 (1.1.29) ... Selecting previously unselected package libpaper-utils. Preparing to unpack .../206-libpaper-utils_1.1.29_arm64.deb ... Unpacking libpaper-utils (1.1.29) ... Selecting previously unselected package libprotobuf32:arm64. Preparing to unpack .../207-libprotobuf32_3.21.12-3_arm64.deb ... Unpacking libprotobuf32:arm64 (3.21.12-3) ... Selecting previously unselected package libprotobuf-lite32:arm64. Preparing to unpack .../208-libprotobuf-lite32_3.21.12-3_arm64.deb ... Unpacking libprotobuf-lite32:arm64 (3.21.12-3) ... Selecting previously unselected package libprotobuf-dev:arm64. Preparing to unpack .../209-libprotobuf-dev_3.21.12-3_arm64.deb ... Unpacking libprotobuf-dev:arm64 (3.21.12-3) ... Selecting previously unselected package libprotoc32:arm64. Preparing to unpack .../210-libprotoc32_3.21.12-3_arm64.deb ... Unpacking libprotoc32:arm64 (3.21.12-3) ... Selecting previously unselected package libprotoc-dev:arm64. Preparing to unpack .../211-libprotoc-dev_3.21.12-3_arm64.deb ... Unpacking libprotoc-dev:arm64 (3.21.12-3) ... Selecting previously unselected package libyajl2:arm64. Preparing to unpack .../212-libyajl2_2.1.0-3_arm64.deb ... Unpacking libyajl2:arm64 (2.1.0-3) ... Selecting previously unselected package libraptor2-0:arm64. Preparing to unpack .../213-libraptor2-0_2.0.15-4_arm64.deb ... Unpacking libraptor2-0:arm64 (2.0.15-4) ... Selecting previously unselected package libxml2-dev:arm64. Preparing to unpack .../214-libxml2-dev_2.9.14+dfsg-1.2_arm64.deb ... Unpacking libxml2-dev:arm64 (2.9.14+dfsg-1.2) ... Selecting previously unselected package libxslt1-dev:arm64. Preparing to unpack .../215-libxslt1-dev_1.1.35-1_arm64.deb ... Unpacking libxslt1-dev:arm64 (1.1.35-1) ... Selecting previously unselected package libyajl-dev:arm64. Preparing to unpack .../216-libyajl-dev_2.1.0-3_arm64.deb ... Unpacking libyajl-dev:arm64 (2.1.0-3) ... Selecting previously unselected package libraptor2-dev:arm64. Preparing to unpack .../217-libraptor2-dev_2.0.15-4_arm64.deb ... Unpacking libraptor2-dev:arm64 (2.0.15-4) ... Selecting previously unselected package librasqal3:arm64. Preparing to unpack .../218-librasqal3_0.9.33-2_arm64.deb ... Unpacking librasqal3:arm64 (0.9.33-2) ... Selecting previously unselected package librasqal3-dev. Preparing to unpack .../219-librasqal3-dev_0.9.33-2_arm64.deb ... Unpacking librasqal3-dev (0.9.33-2) ... Selecting previously unselected package librdf0:arm64. Preparing to unpack .../220-librdf0_1.0.17-3_arm64.deb ... Unpacking librdf0:arm64 (1.0.17-3) ... Selecting previously unselected package librdf0-dev. Preparing to unpack .../221-librdf0-dev_1.0.17-3_arm64.deb ... Unpacking librdf0-dev (1.0.17-3) ... Selecting previously unselected package libsimde-dev. Preparing to unpack .../222-libsimde-dev_0.7.4~rc2-2_all.deb ... Unpacking libsimde-dev (0.7.4~rc2-2) ... Selecting previously unselected package libsmithwaterman0:arm64. Preparing to unpack .../223-libsmithwaterman0_0.0+git20160702.2610e25-12+b1_arm64.deb ... Unpacking libsmithwaterman0:arm64 (0.0+git20160702.2610e25-12+b1) ... Selecting previously unselected package libsmithwaterman-dev:arm64. Preparing to unpack .../224-libsmithwaterman-dev_0.0+git20160702.2610e25-12+b1_arm64.deb ... Unpacking libsmithwaterman-dev:arm64 (0.0+git20160702.2610e25-12+b1) ... Selecting previously unselected package libsparsehash-dev. Preparing to unpack .../225-libsparsehash-dev_2.0.3-2_all.deb ... Unpacking libsparsehash-dev (2.0.3-2) ... Selecting previously unselected package libssw0:arm64. Preparing to unpack .../226-libssw0_1.1-13_arm64.deb ... Unpacking libssw0:arm64 (1.1-13) ... Selecting previously unselected package libssw-dev:arm64. Preparing to unpack .../227-libssw-dev_1.1-13_arm64.deb ... Unpacking libssw-dev:arm64 (1.1-13) ... Selecting previously unselected package libtabixpp0:arm64. Preparing to unpack .../228-libtabixpp0_1.1.2-1_arm64.deb ... Unpacking libtabixpp0:arm64 (1.1.2-1) ... Selecting previously unselected package libtabixpp-dev:arm64. Preparing to unpack .../229-libtabixpp-dev_1.1.2-1_arm64.deb ... Unpacking libtabixpp-dev:arm64 (1.1.2-1) ... Selecting previously unselected package libtcl8.6:arm64. Preparing to unpack .../230-libtcl8.6_8.6.13+dfsg-2_arm64.deb ... Unpacking libtcl8.6:arm64 (8.6.13+dfsg-2) ... Selecting previously unselected package libwebp7:arm64. Preparing to unpack .../231-libwebp7_1.2.4-0.2_arm64.deb ... Unpacking libwebp7:arm64 (1.2.4-0.2) ... Selecting previously unselected package libtiff6:arm64. Preparing to unpack .../232-libtiff6_4.5.0-6_arm64.deb ... Unpacking libtiff6:arm64 (4.5.0-6) ... Selecting previously unselected package libxft2:arm64. Preparing to unpack .../233-libxft2_2.3.6-1_arm64.deb ... Unpacking libxft2:arm64 (2.3.6-1) ... Selecting previously unselected package libxss1:arm64. Preparing to unpack .../234-libxss1_1%3a1.2.3-1_arm64.deb ... Unpacking libxss1:arm64 (1:1.2.3-1) ... Selecting previously unselected package libtk8.6:arm64. Preparing to unpack .../235-libtk8.6_8.6.13-2_arm64.deb ... Unpacking libtk8.6:arm64 (8.6.13-2) ... Selecting previously unselected package libtsl-hopscotch-map-dev. Preparing to unpack .../236-libtsl-hopscotch-map-dev_2.3.0-3_all.deb ... Unpacking libtsl-hopscotch-map-dev (2.3.0-3) ... Selecting previously unselected package libvcflib1:arm64. Preparing to unpack .../237-libvcflib1_1.0.3+dfsg-2_arm64.deb ... Unpacking libvcflib1:arm64 (1.0.3+dfsg-2) ... Selecting previously unselected package libvcflib-dev:arm64. Preparing to unpack .../238-libvcflib-dev_1.0.3+dfsg-2_arm64.deb ... Unpacking libvcflib-dev:arm64 (1.0.3+dfsg-2) ... Selecting previously unselected package zip. Preparing to unpack .../239-zip_3.0-13_arm64.deb ... Unpacking zip (3.0-13) ... Selecting previously unselected package unzip. Preparing to unpack .../240-unzip_6.0-28_arm64.deb ... Unpacking unzip (6.0-28) ... Selecting previously unselected package xdg-utils. Preparing to unpack .../241-xdg-utils_1.1.3-4.1_all.deb ... Unpacking xdg-utils (1.1.3-4.1) ... Selecting previously unselected package libxt6:arm64. Preparing to unpack .../242-libxt6_1%3a1.2.1-1.1_arm64.deb ... Unpacking libxt6:arm64 (1:1.2.1-1.1) ... Selecting previously unselected package r-base-core. Preparing to unpack .../243-r-base-core_4.2.2.20221110-2_arm64.deb ... Unpacking r-base-core (4.2.2.20221110-2) ... Selecting previously unselected package r-cran-littler. Preparing to unpack .../244-r-cran-littler_0.3.17-1_arm64.deb ... Unpacking r-cran-littler (0.3.17-1) ... Selecting previously unselected package littler. Preparing to unpack .../245-littler_0.3.17-1_all.deb ... Unpacking littler (0.3.17-1) ... Selecting previously unselected package r-cran-pkgkitten. Preparing to unpack .../246-r-cran-pkgkitten_0.2.2-2_all.deb ... Unpacking r-cran-pkgkitten (0.2.2-2) ... Selecting previously unselected package r-cran-rcpp. Preparing to unpack .../247-r-cran-rcpp_1.0.10-1_arm64.deb ... Unpacking r-cran-rcpp (1.0.10-1) ... Selecting previously unselected package r-cran-plyr. Preparing to unpack .../248-r-cran-plyr_1.8.8-1_arm64.deb ... Unpacking r-cran-plyr (1.8.8-1) ... Selecting previously unselected package r-cran-cli. Preparing to unpack .../249-r-cran-cli_3.6.0-1_arm64.deb ... Unpacking r-cran-cli (3.6.0-1) ... Selecting previously unselected package r-cran-glue. Preparing to unpack .../250-r-cran-glue_1.6.2-1_arm64.deb ... Unpacking r-cran-glue (1.6.2-1) ... Selecting previously unselected package r-cran-gtable. Preparing to unpack .../251-r-cran-gtable_0.3.1+dfsg-1_all.deb ... Unpacking r-cran-gtable (0.3.1+dfsg-1) ... Selecting previously unselected package r-cran-isoband. Preparing to unpack .../252-r-cran-isoband_0.2.7-1_arm64.deb ... Unpacking r-cran-isoband (0.2.7-1) ... Selecting previously unselected package r-cran-rlang. Preparing to unpack .../253-r-cran-rlang_1.0.6-1_arm64.deb ... Unpacking r-cran-rlang (1.0.6-1) ... Selecting previously unselected package r-cran-lifecycle. Preparing to unpack .../254-r-cran-lifecycle_1.0.3+dfsg-1_all.deb ... Unpacking r-cran-lifecycle (1.0.3+dfsg-1) ... Selecting previously unselected package r-cran-mass. Preparing to unpack .../255-r-cran-mass_7.3-58.2-1_arm64.deb ... Unpacking r-cran-mass (7.3-58.2-1) ... Selecting previously unselected package r-cran-lattice. Preparing to unpack .../256-r-cran-lattice_0.20-45-3_arm64.deb ... Unpacking r-cran-lattice (0.20-45-3) ... Selecting previously unselected package r-cran-nlme. Preparing to unpack .../257-r-cran-nlme_3.1.162-1_arm64.deb ... Unpacking r-cran-nlme (3.1.162-1) ... Selecting previously unselected package r-cran-matrix. Preparing to unpack .../258-r-cran-matrix_1.5-3-1_arm64.deb ... Unpacking r-cran-matrix (1.5-3-1) ... Selecting previously unselected package r-cran-mgcv. Preparing to unpack .../259-r-cran-mgcv_1.8-41-1_arm64.deb ... Unpacking r-cran-mgcv (1.8-41-1) ... Selecting previously unselected package r-cran-farver. Preparing to unpack .../260-r-cran-farver_2.1.1-1_arm64.deb ... Unpacking r-cran-farver (2.1.1-1) ... Selecting previously unselected package r-cran-labeling. Preparing to unpack .../261-r-cran-labeling_0.4.2-1_all.deb ... Unpacking r-cran-labeling (0.4.2-1) ... Selecting previously unselected package r-cran-colorspace. Preparing to unpack .../262-r-cran-colorspace_2.1-0+dfsg-1_arm64.deb ... Unpacking r-cran-colorspace (2.1-0+dfsg-1) ... Selecting previously unselected package r-cran-munsell. Preparing to unpack .../263-r-cran-munsell_0.5.0-2_all.deb ... Unpacking r-cran-munsell (0.5.0-2) ... Selecting previously unselected package r-cran-r6. Preparing to unpack .../264-r-cran-r6_2.5.1-1_all.deb ... Unpacking r-cran-r6 (2.5.1-1) ... Selecting previously unselected package r-cran-rcolorbrewer. Preparing to unpack .../265-r-cran-rcolorbrewer_1.1-3-1_all.deb ... Unpacking r-cran-rcolorbrewer (1.1-3-1) ... Selecting previously unselected package r-cran-viridislite. Preparing to unpack .../266-r-cran-viridislite_0.4.1-1_all.deb ... Unpacking r-cran-viridislite (0.4.1-1) ... Selecting previously unselected package r-cran-scales. Preparing to unpack .../267-r-cran-scales_1.2.1-1_all.deb ... Unpacking r-cran-scales (1.2.1-1) ... Selecting previously unselected package r-cran-fansi. Preparing to unpack .../268-r-cran-fansi_1.0.4-1_arm64.deb ... Unpacking r-cran-fansi (1.0.4-1) ... Selecting previously unselected package r-cran-magrittr. Preparing to unpack .../269-r-cran-magrittr_2.0.3-1_arm64.deb ... Unpacking r-cran-magrittr (2.0.3-1) ... Selecting previously unselected package r-cran-utf8. Preparing to unpack .../270-r-cran-utf8_1.2.3-1_arm64.deb ... Unpacking r-cran-utf8 (1.2.3-1) ... Selecting previously unselected package r-cran-vctrs. Preparing to unpack .../271-r-cran-vctrs_0.5.2-1_arm64.deb ... Unpacking r-cran-vctrs (0.5.2-1) ... Selecting previously unselected package r-cran-pillar. Preparing to unpack .../272-r-cran-pillar_1.8.1+dfsg-1_all.deb ... Unpacking r-cran-pillar (1.8.1+dfsg-1) ... Selecting previously unselected package r-cran-pkgconfig. Preparing to unpack .../273-r-cran-pkgconfig_2.0.3-2_all.deb ... Unpacking r-cran-pkgconfig (2.0.3-2) ... Selecting previously unselected package r-cran-tibble. Preparing to unpack .../274-r-cran-tibble_3.1.8+dfsg-1_arm64.deb ... Unpacking r-cran-tibble (3.1.8+dfsg-1) ... Selecting previously unselected package r-cran-withr. Preparing to unpack .../275-r-cran-withr_2.5.0-1_all.deb ... Unpacking r-cran-withr (2.5.0-1) ... Selecting previously unselected package r-cran-ggplot2. Preparing to unpack .../276-r-cran-ggplot2_3.4.1+dfsg-1_all.deb ... Unpacking r-cran-ggplot2 (3.4.1+dfsg-1) ... Selecting previously unselected package r-cran-gridbase. Preparing to unpack .../277-r-cran-gridbase_0.4-7-5_all.deb ... Unpacking r-cran-gridbase (0.4-7-5) ... Selecting previously unselected package libvcflib-tools. Preparing to unpack .../278-libvcflib-tools_1.0.3+dfsg-2_arm64.deb ... Unpacking libvcflib-tools (1.0.3+dfsg-2) ... Selecting previously unselected package protobuf-compiler. Preparing to unpack .../279-protobuf-compiler_3.21.12-3_arm64.deb ... Unpacking protobuf-compiler (3.21.12-3) ... Selecting previously unselected package pv. Preparing to unpack .../280-pv_1.6.20-1_arm64.deb ... Unpacking pv (1.6.20-1) ... Selecting previously unselected package rapidjson-dev. Preparing to unpack .../281-rapidjson-dev_1.1.0+dfsg2-7.1_all.deb ... Unpacking rapidjson-dev (1.1.0+dfsg2-7.1) ... Selecting previously unselected package raptor2-utils. Preparing to unpack .../282-raptor2-utils_2.0.15-4_arm64.deb ... Unpacking raptor2-utils (2.0.15-4) ... Selecting previously unselected package rasqal-utils. Preparing to unpack .../283-rasqal-utils_0.9.33-2_arm64.deb ... Unpacking rasqal-utils (0.9.33-2) ... Selecting previously unselected package rs. Preparing to unpack .../284-rs_20200313-1_arm64.deb ... Unpacking rs (20200313-1) ... Selecting previously unselected package samtools. Preparing to unpack .../285-samtools_1.16.1-1_arm64.deb ... Unpacking samtools (1.16.1-1) ... Selecting previously unselected package tabix. Preparing to unpack .../286-tabix_1.16+ds-3_arm64.deb ... Unpacking tabix (1.16+ds-3) ... Selecting previously unselected package xxd. Preparing to unpack .../287-xxd_2%3a9.0.1378-2_arm64.deb ... Unpacking xxd (2:9.0.1378-2) ... Setting up libhtscodecs2:arm64 (1.3.0-4) ... Setting up media-types (10.0.0) ... Setting up libpipeline1:arm64 (1.5.7-1) ... Setting up libgraphite2-3:arm64 (1.3.14-1) ... Setting up libsimde-dev (0.7.4~rc2-2) ... Setting up libdisorder0:arm64 (0.0.2+git20130809.8062ee1-4+b1) ... Setting up libpixman-1-0:arm64 (0.42.2-1) ... Setting up libxau6:arm64 (1:1.0.9-1) ... Setting up libpsl5:arm64 (0.21.2-1) ... Setting up libboost1.74-dev:arm64 (1.74.0+ds1-21) ... Setting up libpixman-1-dev:arm64 (0.42.2-1) ... Setting up libicu72:arm64 (72.1-3) ... Setting up liblerc4:arm64 (4.0.0+ds-2) ... Setting up bsdextrautils (2.38.1-5pureos1) ... Setting up libdatrie1:arm64 (0.2.13-2+b1) ... Setting up libmagic-mgc (1:5.44-3) ... Setting up ncal (12.1.8) ... Setting up gawk (1:5.2.1-2) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libglib2.0-0:arm64 (2.74.6-2) ... No schema files found: doing nothing. Setting up bwa (0.7.17-7+b2) ... Setting up libboost-program-options1.74.0:arm64 (1.74.0+ds1-21) ... Setting up unzip (6.0-28) ... Setting up libdebhelper-perl (13.11.4) ... Setting up libbrotli1:arm64 (1.0.9-2+b6) ... Setting up libsqlite3-0:arm64 (3.40.1-2) ... Setting up libyajl2:arm64 (2.1.0-3) ... Setting up x11-common (1:7.7+23) ... invoke-rc.d: could not determine current runlevel invoke-rc.d: WARNING: No init system and policy-rc.d missing! Defaulting to block. Setting up libsmithwaterman0:arm64 (0.0+git20160702.2610e25-12+b1) ... Setting up libnghttp2-14:arm64 (1.52.0-1) ... Setting up libmagic1:arm64 (1:5.44-3) ... Setting up libdeflate0:arm64 (1.14-1) ... Setting up bc (1.07.1-3) ... Setting up gettext-base (0.21-12) ... Setting up m4 (1.4.19-3) ... Setting up liblzo2-2:arm64 (2.10-2) ... Setting up file (1:5.44-3) ... Setting up libjemalloc2:arm64 (5.3.0-1) ... Setting up libffi-dev:arm64 (3.4.4-1) ... Setting up libsparsehash-dev (2.0.3-2) ... Setting up libpthread-stubs0-dev:arm64 (0.4-1) ... Setting up libfml0:arm64 (0.1+git20190320.b499514-1+b1) ... Setting up libfastahack0:arm64 (1.0.0+dfsg-10) ... Setting up libjbig0:arm64 (2.1-6.1) ... Setting up libpcre2-16-0:arm64 (10.42-1) ... Setting up xxd (2:9.0.1378-2) ... Setting up rapidjson-dev (1.1.0+dfsg2-7.1) ... Setting up libboost-program-options1.74-dev:arm64 (1.74.0+ds1-21) ... Setting up libsasl2-modules-db:arm64 (2.1.28+dfsg-10) ... Setting up libfastahack-dev:arm64 (1.0.0+dfsg-10) ... Setting up libosp5 (1.5.2-13+b2) ... Setting up libjemalloc-dev (5.3.0-1) ... Setting up libbackward-cpp-dev (1.6-1) ... Setting up xtrans-dev (1.4.0-1) ... Setting up zip (3.0-13) ... Setting up autotools-dev (20220109.1) ... Setting up libpcre2-32-0:arm64 (10.42-1) ... Setting up libblas3:arm64 (3.11.0-2) ... update-alternatives: using /usr/lib/aarch64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/aarch64-linux-gnu/libblas.so.3 (libblas.so.3-aarch64-linux-gnu) in auto mode Setting up libglib2.0-data (2.74.6-2) ... Setting up libpkgconf3:arm64 (1.8.1-1) ... Setting up libgmpxx4ldbl:arm64 (2:6.2.1+dfsg1-1.1) ... Setting up libuv1:arm64 (1.44.2-1) ... Setting up libexpat1-dev:arm64 (2.5.0-1) ... Setting up libjpeg62-turbo:arm64 (1:2.1.5-2) ... Setting up libboost-program-options-dev:arm64 (1.74.0.3) ... Setting up libx11-data (2:1.8.4-2) ... Setting up librtmp1:arm64 (2.4+20151223.gitfa8646d.1-2+b2) ... Setting up uuid-dev:arm64 (2.38.1-5pureos1) ... Setting up libncurses6:arm64 (6.4-4) ... Setting up libtsl-hopscotch-map-dev (2.3.0-3) ... Setting up libfribidi0:arm64 (1.0.8-2.1) ... Setting up libproc2-0:arm64 (2:4.0.2-3) ... Setting up bsdmainutils (12.1.8) ... Setting up libpng16-16:arm64 (1.6.39-2) ... Setting up libtcl8.6:arm64 (8.6.13+dfsg-2) ... Setting up autopoint (0.21-12) ... Setting up libjsoncpp25:arm64 (1.9.5-4) ... Setting up icu-devtools (72.1-3) ... Setting up liblz4-dev:arm64 (1.9.4-1) ... Setting up fonts-dejavu-core (2.37-6) ... Setting up libsepol-dev:arm64 (3.4-2.1) ... Setting up pkgconf-bin (1.8.1-1) ... Setting up libncursesw6:arm64 (6.4-4) ... Setting up libdisorder-dev:arm64 (0.0.2+git20130809.8062ee1-4+b1) ... Setting up libltdl7:arm64 (2.4.7-5) ... Setting up libsasl2-2:arm64 (2.1.28+dfsg-10) ... Setting up libgfortran5:arm64 (12.2.0-14) ... Setting up autoconf (2.71-3) ... Setting up libwebp7:arm64 (1.2.4-0.2) ... Setting up libmhash2:arm64 (0.9.9.9-9) ... Setting up libyajl-dev:arm64 (2.1.0-3) ... Setting up liblzma-dev:arm64 (5.4.1-0.2) ... Setting up zlib1g-dev:arm64 (1:1.2.13.dfsg-1) ... Setting up libpcre2-posix3:arm64 (10.42-1) ... Setting up libprotobuf32:arm64 (3.21.12-3) ... Setting up libmd0:arm64 (1.0.4-2) ... Setting up sensible-utils (0.0.17+nmu1) ... Setting up pv (1.6.20-1) ... Setting up librhash0:arm64 (1.4.3-3) ... Setting up libtiff6:arm64 (4.5.0-6) ... Setting up libuchardet0:arm64 (0.0.7-1) ... Setting up procps (2:4.0.2-3) ... Setting up bison (2:3.8.2+dfsg-1+b1) ... update-alternatives: using /usr/bin/bison.yacc to provide /usr/bin/yacc (yacc) in auto mode Setting up libprotobuf-lite32:arm64 (3.21.12-3) ... Setting up libsub-override-perl (0.09-4) ... Setting up libthai-data (0.1.29-1) ... Setting up libssh2-1:arm64 (1.10.0-3+b1) ... Setting up xorg-sgml-doctools (1:1.11-1.1) ... Setting up sgml-base (1.31) ... Setting up cmake-data (3.25.1-1) ... Setting up libdivsufsort3:arm64 (2.0.1-5) ... Setting up libbsd0:arm64 (0.11.7-2) ... Setting up libdeflate-dev:arm64 (1.14-1) ... Setting up tabix (1.16+ds-3) ... Setting up libelf1:arm64 (0.188-2.1) ... Setting up libssw0:arm64 (1.1-13) ... Setting up libicu-dev:arm64 (72.1-3) ... Setting up libxml2:arm64 (2.9.14+dfsg-1.2) ... Setting up xdg-utils (1.1.3-4.1) ... update-alternatives: using /usr/bin/xdg-open to provide /usr/bin/open (open) in auto mode Setting up libjansson-dev:arm64 (2.14-2) ... Setting up libonig5:arm64 (6.9.8-1) ... Setting up liblocale-gettext-perl (1.07-5) ... Setting up libbrotli-dev:arm64 (1.0.9-2+b6) ... Setting up libdivsufsort-dev:arm64 (2.0.1-5) ... Setting up rs (20200313-1) ... Setting up libbz2-dev:arm64 (1.0.8-5+b1) ... Setting up libprotoc32:arm64 (3.21.12-3) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up x11proto-dev (2022.1-1) ... Setting up libfile-stripnondeterminism-perl (1.13.1-1) ... Setting up libblkid-dev:arm64 (2.38.1-5pureos1) ... Setting up libice6:arm64 (2:1.0.10-1) ... Setting up libdw1:arm64 (0.188-2.1) ... Setting up libxdmcp6:arm64 (1:1.1.2-3) ... Setting up flex (2.6.4-8.2) ... Setting up liblapack3:arm64 (3.11.0-2) ... update-alternatives: using /usr/lib/aarch64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/aarch64-linux-gnu/liblapack.so.3 (liblapack.so.3-aarch64-linux-gnu) in auto mode Setting up libncurses-dev:arm64 (6.4-4) ... Setting up libxcb1:arm64 (1.15-1) ... Setting up gettext (0.21-12) ... Setting up libfml-dev:arm64 (0.1+git20190320.b499514-1+b1) ... Setting up libgmp-dev:arm64 (2:6.2.1+dfsg1-1.1) ... Setting up libxau-dev:arm64 (1:1.0.9-1) ... Setting up libpcre2-dev:arm64 (10.42-1) ... Setting up protobuf-compiler (3.21.12-3) ... Setting up libice-dev:arm64 (2:1.0.10-1) ... Setting up libssw-dev:arm64 (1.1-13) ... Setting up libtool (2.4.7-5) ... Setting up libarchive13:arm64 (3.6.2-1) ... Setting up libxcb-render0:arm64 (1.15-1) ... Setting up libselinux1-dev:arm64 (3.4-1+b6) ... Setting up libjq1:arm64 (1.6-2.1) ... Setting up fontconfig-config (2.14.1-4) ... Setting up libpython3.11-stdlib:arm64 (3.11.2-6) ... Setting up libpng-dev:arm64 (1.6.39-2) ... Setting up libglib2.0-bin (2.74.6-2) ... Setting up fastahack (1.0.0+dfsg-10) ... Setting up libxcb-shm0:arm64 (1.15-1) ... Setting up opensp (1.5.2-13+b2) ... Setting up libldap-2.5-0:arm64 (2.5.13+dfsg-5) ... Setting up pkgconf:arm64 (1.8.1-1) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up libprotobuf-dev:arm64 (3.21.12-3) ... Setting up help2man (1.49.3) ... Setting up dh-autoreconf (20) ... Setting up libthai0:arm64 (0.1.29-1) ... Setting up libxdmcp-dev:arm64 (1:1.1.2-3) ... Setting up libxml2-dev:arm64 (2.9.14+dfsg-1.2) ... Setting up libfreetype6:arm64 (2.12.1+dfsg-5) ... Setting up x11proto-core-dev (2022.1-1) ... Setting up libelf-dev:arm64 (0.188-2.1) ... Setting up pkg-config:arm64 (1.8.1-1) ... Setting up libsmithwaterman-dev:arm64 (0.0+git20160702.2610e25-12+b1) ... Setting up ucf (3.0043+nmu1) ... Setting up dh-strip-nondeterminism (1.13.1-1) ... Setting up dwz (0.15-1) ... Setting up libprotoc-dev:arm64 (3.21.12-3) ... Setting up groff-base (1.22.4-10) ... Setting up xml-core (0.18+nmu1) ... Setting up jq (1.6-2.1) ... Setting up libncurses5-dev:arm64 (6.4-4) ... Setting up libxslt1.1:arm64 (1.1.35-1) ... Setting up libcurl4:arm64 (7.88.1-10) ... Setting up libx11-6:arm64 (2:1.8.4-2) ... Setting up libharfbuzz0b:arm64 (6.0.0+dfsg-3) ... Setting up libasm1:arm64 (0.188-2.1) ... Setting up libfontconfig1:arm64 (2.14.1-4) ... Setting up libsm6:arm64 (2:1.2.3-1) ... Setting up libmount-dev:arm64 (2.38.1-5pureos1) ... Setting up libpython3-stdlib:arm64 (3.11.2-1+b1) ... Setting up libpaper1:arm64 (1.1.29) ... Creating config file /etc/papersize with new version Setting up elfutils (0.188-2.1) ... Setting up python3.11 (3.11.2-6) ... Setting up fontconfig (2.14.1-4) ... Regenerating fonts cache... done. Setting up libxcb1-dev:arm64 (1.15-1) ... Setting up libxslt1-dev:arm64 (1.1.35-1) ... Setting up libxrender1:arm64 (1:0.9.10-1.1) ... Setting up libsm-dev:arm64 (2:1.2.3-1) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libpango-1.0-0:arm64 (1.50.12+ds-1) ... Setting up xsltproc (1.1.35-1) ... Setting up libx11-dev:arm64 (2:1.8.4-2) ... Setting up libxext6:arm64 (2:1.3.4-1+b1) ... Setting up libcurl3-gnutls:arm64 (7.88.1-10) ... Setting up python3 (3.11.2-1+b1) ... Setting up libpaper-utils (1.1.29) ... Setting up libcurl4-gnutls-dev:arm64 (7.88.1-10) ... Setting up man-db (2.11.2-2) ... Building database of manual pages ... Setting up libdw-dev:arm64 (0.188-2.1) ... Setting up libcairo2:arm64 (1.16.0-7) ... Setting up libfreetype-dev:arm64 (2.12.1+dfsg-5) ... Setting up libxcb-shm0-dev:arm64 (1.15-1) ... Setting up libxcb-render0-dev:arm64 (1.15-1) ... Setting up libxt6:arm64 (1:1.2.1-1.1) ... Setting up libxext-dev:arm64 (2:1.3.4-1+b1) ... Setting up python3-lxml:arm64 (4.9.2-1+b1) ... Setting up cmake (3.25.1-1) ... Setting up libcairo-gobject2:arm64 (1.16.0-7) ... Setting up libxss1:arm64 (1:1.2.3-1) ... Setting up libpangoft2-1.0-0:arm64 (1.50.12+ds-1) ... Setting up python3-lib2to3 (3.11.2-3) ... Setting up libxrender-dev:arm64 (1:0.9.10-1.1) ... Setting up libpangocairo-1.0-0:arm64 (1.50.12+ds-1) ... Setting up python3-pkg-resources (66.1.1-1) ... Setting up python3-distutils (3.11.2-3) ... Setting up libcairo-script-interpreter2:arm64 (1.16.0-7) ... Setting up libglib2.0-dev-bin (2.74.6-2) ... Setting up libxft2:arm64 (2.3.6-1) ... Setting up libhts3:arm64 (1.16+ds-3) ... Setting up libfontconfig-dev:arm64 (2.14.1-4) ... Setting up libtk8.6:arm64 (8.6.13-2) ... Setting up libraptor2-0:arm64 (2.0.15-4) ... Setting up raptor2-utils (2.0.15-4) ... Setting up libhts-dev:arm64 (1.16+ds-3) ... Setting up debhelper (13.11.4) ... Setting up samtools (1.16.1-1) ... Setting up python3-pygments (2.14.0+dfsg-1) ... Setting up libglib2.0-dev:arm64 (2.74.6-2) ... Setting up r-base-core (4.2.2.20221110-2) ... Creating config file /etc/R/Renviron with new version Setting up r-cran-gtable (0.3.1+dfsg-1) ... Setting up r-cran-labeling (0.4.2-1) ... Setting up r-cran-lattice (0.20-45-3) ... Setting up r-cran-nlme (3.1.162-1) ... Setting up r-cran-farver (2.1.1-1) ... Setting up r-cran-viridislite (0.4.1-1) ... Setting up libtabixpp0:arm64 (1.1.2-1) ... Setting up libraptor2-dev:arm64 (2.0.15-4) ... Setting up libcairo2-dev:arm64 (1.16.0-7) ... Setting up r-cran-r6 (2.5.1-1) ... Setting up r-cran-pkgkitten (0.2.2-2) ... Setting up r-cran-magrittr (2.0.3-1) ... Setting up r-cran-littler (0.3.17-1) ... Setting up r-cran-rcpp (1.0.10-1) ... Setting up r-cran-rlang (1.0.6-1) ... Setting up r-cran-gridbase (0.4-7-5) ... Setting up littler (0.3.17-1) ... Setting up r-cran-withr (2.5.0-1) ... Setting up librasqal3:arm64 (0.9.33-2) ... Setting up r-cran-fansi (1.0.4-1) ... Setting up r-cran-mass (7.3-58.2-1) ... Setting up librasqal3-dev (0.9.33-2) ... Setting up r-cran-glue (1.6.2-1) ... Setting up r-cran-cli (3.6.0-1) ... Setting up r-cran-lifecycle (1.0.3+dfsg-1) ... Setting up r-cran-pkgconfig (2.0.3-2) ... Setting up r-cran-utf8 (1.2.3-1) ... Setting up r-cran-colorspace (2.1-0+dfsg-1) ... Setting up librdf0:arm64 (1.0.17-3) ... Setting up r-cran-plyr (1.8.8-1) ... Setting up r-cran-rcolorbrewer (1.1-3-1) ... Setting up r-cran-isoband (0.2.7-1) ... Setting up r-cran-matrix (1.5-3-1) ... Setting up librdf0-dev (1.0.17-3) ... Setting up libvcflib1:arm64 (1.0.3+dfsg-2) ... Setting up r-cran-mgcv (1.8-41-1) ... Setting up libtabixpp-dev:arm64 (1.1.2-1) ... Setting up r-cran-vctrs (0.5.2-1) ... Setting up r-cran-pillar (1.8.1+dfsg-1) ... Setting up libvcflib-dev:arm64 (1.0.3+dfsg-2) ... Setting up rasqal-utils (0.9.33-2) ... Setting up r-cran-munsell (0.5.0-2) ... Setting up r-cran-tibble (3.1.8+dfsg-1) ... Setting up r-cran-scales (1.2.1-1) ... Setting up r-cran-ggplot2 (3.4.1+dfsg-1) ... Setting up libvcflib-tools (1.0.3+dfsg-2) ... Processing triggers for libc-bin (2.36-9) ... Processing triggers for sgml-base (1.31) ... Setting up docbook-xsl (1.79.2+dfsg-2) ... Setting up sgml-data (2.0.11+nmu1) ... Processing triggers for sgml-base (1.31) ... Setting up docbook-xml (4.5-12) ... Setting up docbook (4.5-10) ... Processing triggers for sgml-base (1.31) ... Setting up docbook-to-man (1:2.0.0-45) ... Setting up gtk-doc-tools (1.33.2-1) ... ┌───────────────┐ │ Build │ └───────────────┘ dpkg-buildpackage: info: source package vg dpkg-buildpackage: info: source version 1.30.0+ds-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: host architecture arm64  dpkg-source --before-build .  debian/rules clean dh clean debian/rules override_dh_auto_clean make[1]: Entering directory '/srv/build/vg-1.30.0+ds' find /srv/build/vg-1.30.0+ds/include/ -type f -a '!' -name vg_git_version.hpp -delete dh_auto_clean || true make -j16 clean make[2]: Entering directory '/srv/build/vg-1.30.0+ds' rm -f -r lib rm -f -r obj/unittest rm -f -r obj/subcommand rm -f -r obj/io rm -f -r obj/algorithms rm -f -r obj rm -f -r share/ cd ./deps && cd sonLib && make clean make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sonLib' cd C && make clean cd externalTools && make clean make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sonLib/C' make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sonLib/externalTools' cd cutest && make clean cd quicktree_1.1 && make clean rm -rf ../bin ../lib make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sonLib/C' make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sonLib/externalTools/cutest' make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sonLib/externalTools/quicktree_1.1' rm -rf ./obj/*.o make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sonLib/externalTools/quicktree_1.1' rm -f ../../lib/cuTest.a ../../lib/CuTest.h make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sonLib/externalTools/cutest' make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sonLib/externalTools' rm -f ./bin/sonLib_daemonize.py make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sonLib' cd ./deps && cd gcsa2 && make clean make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/gcsa2' Makefile:2: ../sdsl-lite/Make.helper: No such file or directory make[3]: *** No rule to make target '../sdsl-lite/Make.helper'. Stop. make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/gcsa2' make[2]: *** [Makefile:691: clean] Error 2 make[2]: Leaving directory '/srv/build/vg-1.30.0+ds' dh_auto_clean: error: make -j16 clean returned exit code 2 make[1]: Leaving directory '/srv/build/vg-1.30.0+ds' debian/rules override_dh_clean make[1]: Entering directory '/srv/build/vg-1.30.0+ds' rm -Rf ./deps/DYNAMIC/build/CMakeFiles dh_clean make[1]: Leaving directory '/srv/build/vg-1.30.0+ds'  debian/rules binary-arch dh binary-arch dh_update_autotools_config -a debian/rules override_dh_autoreconf make[1]: Entering directory '/srv/build/vg-1.30.0+ds' dh_autoreconf --sourcedirectory=/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit libtoolize: putting auxiliary files in '.'. libtoolize: copying file './ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'acinclude.d'. libtoolize: copying file 'acinclude.d/libtool.m4' libtoolize: copying file 'acinclude.d/ltoptions.m4' libtoolize: copying file 'acinclude.d/ltsugar.m4' libtoolize: copying file 'acinclude.d/ltversion.m4' libtoolize: copying file 'acinclude.d/lt~obsolete.m4' configure.ac:12: warning: The macro `AC_LANG_CPLUSPLUS' is obsolete. configure.ac:12: You should run autoupdate. ./lib/autoconf/c.m4:262: AC_LANG_CPLUSPLUS is expanded from... configure.ac:12: the top level configure.ac:15: warning: The macro `AM_PROG_LIBTOOL' is obsolete. configure.ac:15: You should run autoupdate. acinclude.d/libtool.m4:101: AM_PROG_LIBTOOL is expanded from... configure.ac:15: the top level configure.ac:17: warning: The macro `AC_HEADER_STDC' is obsolete. configure.ac:17: You should run autoupdate. ./lib/autoconf/headers.m4:704: AC_HEADER_STDC is expanded from... configure.ac:17: the top level configure.ac:24: warning: The macro `AC_LANG_C' is obsolete. configure.ac:24: You should run autoupdate. ./lib/autoconf/c.m4:72: AC_LANG_C is expanded from... acinclude.d/ax_check_zlib.m4:63: AX_CHECK_ZLIB is expanded from... configure.ac:24: the top level configure.ac:38: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:38: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... configure.ac:38: the top level configure.ac:44: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:44: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... configure.ac:44: the top level configure.ac:49: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:49: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... configure.ac:49: the top level configure.ac:55: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:55: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... configure.ac:55: the top level configure.ac:61: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:61: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... configure.ac:61: the top level configure.ac:15: installing './compile' configure.ac:13: installing './config.guess' configure.ac:13: installing './config.sub' configure.ac:3: installing './install-sh' configure.ac:3: installing './missing' cluster/Makefile.am: installing './depcomp' make[1]: Leaving directory '/srv/build/vg-1.30.0+ds' dh_auto_configure -a debian/rules override_dh_auto_build-arch make[1]: Entering directory '/srv/build/vg-1.30.0+ds' mkdir -p /srv/build/vg-1.30.0+ds/debian/help dh_auto_build -- all test/build_graph bin/shuf make -j16 "INSTALL=install --strip-program=true" all test/build_graph bin/shuf make[2]: Entering directory '/srv/build/vg-1.30.0+ds' . ./source_me.sh && cd deps/sdsl-lite && BUILD_PORTABLE=1 CXXFLAGS="-Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp" ./install.sh /srv/build/vg-1.30.0+ds . ./source_me.sh && cd deps/libhandlegraph && CXXFLAGS="-O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2" cmake -DCMAKE_VERBOSE_MAKEFILE=ON . && make && cp libhandlegraph.a /srv/build/vg-1.30.0+ds/lib && cp -r src/include/handlegraph /srv/build/vg-1.30.0+ds/include . ./source_me.sh && cd deps/gssw && make && cp lib/* /srv/build/vg-1.30.0+ds/lib/ && cp obj/* /srv/build/vg-1.30.0+ds/obj && cp src/*.h /srv/build/vg-1.30.0+ds/include . ./source_me.sh && cd ./deps/sonLib && kyotoTycoonLib="" make && cp lib/sonLib.a /srv/build/vg-1.30.0+ds/lib/libsonlib.a && mkdir -p /srv/build/vg-1.30.0+ds/include/sonLib && cp lib/*.h /srv/build/vg-1.30.0+ds/include/sonLib . ./source_me.sh && cd deps/sublinear-Li-Stephens && make clean && INCLUDE_FLAGS="-I/srv/build/vg-1.30.0+ds/include" make libs && cp lib/libsublinearLS.a /srv/build/vg-1.30.0+ds/lib/ && mkdir -p /srv/build/vg-1.30.0+ds/include/sublinearLS && cp src/*.hpp /srv/build/vg-1.30.0+ds/include/sublinearLS/ . ./source_me.sh && cd deps/structures && make clean && make lib/libstructures.a && cp lib/libstructures.a /srv/build/vg-1.30.0+ds/lib/ && cp -r src/include/structures /srv/build/vg-1.30.0+ds/include/ rm -f lib/libboost_* make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/gssw' rm -f lib/cleaned_old_protobuf* cp deps/BBHash/BooPHF.h /srv/build/vg-1.30.0+ds/include cp -r deps/sparsepp/sparsepp include/ make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sonLib' cd externalTools && make all rm -Rf include/dynamic.hpp include/dynamic gcc -Wl,-z,relro -Wl,-z,now -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -Wall -O3 -g -c -o obj/gssw.o src/gssw.c make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens' . ./source_me.sh && cp deps/mmmultimap/src/mmmultimap.hpp deps/mmmultimap/src/mmmultiset.hpp /srv/build/vg-1.30.0+ds/include/ rm -Rf include/boost make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/structures' if [ ! -d bin ]; then mkdir -p bin; fi rm -f lib/libproto* lib/pkgconfig/protobuf* bin/protoc . ./source_me.sh && cp -r deps/ips4o/ips4o* /srv/build/vg-1.30.0+ds/include/ cp ./deps/gfakluge/src/*.hpp /srv/build/vg-1.30.0+ds/include/ && cp ./deps/gfakluge/src/tinyFA/*.hpp /srv/build/vg-1.30.0+ds/include/ # annoyingly doesn't have an install option on the cmake, so we manually move their external dependency headers cd ./deps/lru_cache && cp *.h* /srv/build/vg-1.30.0+ds/include/ Library will be installed in '/srv/build/vg-1.30.0+ds' cp deps/sha1/*.h* /srv/build/vg-1.30.0+ds/include/ rm -f /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/bin/* /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/*.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/test/*.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/lib/* touch lib/cleaned_old_boost cp deps/progress_bar/progress_bar.hpp /srv/build/vg-1.30.0+ds/include cd /srv/build/vg-1.30.0+ds/deps/DYNAMIC && rm -Rf build && mkdir -p build && cd build && export CXXFLAGS="-Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp" && cmake -DCMAKE_VERBOSE_MAKEFILE=ON .. && make rm -Rf include/google/protobuf deps/protobuf make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sonLib/externalTools' cd cutest && make all cp -r deps/dozeu/simde include if [ ! -d obj ]; then mkdir -p obj; fi WARNING: .git/hooks directory does not exists. The pre-commit hook is not installed. if [ ! -d lib ]; then mkdir -p lib; fi cd quicktree_1.1 && make all CC="gcc -std=c99" touch lib/cleaned_old_protobuf_v003 make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens' make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sonLib/externalTools/cutest' make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens' gcc -std=c99 -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c CuTest.c find bin obj lib -type f -delete make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sonLib/externalTools/quicktree_1.1' gcc -std=c99 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -c -I./include -O3 -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -o ./obj/align.o ./src/align.c gcc -std=c99 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -c -I./include -O3 -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -o ./obj/cluster.o ./src/cluster.c gcc -std=c99 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -c -I./include -O3 -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -o ./obj/distancemat.o ./src/distancemat.c if [ ! -d /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj ]; then mkdir -p /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj; fi gcc -std=c99 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -c -I./include -O3 -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -o ./obj/options.o ./src/options.c gcc -std=c99 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -c -I./include -O3 -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -o ./obj/util.o ./src/util.c g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/math.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/math.o gcc -std=c99 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -c -I./include -O3 -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -o ./obj/sequence.o ./src/sequence.c make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/structures' gcc -std=c99 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -c -I./include -O3 -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -o ./obj/quicktree.o ./src/quicktree.c if [ ! -d /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/test ]; then mkdir -p /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/test; fi make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/structures' if [ ! -d bin ]; then mkdir -p bin; fi if [ ! -d obj ]; then mkdir -p obj; fi gcc -std=c99 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -c -I./include -O3 -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -o ./obj/buildtree.o ./src/buildtree.c CMake Warning (dev) at /usr/share/cmake-3.25/Modules/GNUInstallDirs.cmake:243 (message): Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. Please enable at least one language before including GNUInstallDirs. Call Stack (most recent call first): CMakeLists.txt:5 (include) This warning is for project developers. Use -Wno-dev to suppress it.  if [ ! -d /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/bin ]; then mkdir -p /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/bin; fi if [ ! -d lib ]; then mkdir -p lib; fi if [ ! -d /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/lib ]; then mkdir -p /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/lib; fi g++ -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -g -O3 -Isrc/include -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -c src/union_find.cpp -o obj/union_find.o if [ ! -d /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps ]; then mkdir -p /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps; fi g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/reference.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/reference.o CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.  -- Setting build type to 'Debug' as none was specified. CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.  ./src/distancemat.c: In function ‘read_phylip_DistanceMatrix’: ./src/distancemat.c:390:5: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-result-Wunused-result]8;;] 390 | fscanf( handle, "%s", identifier ); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/distancemat.c:397:7: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-result-Wunused-result]8;;] 397 | fscanf( handle, "%lf", &dist); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc -std=c99 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -c -I./include -O3 -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -o ./obj/tree.o ./src/tree.c g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/probability.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/probability.o g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/input_haplotype.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/input_haplotype.o -- The C compiler identification is GNU 12.2.0 -- The C compiler identification is GNU 12.2.0 g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/delay_multiplier.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/delay_multiplier.o -- The CXX compiler identification is GNU 12.2.0 ./src/tree.c: In function ‘read_newhampshire_Tnode’: ./src/tree.c:393:3: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-result-Wunused-result]8;;] 393 | fscanf( handle, "%1s", &c); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/tree.c:406:5: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-result-Wunused-result]8;;] 406 | fscanf( handle, "%1s", &c); /* should be , */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/tree.c:417:5: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-result-Wunused-result]8;;] 417 | fscanf( handle, "%1s", &c); /* should be ) */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/tree.c:420:5: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-result-Wunused-result]8;;] 420 | fscanf( handle, "%1s", &c); /* should be : */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/tree.c: In function ‘read_newhampshire_Tree’: ./src/tree.c:468:3: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-result-Wunused-result]8;;] 468 | fscanf( handle, "("); | ^~~~~~~~~~~~~~~~~~~~ ./src/tree.c:475:3: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-result-Wunused-result]8;;] 475 | fscanf( handle, "%1s", &c ); /* should be , */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/tree.c:484:3: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-result-Wunused-result]8;;] 484 | fscanf( handle, "%1s", &c ); /* should be , */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/tree.c:493:3: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-result-Wunused-result]8;;] 493 | fscanf( handle, "%1s", &c); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/tree.c:496:3: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wunused-result-Wunused-result]8;;] 496 | fscanf( handle, "%1s", &c); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/DP_map.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/DP_map.o g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/penalty_set.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/penalty_set.o -- The CXX compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -Wno-error=return-type -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/allele.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/allele.o -- The C compiler identification is GNU 12.2.0 -- Detecting CXX compiler ABI info -- Detecting C compiler ABI info - done g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/row_set.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/row_set.o -- Detecting C compiler ABI info - done ar rc cuTest.a *.o -- Check for working C compiler: /usr/bin/gcc - skipped -- Detecting C compile features -- Detecting C compile features - done ranlib cuTest.a g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -Wno-error=return-type -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/haplotype_state_node.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/haplotype_state_node.o -- Detecting CXX compiler ABI info rm -f *.o mv cuTest.a ../../lib/ -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features cp CuTest.h ../../lib/ -- Detecting C compile features - done make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sonLib/externalTools/cutest' g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/haplotype_state_tree.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/haplotype_state_tree.o -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/allele.cpp: In function ‘char allele::to_char(alleleValue)’: /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/allele.cpp:20:1: warning: control reaches end of non-void function []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wreturn-type-Wreturn-type]8;;] 20 | } | ^ -- Check for working CXX compiler: /usr/bin/g++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Detecting C compiler ABI info g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/haplotype_manager.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/haplotype_manager.o g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/set_of_extensions.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/set_of_extensions.o -- Detecting CXX compiler ABI info - done -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/g++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done libhandlegraph is root project or external_project -- Configuring done g++ -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -g -O3 -Isrc/include -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -c src/suffix_tree.cpp -o obj/suffix_tree.o -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done Building in Debug mode -- Configuring done -- Generating done -- Build files have been written to: /srv/build/vg-1.30.0+ds/deps/libhandlegraph -- Detecting C compiler ABI info - done make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' /usr/bin/cmake -S/srv/build/vg-1.30.0+ds/deps/libhandlegraph -B/srv/build/vg-1.30.0+ds/deps/libhandlegraph --check-build-system CMakeFiles/Makefile.cmake 0 -- Generating done -- Build files have been written to: /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build -- Check for working C compiler: /usr/bin/gcc - skipped -- Detecting C compile features -- Detecting C compile features - done make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' /usr/bin/cmake -S/srv/build/vg-1.30.0+ds/deps/DYNAMIC -B/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build --check-build-system CMakeFiles/Makefile.cmake 0 -- Compiler is recent enough to support C++11. -- Performing Test HAVE_GCC_STD=C__11__WALL__WEXTRA__DNDEBUG /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/libhandlegraph/CMakeFiles /srv/build/vg-1.30.0+ds/deps/libhandlegraph//CMakeFiles/progress.marks /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build/CMakeFiles /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build//CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' make -f CMakeFiles/handlegraph_objs.dir/build.make CMakeFiles/handlegraph_objs.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' cd /srv/build/vg-1.30.0+ds/deps/libhandlegraph && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libhandlegraph/CMakeFiles/handlegraph_objs.dir/DependInfo.cmake --color= make -f CMakeFiles/Makefile2 all make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' make -f CMakeFiles/debug.dir/build.make CMakeFiles/debug.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' cd /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build/CMakeFiles/debug.dir/DependInfo.cmake --color= make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' make -f CMakeFiles/handlegraph_objs.dir/build.make CMakeFiles/handlegraph_objs.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' make -f CMakeFiles/debug.dir/build.make CMakeFiles/debug.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' [ 3%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/deletable_handle_graph.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/deletable_handle_graph.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/deletable_handle_graph.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/deletable_handle_graph.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/deletable_handle_graph.cpp [ 7%] Building CXX object CMakeFiles/debug.dir/debug.cpp.o /usr/bin/c++ -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/internal -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms/cw-bwt -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -MD -MT CMakeFiles/debug.dir/debug.cpp.o -MF CMakeFiles/debug.dir/debug.cpp.o.d -o CMakeFiles/debug.dir/debug.cpp.o -c /srv/build/vg-1.30.0+ds/deps/DYNAMIC/debug.cpp -- Performing Test HAVE_GCC_STD=C__11__WALL__WEXTRA__DNDEBUG - Success -- Performing Test HAVE_GCC_O3__FFAST_MATH__FUNROLL_LOOPS -- Performing Test HAVE_GCC_O3__FFAST_MATH__FUNROLL_LOOPS - Success /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/haplotype_state_node.cpp: In member function ‘size_t haplotypeStateNode::node_to_child_index(const haplotypeStateNode*) const’: /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/haplotype_state_node.cpp:96:1: warning: control reaches end of non-void function []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wreturn-type-Wreturn-type]8;;] 96 | } | ^ gcc -std=c99 -Wl,-z,relro -Wl,-z,now -g -o bin/quicktree ./obj/align.o ./obj/cluster.o ./obj/distancemat.o ./obj/options.o ./obj/util.o ./obj/sequence.o ./obj/quicktree.o ./obj/buildtree.o ./obj/tree.o -lm make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sonLib/externalTools/quicktree_1.1' make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sonLib/externalTools' cd C && make all make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sonLib/C' cp inc/avl.h ../lib/avl.h.tmp mv ../lib/avl.h.tmp ../lib/avl.h cp inc/bioioC.h ../lib/bioioC.h.tmp -- Performing Test HAVE_CXA_DEMANGLE mv ../lib/bioioC.h.tmp ../lib/bioioC.h cp inc/commonC.h ../lib/commonC.h.tmp mv ../lib/commonC.h.tmp ../lib/commonC.h cp inc/fastCMaths.h ../lib/fastCMaths.h.tmp mv ../lib/fastCMaths.h.tmp ../lib/fastCMaths.h cp inc/hashTableC.h ../lib/hashTableC.h.tmp mv ../lib/hashTableC.h.tmp ../lib/hashTableC.h g++ -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -g -I/srv/build/vg-1.30.0+ds/include -L. -L/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/deps/htslib/ -lhts -llzma -lbz2 -lz -lm -lpthread -c /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/src/reference_sequence.cpp -o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/reference_sequence.o cp inc/hashTableC_itr.h ../lib/hashTableC_itr.h.tmp mv ../lib/hashTableC_itr.h.tmp ../lib/hashTableC_itr.h cp inc/hashTablePrivateC.h ../lib/hashTablePrivateC.h.tmp mv ../lib/hashTablePrivateC.h.tmp ../lib/hashTablePrivateC.h cp inc/jsmn.h ../lib/jsmn.h.tmp mv ../lib/jsmn.h.tmp ../lib/jsmn.h cp inc/pairwiseAlignment.h ../lib/pairwiseAlignment.h.tmp mv ../lib/pairwiseAlignment.h.tmp ../lib/pairwiseAlignment.h cp inc/sonLib.h ../lib/sonLib.h.tmp cp inc/sonLibAlign.h ../lib/sonLibAlign.h.tmp mv ../lib/sonLib.h.tmp ../lib/sonLib.h mv ../lib/sonLibAlign.h.tmp ../lib/sonLibAlign.h cp inc/sonLibCache.h ../lib/sonLibCache.h.tmp cp inc/sonLibCommon.h ../lib/sonLibCommon.h.tmp mv ../lib/sonLibCache.h.tmp ../lib/sonLibCache.h mv ../lib/sonLibCommon.h.tmp ../lib/sonLibCommon.h cp inc/sonLibCompression.h ../lib/sonLibCompression.h.tmp cp inc/sonLibConnectivity.h ../lib/sonLibConnectivity.h.tmp mv ../lib/sonLibCompression.h.tmp ../lib/sonLibCompression.h mv ../lib/sonLibConnectivity.h.tmp ../lib/sonLibConnectivity.h cp inc/sonLibEulerTour.h ../lib/sonLibEulerTour.h.tmp cp inc/sonLibExcept.h ../lib/sonLibExcept.h.tmp mv ../lib/sonLibEulerTour.h.tmp ../lib/sonLibEulerTour.h mv ../lib/sonLibExcept.h.tmp ../lib/sonLibExcept.h cp inc/sonLibFile.h ../lib/sonLibFile.h.tmp cp inc/sonLibHash.h ../lib/sonLibHash.h.tmp mv ../lib/sonLibFile.h.tmp ../lib/sonLibFile.h mv ../lib/sonLibHash.h.tmp ../lib/sonLibHash.h cp inc/sonLibKVDatabase.h ../lib/sonLibKVDatabase.h.tmp mv ../lib/sonLibKVDatabase.h.tmp ../lib/sonLibKVDatabase.h cp inc/sonLibKVDatabaseConf.h ../lib/sonLibKVDatabaseConf.h.tmp mv ../lib/sonLibKVDatabaseConf.h.tmp ../lib/sonLibKVDatabaseConf.h cp inc/sonLibList.h ../lib/sonLibList.h.tmp [ 6%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/handle_graph.cpp.o mv ../lib/sonLibList.h.tmp ../lib/sonLibList.h /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/handle_graph.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/handle_graph.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/handle_graph.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/handle_graph.cpp g++ -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -g -O3 -Isrc/include -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -c src/stable_double.cpp -o obj/stable_double.o cp inc/sonLibMath.h ../lib/sonLibMath.h.tmp mv ../lib/sonLibMath.h.tmp ../lib/sonLibMath.h cp inc/sonLibNaiveConnectivity.h ../lib/sonLibNaiveConnectivity.h.tmp mv ../lib/sonLibNaiveConnectivity.h.tmp ../lib/sonLibNaiveConnectivity.h cp inc/sonLibRandom.h ../lib/sonLibRandom.h.tmp mv ../lib/sonLibRandom.h.tmp ../lib/sonLibRandom.h cp inc/sonLibSet.h ../lib/sonLibSet.h.tmp mv ../lib/sonLibSet.h.tmp ../lib/sonLibSet.h cp inc/sonLibSortedSet.h ../lib/sonLibSortedSet.h.tmp mv ../lib/sonLibSortedSet.h.tmp ../lib/sonLibSortedSet.h cp inc/sonLibString.h ../lib/sonLibString.h.tmp mv ../lib/sonLibString.h.tmp ../lib/sonLibString.h cp inc/sonLibTreap.h ../lib/sonLibTreap.h.tmp mv ../lib/sonLibTreap.h.tmp ../lib/sonLibTreap.h cp inc/sonLibTree.h ../lib/sonLibTree.h.tmp mv ../lib/sonLibTree.h.tmp ../lib/sonLibTree.h cp inc/sonLibTuples.h ../lib/sonLibTuples.h.tmp mv ../lib/sonLibTuples.h.tmp ../lib/sonLibTuples.h cp inc/sonLibTypes.h ../lib/sonLibTypes.h.tmp mv ../lib/sonLibTypes.h.tmp ../lib/sonLibTypes.h cp inc/stGraph.h ../lib/stGraph.h.tmp mv ../lib/stGraph.h.tmp ../lib/stGraph.h cp inc/stJson.h ../lib/stJson.h.tmp cp inc/stMatrix.h ../lib/stMatrix.h.tmp mv ../lib/stJson.h.tmp ../lib/stJson.h mv ../lib/stMatrix.h.tmp ../lib/stMatrix.h cp inc/stPhylogeny.h ../lib/stPhylogeny.h.tmp cp inc/stPosetAlignment.h ../lib/stPosetAlignment.h.tmp mv ../lib/stPhylogeny.h.tmp ../lib/stPhylogeny.h mv ../lib/stPosetAlignment.h.tmp ../lib/stPosetAlignment.h make -f CMakeFiles/rle_lz77_v1.dir/build.make CMakeFiles/rle_lz77_v1.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' cd /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build/CMakeFiles/rle_lz77_v1.dir/DependInfo.cmake --color= cp inc/stSafeC.h ../lib/stSafeC.h.tmp mv ../lib/stSafeC.h.tmp ../lib/stSafeC.h cp inc/stSpimapLayer.h ../lib/stSpimapLayer.h.tmp mv ../lib/stSpimapLayer.h.tmp ../lib/stSpimapLayer.h cp inc/stThreadPool.h ../lib/stThreadPool.h.tmp -- Performing Test HAVE_CXA_DEMANGLE - Success -- Compiler supports DEMANGLE. -- Performing Test HAVE_GCC_DHAVE_CXA_DEMANGLE mv ../lib/stThreadPool.h.tmp ../lib/stThreadPool.h make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' make -f CMakeFiles/rle_lz77_v1.dir/build.make CMakeFiles/rle_lz77_v1.dir/build cp inc/stUnionFind.h ../lib/stUnionFind.h.tmp make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' mv ../lib/stUnionFind.h.tmp ../lib/stUnionFind.h gcc -std=c99 -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -I../externalTools/quicktree_1.1/include/ -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -I inc -I ../lib/ -c impl/*.c cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C [ 14%] Building CXX object CMakeFiles/rle_lz77_v1.dir/rle_lz77_v1.cpp.o /usr/bin/c++ -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/internal -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms/cw-bwt -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -MD -MT CMakeFiles/rle_lz77_v1.dir/rle_lz77_v1.cpp.o -MF CMakeFiles/rle_lz77_v1.dir/rle_lz77_v1.cpp.o.d -o CMakeFiles/rle_lz77_v1.dir/rle_lz77_v1.cpp.o -c /srv/build/vg-1.30.0+ds/deps/DYNAMIC/rle_lz77_v1.cpp make -f CMakeFiles/rle_lz77_v2.dir/build.make CMakeFiles/rle_lz77_v2.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' cd /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build/CMakeFiles/rle_lz77_v2.dir/DependInfo.cmake --color= make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' make -f CMakeFiles/rle_lz77_v2.dir/build.make CMakeFiles/rle_lz77_v2.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' [ 21%] Building CXX object CMakeFiles/rle_lz77_v2.dir/rle_lz77_v2.cpp.o /usr/bin/c++ -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/internal -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms/cw-bwt -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -MD -MT CMakeFiles/rle_lz77_v2.dir/rle_lz77_v2.cpp.o -MF CMakeFiles/rle_lz77_v2.dir/rle_lz77_v2.cpp.o.d -o CMakeFiles/rle_lz77_v2.dir/rle_lz77_v2.cpp.o -c /srv/build/vg-1.30.0+ds/deps/DYNAMIC/rle_lz77_v2.cpp [ 9%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/mutable_handle_graph.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/mutable_handle_graph.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/mutable_handle_graph.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/mutable_handle_graph.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/mutable_handle_graph.cpp -- Performing Test HAVE_GCC_DHAVE_CXA_DEMANGLE - Success -- Could NOT find Git (missing: GIT_EXECUTABLE) CMake Warning at CMakeLists.txt:105 (message): git not found. Cloning of submodules will not work.  -- Looking for C++ include cstdio [ 12%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/path_handle_graph.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/path_handle_graph.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/path_handle_graph.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/path_handle_graph.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/path_handle_graph.cpp [ 16%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/path_position_handle_graph.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/path_position_handle_graph.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/path_position_handle_graph.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/path_position_handle_graph.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/path_position_handle_graph.cpp -- Looking for C++ include cstdio - found -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) -- Configuring done In file included from /usr/include/string.h:535, from src/gssw.c:37: In function ‘memcpy’, inlined from ‘unswizzle_byte’ at src/gssw.c:277:5, inlined from ‘gssw_sw_software_byte’ at src/gssw.c:405:9: /usr/include/aarch64-linux-gnu/bits/string_fortified.h:29:10: warning: ‘__builtin_memcpy’ specified size between 18446744071562067984 and 18446744073709551615 exceeds maximum object size 9223372036854775807 []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wstringop-overflow=-Wstringop-overflow=]8;;] 29 | return __builtin___memcpy_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 |  __glibc_objsize0 (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C [ 19%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/ranked_handle_graph.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/ranked_handle_graph.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/ranked_handle_graph.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/ranked_handle_graph.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/ranked_handle_graph.cpp impl/bioioC.c: In function ‘parseInt’: impl/bioioC.c:265:23: warning: comparison between pointer and zero character constant []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wpointer-compare-Wpointer-compare]8;;] 265 | while(*string != '\0' && !isspace(**string)) { | ^~ impl/bioioC.c:265:15: note: did you mean to dereference the pointer? 265 | while(*string != '\0' && !isspace(**string)) { | ^ impl/bioioC.c: In function ‘parseFloat’: impl/bioioC.c:286:23: warning: comparison between pointer and zero character constant []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wpointer-compare-Wpointer-compare]8;;] 286 | while(*string != '\0' && !isspace(**string)) { | ^~ impl/bioioC.c:286:15: note: did you mean to dereference the pointer? 286 | while(*string != '\0' && !isspace(**string)) { | ^ impl/bioioC.c: In function ‘parseString’: impl/bioioC.c:307:23: warning: comparison between pointer and zero character constant []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wpointer-compare-Wpointer-compare]8;;] 307 | while(*string != '\0' && !isspace(**string)) { | ^~ impl/bioioC.c:307:15: note: did you mean to dereference the pointer? 307 | while(*string != '\0' && !isspace(**string)) { | ^ [ 22%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/serializable.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/serializable.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/serializable.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/serializable.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/serializable.cpp [ 25%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/snarl_decomposition.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/snarl_decomposition.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/snarl_decomposition.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/snarl_decomposition.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/snarl_decomposition.cpp -- Generating done -- Build files have been written to: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' /usr/bin/cmake -S/srv/build/vg-1.30.0+ds/deps/sdsl-lite -B/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build --check-build-system CMakeFiles/Makefile.cmake 0 make -f CMakeFiles/Makefile2 sdsl make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' /usr/bin/cmake -S/srv/build/vg-1.30.0+ds/deps/sdsl-lite -B/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/CMakeFiles 7 make -f CMakeFiles/Makefile2 lib/CMakeFiles/sdsl.dir/all make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' make -f lib/CMakeFiles/sdsl.dir/build.make lib/CMakeFiles/sdsl.dir/depend make[6]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/sdsl-lite /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/CMakeFiles/sdsl.dir/DependInfo.cmake --color= make[6]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' make -f lib/CMakeFiles/sdsl.dir/build.make lib/CMakeFiles/sdsl.dir/build make[6]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' [ 0%] Building CXX object lib/CMakeFiles/sdsl.dir/bits.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/bits.cpp.o -MF CMakeFiles/sdsl.dir/bits.cpp.o.d -o CMakeFiles/sdsl.dir/bits.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/bits.cpp [ 29%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/trivially_serializable.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/trivially_serializable.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/trivially_serializable.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/trivially_serializable.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/trivially_serializable.cpp rm -f lib/libstructures.a ar rs lib/libstructures.a obj/union_find.o obj/suffix_tree.o obj/stable_double.o ar: creating lib/libstructures.a make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/structures' diff: include/vg_environment_version.hpp: No such file or directory . ./source_me.sh && cd deps/progress_bar && make && cp progress_bar.o /srv/build/vg-1.30.0+ds/obj make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/progress_bar' g++ -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -c main.cpp [ 32%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/types.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/types.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/types.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/types.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/types.cpp cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C [ 35%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/copy_graph.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/copy_graph.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/copy_graph.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/copy_graph.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/copy_graph.cpp [ 38%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/append_graph.cpp.o [ 41%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/are_equivalent.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/append_graph.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/append_graph.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/append_graph.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/append_graph.cpp /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/are_equivalent.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/are_equivalent.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/are_equivalent.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/are_equivalent.cpp [ 45%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/find_tips.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/find_tips.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/find_tips.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/find_tips.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/find_tips.cpp [ 48%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/topological_sort.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/topological_sort.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/topological_sort.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/topological_sort.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/topological_sort.cpp [ 51%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/apply_orientations.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/apply_orientations.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/apply_orientations.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/apply_orientations.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/apply_orientations.cpp [ 0%] Building CXX object lib/CMakeFiles/sdsl.dir/bp_support_algorithm.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/bp_support_algorithm.cpp.o -MF CMakeFiles/sdsl.dir/bp_support_algorithm.cpp.o.d -o CMakeFiles/sdsl.dir/bp_support_algorithm.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/bp_support_algorithm.cpp g++ -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -c progress_bar.cpp src/gssw.c: In function ‘gssw_node_create’: src/gssw.c:4958:5: warning: ‘__builtin_strncpy’ output truncated before terminating nul copying as many bytes from a string as its length []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wstringop-truncation-Wstringop-truncation]8;;] 4958 | strncpy(n->seq, seq, len); n->seq[len] = 0; | ^ src/gssw.c:4954:19: note: length computed here 4954 | int32_t len = strlen(seq); | ^~~~~~~~~~~ cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C [ 54%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/is_single_stranded.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/is_single_stranded.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/is_single_stranded.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/is_single_stranded.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/is_single_stranded.cpp [ 58%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/count_walks.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/count_walks.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/count_walks.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/count_walks.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/count_walks.cpp [ 61%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/eades_algorithm.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/eades_algorithm.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/eades_algorithm.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/eades_algorithm.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/eades_algorithm.cpp cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C [ 64%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/dagify.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/dagify.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/dagify.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/dagify.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/dagify.cpp g++ -Wl,-z,relro -Wl,-z,now -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 main.o progress_bar.o -o progress_bar cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/progress_bar' g++ -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -c -o obj/sha1.o deps/sha1/sha1.cpp cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bp_support_algorithm.hpp:24, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/bp_support_algorithm.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ [ 67%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/strongly_connected_components.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/strongly_connected_components.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/strongly_connected_components.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/strongly_connected_components.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/strongly_connected_components.cpp cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C [ 70%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/find_shortest_paths.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/find_shortest_paths.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/find_shortest_paths.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/find_shortest_paths.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/find_shortest_paths.cpp [ 28%] Linking CXX executable debug /usr/bin/cmake -E cmake_link_script CMakeFiles/debug.dir/link.txt --verbose=1 /usr/bin/c++ -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -Wl,-z,relro -Wl,-z,now -rdynamic CMakeFiles/debug.dir/debug.cpp.o -o debug make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C [ 28%] Built target debug make -f CMakeFiles/h0_lz77.dir/build.make CMakeFiles/h0_lz77.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' cd /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build/CMakeFiles/h0_lz77.dir/DependInfo.cmake --color= make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' make -f CMakeFiles/h0_lz77.dir/build.make CMakeFiles/h0_lz77.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' [ 35%] Building CXX object CMakeFiles/h0_lz77.dir/h0_lz77.cpp.o /usr/bin/c++ -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/internal -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms/cw-bwt -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -MD -MT CMakeFiles/h0_lz77.dir/h0_lz77.cpp.o -MF CMakeFiles/h0_lz77.dir/h0_lz77.cpp.o.d -o CMakeFiles/h0_lz77.dir/h0_lz77.cpp.o -c /srv/build/vg-1.30.0+ds/deps/DYNAMIC/h0_lz77.cpp cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C impl/sonLibCompression.c: In function ‘stCompression_compress’: impl/sonLibCompression.c:37:9: warning: ‘LZ4_compress’ is deprecated: use LZ4_compress_default() instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations]8;;] 37 | int64_t bytesWritten = LZ4_compress(((char*)data) + inputOffset, buffer+(outputOffset+1), subChunk ? ST_LZ4_CHUNK_SIZE : sizeInBytes - inputOffset); | ^~~~~~~ In file included from /usr/include/lz4hc.h:43, from impl/sonLibCompression.c:15: /usr/include/lz4.h:765:75: note: declared here 765 | LZ4_DEPRECATED("use LZ4_compress_default() instead") LZ4LIB_API int LZ4_compress (const char* src, char* dest, int srcSize); | ^~~~~~~~~~~~ impl/sonLibCompression.c: In function ‘stCompression_decompress’: impl/sonLibCompression.c:60:13: warning: ‘LZ4_uncompress’ is deprecated: use LZ4_decompress_fast() instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations]8;;] 60 | int64_t bytesRead = LZ4_uncompress(((char *)compressedData)+inputOffset, | ^~~~~~~ /usr/include/lz4.h:773:68: note: declared here 773 | LZ4_DEPRECATED("use LZ4_decompress_fast() instead") LZ4LIB_API int LZ4_uncompress (const char* source, char* dest, int outputSize); | ^~~~~~~~~~~~~~ impl/sonLibCompression.c:72:17: warning: ‘LZ4_uncompress_unknownOutputSize’ is deprecated: use LZ4_decompress_safe() instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations]8;;] 72 | int64_t bytesWritten = LZ4_uncompress_unknownOutputSize(((char *)compressedData)+inputOffset, | ^~~~~~~ /usr/include/lz4.h:774:68: note: declared here 774 | LZ4_DEPRECATED("use LZ4_decompress_safe() instead") LZ4LIB_API int LZ4_uncompress_unknownOutputSize (const char* source, char* dest, int isize, int maxOutputSize); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 74%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/dijkstra.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/dijkstra.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/dijkstra.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/dijkstra.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/dijkstra.cpp [ 77%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/is_acyclic.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/is_acyclic.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/is_acyclic.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/is_acyclic.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/is_acyclic.cpp cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C [ 80%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/reverse_complement.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/reverse_complement.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/reverse_complement.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/reverse_complement.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/reverse_complement.cpp ln -s `which shuf` bin/shuf . ./source_me.sh && cd deps/vowpal_wabbit && rm -Rf /srv/build/vg-1.30.0+ds/lib/libvw.* /srv/build/vg-1.30.0+ds/include/vowpalwabbit . ./source_me.sh && cd deps/vowpal_wabbit && sed -i -e 's/libvw_c_wrapper\.pc//g' Makefile.am . ./source_me.sh && cd deps/vowpal_wabbit && sed -i -e 's/libvw_c_wrapper\.la//g' vowpalwabbit/Makefile.am . ./source_me.sh && cd deps/vowpal_wabbit && sed -i -e '/libvw_c_wrapper\.pc/d' configure.ac . ./source_me.sh && cd deps/vowpal_wabbit && sed -i -e '/vwdll/d' Makefile.am . ./source_me.sh && cd deps/vowpal_wabbit && sed -i -e '/libvw_c_wrapper/d' vowpalwabbit/Makefile.am . ./source_me.sh && cd deps/vowpal_wabbit && rm -Rf vowpalwabbit/*.la vowpalwabbit/.libs . ./source_me.sh && cd deps/vowpal_wabbit && CXXFLAGS="-O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 " LDFLAGS="-L/srv/build/vg-1.30.0+ds/lib" ./autogen.sh || true ./autogen.sh: 22: [[: not found libtoolize: putting auxiliary files in '.'. libtoolize: copying file './ltmain.sh' rm -f /srv/build/vg-1.30.0+ds/include/vg.pb.h /srv/build/vg-1.30.0+ds/include/vg/vg.pb.h rm -Rf /srv/build/vg-1.30.0+ds/include/vg/io/ . ./source_me.sh && export CXXFLAGS="-Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp" && cd deps/libvgio && rm -Rf CMakeCache.txt CMakeFiles *.cmake install_manifest.txt *.pb.cc *.pb.h *.a && PKG_CONFIG_PATH=/srv/build/vg-1.30.0+ds/lib/pkgconfig: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_PREFIX_PATH=/srv/build/vg-1.30.0+ds -DCMAKE_LIBRARY_PATH=/srv/build/vg-1.30.0+ds/lib -DCMAKE_INSTALL_PREFIX=/srv/build/vg-1.30.0+ds -DCMAKE_INSTALL_LIBDIR=lib . && make clean && VERBOSE=1 make && make install libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'acinclude.d'. libtoolize: copying file 'acinclude.d/libtool.m4' libtoolize: copying file 'acinclude.d/ltoptions.m4' impl/sonLibConnectivity.c: In function ‘stConnectivity_addEdge’: impl/sonLibConnectivity.c:248:33: warning: pointer ‘component1’ may be used after ‘free’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 248 | connectivity->mergeCallback(connectivity->mergeExtraData, component1, component2); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In function ‘stConnectedComponent_destruct’, inlined from ‘stConnectivity_addEdge’ at impl/sonLibConnectivity.c:238:3: impl/sonLibConnectivity.c:608:9: note: call to ‘free’ here 608 | free(comp); | ^~~~~~~~~~ [ 83%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/split_strands.cpp.o libtoolize: copying file 'acinclude.d/ltsugar.m4' /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/split_strands.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/split_strands.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/split_strands.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/split_strands.cpp libtoolize: copying file 'acinclude.d/ltversion.m4' cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C -- The CXX compiler identification is GNU 12.2.0 libtoolize: copying file 'acinclude.d/lt~obsolete.m4' -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/g++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done [ 87%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/unchop.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/unchop.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/unchop.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/unchop.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/unchop.cpp In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:24: In static member function ‘static void sdsl::bits::write_int(uint64_t*, uint64_t, uint8_t, uint8_t)’, inlined from ‘static void sdsl::memory_manager::resize(t_vec&, typename t_vec::size_type) [with t_vec = sdsl::int_vector<0>]’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/memory_management.hpp:364:36, inlined from ‘void sdsl::int_vector< >::bit_resize(size_type) [with unsigned char t_width = 0]’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1327:27, inlined from ‘void sdsl::int_vector< >::resize(size_type) [with unsigned char t_width = 0]’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:379:23, inlined from ‘sdsl::int_vector< >::int_vector(size_type, value_type, uint8_t) [with unsigned char t_width = 0]’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1254:11, inlined from ‘sdsl::excess::impl::impl()’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bp_support_algorithm.hpp:114:46: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:460:9: warning: ‘*temp’ may be used uninitialized []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wmaybe-uninitialized-Wmaybe-uninitialized]8;;] 460 | *word &= | ^~~~~ cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C ar rc /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/lib/libsublinearLS.a /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/math.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/reference.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/probability.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/input_haplotype.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/delay_multiplier.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/DP_map.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/penalty_set.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/allele.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/row_set.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/haplotype_state_node.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/haplotype_state_tree.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/haplotype_manager.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/set_of_extensions.o /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/obj/reference_sequence.o -- Found OpenMP_CXX: -fopenmp (found version "4.5") -- Found OpenMP: TRUE (found version "4.5") -- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1") -- [ /usr/share/cmake-3.25/Modules/FindProtobuf.cmake:343 ] Protobuf_USE_STATIC_LIBS = OFF ranlib /srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens/lib/libsublinearLS.a [ 90%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/weakly_connected_components.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/weakly_connected_components.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/weakly_connected_components.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/weakly_connected_components.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/weakly_connected_components.cpp cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sublinear-Li-Stephens' mkdir -p /srv/build/vg-1.30.0+ds/include/dozeu && cp deps/dozeu/*.h /srv/build/vg-1.30.0+ds/include/dozeu/ [ 93%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/extend.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/include -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/extend.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/extend.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/extend.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libhandlegraph/src/extend.cpp make -f CMakeFiles/rle_bwt.dir/build.make CMakeFiles/rle_bwt.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' cd /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build/CMakeFiles/rle_bwt.dir/DependInfo.cmake --color= -- [ /usr/share/cmake-3.25/Modules/FindProtobuf.cmake:479 ] requested version of Google Protobuf is -- [ /usr/share/cmake-3.25/Modules/FindProtobuf.cmake:487 ] location of common.h: /usr/include/google/protobuf/stubs/common.h -- [ /usr/share/cmake-3.25/Modules/FindProtobuf.cmake:505 ] /usr/include/google/protobuf/stubs/common.h reveals protobuf 3.21.12 make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' make -f CMakeFiles/rle_bwt.dir/build.make CMakeFiles/rle_bwt.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' -- [ /usr/share/cmake-3.25/Modules/FindProtobuf.cmake:519 ] /usr/bin/protoc reveals version 3.21.12 -- Found Protobuf: /usr/lib/aarch64-linux-gnu/libprotobuf.so (found version "3.21.12") Protobuf will be /usr/lib/aarch64-linux-gnu/libprotobuf.so for PIC dynamic code and /usr/lib/aarch64-linux-gnu/libprotobuf.a for non-PIC static code -- Found Threads: TRUE -- Checking for module 'htslib' [ 42%] Building CXX object CMakeFiles/rle_bwt.dir/rle_bwt.cpp.o /usr/bin/c++ -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/internal -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms/cw-bwt -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -MD -MT CMakeFiles/rle_bwt.dir/rle_bwt.cpp.o -MF CMakeFiles/rle_bwt.dir/rle_bwt.cpp.o.d -o CMakeFiles/rle_bwt.dir/rle_bwt.cpp.o -c /srv/build/vg-1.30.0+ds/deps/DYNAMIC/rle_bwt.cpp cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C -- Found htslib, version 1.16 make -f CMakeFiles/cw-bwt.dir/build.make CMakeFiles/cw-bwt.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' cd /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build/CMakeFiles/cw-bwt.dir/DependInfo.cmake --color= make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' make -f CMakeFiles/cw-bwt.dir/build.make CMakeFiles/cw-bwt.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' -- Checking for module 'jansson' [ 50%] Building CXX object CMakeFiles/cw-bwt.dir/cw-bwt.cpp.o /usr/bin/c++ -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/internal -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms/cw-bwt -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -MD -MT CMakeFiles/cw-bwt.dir/cw-bwt.cpp.o -MF CMakeFiles/cw-bwt.dir/cw-bwt.cpp.o.d -o CMakeFiles/cw-bwt.dir/cw-bwt.cpp.o -c /srv/build/vg-1.30.0+ds/deps/DYNAMIC/cw-bwt.cpp -- Found jansson, version 2.14 -- Configuring done -- Generating done -- Build files have been written to: /srv/build/vg-1.30.0+ds/deps/libvgio make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make -f CMakeFiles/Makefile2 clean make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make -f CMakeFiles/handlegraph.dir/build.make CMakeFiles/handlegraph.dir/clean make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' /usr/bin/cmake -P CMakeFiles/handlegraph.dir/cmake_clean.cmake make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make -f CMakeFiles/link_target.dir/build.make CMakeFiles/link_target.dir/clean make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' /usr/bin/cmake -P CMakeFiles/link_target.dir/cmake_clean.cmake make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make -f CMakeFiles/vgio.dir/build.make CMakeFiles/vgio.dir/clean make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' /usr/bin/cmake -P CMakeFiles/vgio.dir/cmake_clean.cmake make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make -f CMakeFiles/vgio_static.dir/build.make CMakeFiles/vgio_static.dir/clean make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' /usr/bin/cmake -P CMakeFiles/vgio_static.dir/cmake_clean.cmake make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' /usr/bin/cmake -S/srv/build/vg-1.30.0+ds/deps/libvgio -B/srv/build/vg-1.30.0+ds/deps/libvgio --check-build-system CMakeFiles/Makefile.cmake 0 # Make dest directory gcc -Wl,-z,relro -Wl,-z,now -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -Wall -O3 -g src/example.c -o bin/gssw_example obj/gssw.o -lm -lz /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/libvgio/CMakeFiles /srv/build/vg-1.30.0+ds/deps/libvgio//CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make -f CMakeFiles/handlegraph.dir/build.make CMakeFiles/handlegraph.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' cd /srv/build/vg-1.30.0+ds/deps/libvgio && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio/CMakeFiles/handlegraph.dir/DependInfo.cmake --color= make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make -f CMakeFiles/handlegraph.dir/build.make CMakeFiles/handlegraph.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C [ 2%] Creating directories for 'handlegraph' /usr/bin/cmake -Dcfgdir= -P /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/tmp/handlegraph-mkdirs.cmake /usr/bin/cmake -E touch /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-stamp/handlegraph-mkdir [ 4%] No download step for 'handlegraph' /usr/bin/cmake -E echo_append /usr/bin/cmake -E touch /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-stamp/handlegraph-download [ 7%] No update step for 'handlegraph' /usr/bin/cmake -E echo_append /usr/bin/cmake -E touch /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-stamp/handlegraph-update [ 9%] No patch step for 'handlegraph' /usr/bin/cmake -E echo_append make -f CMakeFiles/link_target.dir/build.make CMakeFiles/link_target.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' cd /srv/build/vg-1.30.0+ds/deps/libvgio && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio/CMakeFiles/link_target.dir/DependInfo.cmake --color= cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C /usr/bin/cmake -E touch /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-stamp/handlegraph-patch make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make -f CMakeFiles/link_target.dir/build.make CMakeFiles/link_target.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' /usr/bin/cmake -E create_symlink . vg make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' [ 11%] Performing configure step for 'handlegraph' cd /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build && /usr/bin/cmake -DCMAKE_INSTALL_PREFIX=/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix "-GUnix Makefiles" /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph [ 11%] Built target link_target make -f CMakeFiles/vgio_static.dir/build.make CMakeFiles/vgio_static.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' Re-run cmake no build system arguments CMake Warning (dev) at /usr/share/cmake-3.25/Modules/GNUInstallDirs.cmake:243 (message): Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. Please enable at least one language before including GNUInstallDirs. Call Stack (most recent call first): CMakeLists.txt:5 (include) This warning is for project developers. Use -Wno-dev to suppress it.  [ 14%] Running cpp protocol buffer compiler on deps/vg.proto /usr/bin/protoc --cpp_out /srv/build/vg-1.30.0+ds/deps/libvgio -I /srv/build/vg-1.30.0+ds/deps/libvgio/deps /srv/build/vg-1.30.0+ds/deps/libvgio/deps/vg.proto cd /srv/build/vg-1.30.0+ds/deps/libvgio && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio/CMakeFiles/vgio_static.dir/DependInfo.cmake --color= -- The C compiler identification is GNU 12.2.0 make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make -f CMakeFiles/vgio_static.dir/build.make CMakeFiles/vgio_static.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' [ 16%] Building CXX object CMakeFiles/vgio_static.dir/vg.pb.cc.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libvgio/include -I/srv/build/vg-1.30.0+ds/deps/libvgio -I/srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph/src/include -I/srv/build/vg-1.30.0+ds/deps/libvgio/src -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -fopenmp -fopenmp -std=gnu++14 -MD -MT CMakeFiles/vgio_static.dir/vg.pb.cc.o -MF CMakeFiles/vgio_static.dir/vg.pb.cc.o.d -o CMakeFiles/vgio_static.dir/vg.pb.cc.o -c /srv/build/vg-1.30.0+ds/deps/libvgio/vg.pb.cc cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C gcc -Wl,-z,relro -Wl,-z,now -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -Wall -O3 -g src/example_adj.c -o bin/gssw_example_adj obj/gssw.o -lm -lz [ 0%] Building CXX object lib/CMakeFiles/sdsl.dir/coder_elias_delta.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/coder_elias_delta.cpp.o -MF CMakeFiles/sdsl.dir/coder_elias_delta.cpp.o.d -o CMakeFiles/sdsl.dir/coder_elias_delta.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/coder_elias_delta.cpp -- The CXX compiler identification is GNU 12.2.0 cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C -- Detecting C compiler ABI info [ 14%] Building CXX object lib/CMakeFiles/sdsl.dir/coder_elias_gamma.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/coder_elias_gamma.cpp.o -MF CMakeFiles/sdsl.dir/coder_elias_gamma.cpp.o.d -o CMakeFiles/sdsl.dir/coder_elias_gamma.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/coder_elias_gamma.cpp cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/gcc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info [ 14%] Building CXX object lib/CMakeFiles/sdsl.dir/coder_fibonacci.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/coder_fibonacci.cpp.o -MF CMakeFiles/sdsl.dir/coder_fibonacci.cpp.o.d -o CMakeFiles/sdsl.dir/coder_fibonacci.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/coder_fibonacci.cpp [ 14%] Building CXX object lib/CMakeFiles/sdsl.dir/config.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/config.cpp.o -MF CMakeFiles/sdsl.dir/config.cpp.o.d -o CMakeFiles/sdsl.dir/config.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/config.cpp -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/g++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build cd /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build && /usr/bin/cmake -E touch /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-stamp/handlegraph-configure [ 19%] Performing build step for 'handlegraph' cd /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build && make make[6]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' /usr/bin/cmake -S/srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph -B/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build/CMakeFiles /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build//CMakeFiles/progress.marks configure.ac:15: installing './compile' configure.ac:3: installing './missing' make -f CMakeFiles/Makefile2 all make[7]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' make -f CMakeFiles/handlegraph_objs.dir/build.make CMakeFiles/handlegraph_objs.dir/depend make[8]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' cd /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build/CMakeFiles/handlegraph_objs.dir/DependInfo.cmake --color= gcc -Wl,-z,relro -Wl,-z,now -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -Wall -O3 -g src/gssw_test.c -o bin/gssw_test obj/gssw.o -lm -lz make[8]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' make -f CMakeFiles/handlegraph_objs.dir/build.make CMakeFiles/handlegraph_objs.dir/build make[8]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C [ 33%] Building CXX object CMakeFiles/handlegraph_objs.dir/src/handle.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph/src/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -O3 -g -fPIC -std=gnu++14 -MD -MT CMakeFiles/handlegraph_objs.dir/src/handle.cpp.o -MF CMakeFiles/handlegraph_objs.dir/src/handle.cpp.o.d -o CMakeFiles/handlegraph_objs.dir/src/handle.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph/src/handle.cpp cluster/Makefile.am: installing './depcomp' cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C ar rvs lib/libgssw.a obj/gssw.o ar: creating lib/libgssw.a a - obj/gssw.o [ 14%] Building CXX object lib/CMakeFiles/sdsl.dir/construct_config.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/construct_config.cpp.o -MF CMakeFiles/sdsl.dir/construct_config.cpp.o.d -o CMakeFiles/sdsl.dir/construct_config.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/construct_config.cpp cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C configure.ac:12: warning: The macro `AC_LANG_CPLUSPLUS' is obsolete. configure.ac:12: You should run autoupdate. ./lib/autoconf/c.m4:262: AC_LANG_CPLUSPLUS is expanded from... configure.ac:12: the top level configure.ac:15: warning: The macro `AM_PROG_LIBTOOL' is obsolete. configure.ac:15: You should run autoupdate. acinclude.d/libtool.m4:101: AM_PROG_LIBTOOL is expanded from... configure.ac:15: the top level configure.ac:17: warning: The macro `AC_HEADER_STDC' is obsolete. configure.ac:17: You should run autoupdate. ./lib/autoconf/headers.m4:704: AC_HEADER_STDC is expanded from... configure.ac:17: the top level configure.ac:24: warning: The macro `AC_LANG_C' is obsolete. configure.ac:24: You should run autoupdate. ./lib/autoconf/c.m4:72: AC_LANG_C is expanded from... acinclude.d/ax_check_zlib.m4:63: AX_CHECK_ZLIB is expanded from... configure.ac:24: the top level configure.ac:38: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:38: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... configure.ac:38: the top level configure.ac:44: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:44: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... configure.ac:44: the top level configure.ac:49: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:49: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... configure.ac:49: the top level configure.ac:55: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:55: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... configure.ac:55: the top level configure.ac:61: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:61: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... configure.ac:61: the top level cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/gssw' [ 28%] Building CXX object lib/CMakeFiles/sdsl.dir/construct_isa.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/construct_isa.cpp.o -MF CMakeFiles/sdsl.dir/construct_isa.cpp.o.d -o CMakeFiles/sdsl.dir/construct_isa.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/construct_isa.cpp checking for a BSD-compatible install... install --strip-program=true checking whether build environment is sane... yes make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... [ 28%] Building CXX object lib/CMakeFiles/sdsl.dir/construct_lcp.cpp.o gawk checking whether make sets $(MAKE)... cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/construct_lcp.cpp.o -MF CMakeFiles/sdsl.dir/construct_lcp.cpp.o.d -o CMakeFiles/sdsl.dir/construct_lcp.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/construct_lcp.cpp [ 93%] Built target handlegraph_objs make -f CMakeFiles/handlegraph_shared.dir/build.make CMakeFiles/handlegraph_shared.dir/depend yes make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' cd /srv/build/vg-1.30.0+ds/deps/libhandlegraph && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libhandlegraph/CMakeFiles/handlegraph_shared.dir/DependInfo.cmake --color= checking whether make supports nested variables... In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:24, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/coder_elias_delta.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ yes make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' make -f CMakeFiles/handlegraph_shared.dir/build.make CMakeFiles/handlegraph_shared.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C [ 96%] Linking CXX shared library libhandlegraph.so In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp:24, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/coder_elias_gamma.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /usr/bin/cmake -E cmake_link_script CMakeFiles/handlegraph_shared.dir/link.txt --verbose=1 /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ checking whether the C++ compiler works... /usr/bin/g++ -fPIC -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libhandlegraph.so -o libhandlegraph.so CMakeFiles/handlegraph_objs.dir/src/deletable_handle_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/handle_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/mutable_handle_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/path_handle_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/path_position_handle_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/ranked_handle_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/serializable.cpp.o CMakeFiles/handlegraph_objs.dir/src/snarl_decomposition.cpp.o CMakeFiles/handlegraph_objs.dir/src/trivially_serializable.cpp.o CMakeFiles/handlegraph_objs.dir/src/types.cpp.o CMakeFiles/handlegraph_objs.dir/src/copy_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/append_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/are_equivalent.cpp.o CMakeFiles/handlegraph_objs.dir/src/find_tips.cpp.o CMakeFiles/handlegraph_objs.dir/src/topological_sort.cpp.o CMakeFiles/handlegraph_objs.dir/src/apply_orientations.cpp.o CMakeFiles/handlegraph_objs.dir/src/is_single_stranded.cpp.o CMakeFiles/handlegraph_objs.dir/src/count_walks.cpp.o CMakeFiles/handlegraph_objs.dir/src/eades_algorithm.cpp.o CMakeFiles/handlegraph_objs.dir/src/dagify.cpp.o CMakeFiles/handlegraph_objs.dir/src/strongly_connected_components.cpp.o CMakeFiles/handlegraph_objs.dir/src/find_shortest_paths.cpp.o CMakeFiles/handlegraph_objs.dir/src/dijkstra.cpp.o CMakeFiles/handlegraph_objs.dir/src/is_acyclic.cpp.o CMakeFiles/handlegraph_objs.dir/src/reverse_complement.cpp.o CMakeFiles/handlegraph_objs.dir/src/split_strands.cpp.o CMakeFiles/handlegraph_objs.dir/src/unchop.cpp.o CMakeFiles/handlegraph_objs.dir/src/weakly_connected_components.cpp.o CMakeFiles/handlegraph_objs.dir/src/extend.cpp.o yes checking for C++ compiler default output file name... a.out checking for suffix of executables... In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_fibonacci.hpp:24, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/coder_fibonacci.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ checking whether we are cross compiling... make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' [ 96%] Built target handlegraph_shared make -f CMakeFiles/handlegraph_static.dir/build.make CMakeFiles/handlegraph_static.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' cd /srv/build/vg-1.30.0+ds/deps/libhandlegraph && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libhandlegraph/CMakeFiles/handlegraph_static.dir/DependInfo.cmake --color= make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' make -f CMakeFiles/handlegraph_static.dir/build.make CMakeFiles/handlegraph_static.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:24: In static member function ‘static uint64_t sdsl::bits::read_unary(const uint64_t*, uint8_t)’, inlined from ‘static uint64_t sdsl::bits::read_unary(const uint64_t*, uint8_t)’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:531:17, inlined from ‘sdsl::coder::elias_delta::impl::impl()’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:87:66: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:537:18: warning: array subscript 1 is outside array bounds of ‘uint64_t [1]’ {aka ‘long unsigned int [1]’} []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Warray-bounds-Warray-bounds]8;;] 537 | if (0!=(w=*(++word))) | ~~^~~~~~~~~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp: In constructor ‘sdsl::coder::elias_delta::impl::impl()’: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:82:35: note: at offset 8 into object ‘x’ of size 8 82 | for (uint64_t x=0; x < (1<<8); ++x) { | ^ In static member function ‘static uint64_t sdsl::bits::read_int(const uint64_t*, uint8_t, uint8_t)’, inlined from ‘sdsl::coder::elias_delta::impl::impl()’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:94:53: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:506:18: warning: array subscript 1 is outside array bounds of ‘uint64_t [1]’ {aka ‘long unsigned int [1]’} []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Warray-bounds-Warray-bounds]8;;] 506 | ((*(word+1) & bits::lo_set[(offset+len)&0x3F]) // set higher bits zero | ^~~~~~~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp: In constructor ‘sdsl::coder::elias_delta::impl::impl()’: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:82:35: note: at offset 8 into object ‘x’ of size 8 82 | for (uint64_t x=0; x < (1<<8); ++x) { | ^ In static member function ‘static uint64_t sdsl::bits::read_int(const uint64_t*, uint8_t, uint8_t)’, inlined from ‘sdsl::coder::elias_delta::impl::impl()’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:97:60: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:506:18: warning: array subscript 1 is outside array bounds of ‘uint64_t [1]’ {aka ‘long unsigned int [1]’} []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Warray-bounds-Warray-bounds]8;;] 506 | ((*(word+1) & bits::lo_set[(offset+len)&0x3F]) // set higher bits zero | ^~~~~~~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp: In constructor ‘sdsl::coder::elias_delta::impl::impl()’: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:82:35: note: at offset 8 into object ‘x’ of size 8 82 | for (uint64_t x=0; x < (1<<8); ++x) { | ^ In static member function ‘static uint64_t sdsl::bits::read_unary(const uint64_t*, uint8_t)’, inlined from ‘static uint64_t sdsl::bits::read_unary(const uint64_t*, uint8_t)’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:531:17, inlined from ‘sdsl::coder::elias_delta::impl::impl()’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:56:62: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:537:18: warning: array subscript 1 is outside array bounds of ‘uint64_t [1]’ {aka ‘long unsigned int [1]’} []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Warray-bounds-Warray-bounds]8;;] 537 | if (0!=(w=*(++word))) | ~~^~~~~~~~~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp: In constructor ‘sdsl::coder::elias_delta::impl::impl()’: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:51:31: note: at offset 8 into object ‘x’ of size 8 51 | for (uint64_t x=0; x < (1<<16); ++x) { | ^ In static member function ‘static uint64_t sdsl::bits::read_int(const uint64_t*, uint8_t, uint8_t)’, inlined from ‘sdsl::coder::elias_delta::impl::impl()’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:63:49: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:506:18: warning: array subscript 1 is outside array bounds of ‘uint64_t [1]’ {aka ‘long unsigned int [1]’} []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Warray-bounds-Warray-bounds]8;;] 506 | ((*(word+1) & bits::lo_set[(offset+len)&0x3F]) // set higher bits zero | ^~~~~~~~~ [100%] Linking CXX static library libhandlegraph.a /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp: In constructor ‘sdsl::coder::elias_delta::impl::impl()’: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:51:31: note: at offset 8 into object ‘x’ of size 8 51 | for (uint64_t x=0; x < (1<<16); ++x) { | ^ In static member function ‘static uint64_t sdsl::bits::read_int(const uint64_t*, uint8_t, uint8_t)’, inlined from ‘sdsl::coder::elias_delta::impl::impl()’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:66:56: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:506:18: warning: array subscript 1 is outside array bounds of ‘uint64_t [1]’ {aka ‘long unsigned int [1]’} []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Warray-bounds-Warray-bounds]8;;] 506 | ((*(word+1) & bits::lo_set[(offset+len)&0x3F]) // set higher bits zero | ^~~~~~~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp: In constructor ‘sdsl::coder::elias_delta::impl::impl()’: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_delta.hpp:51:31: note: at offset 8 into object ‘x’ of size 8 51 | for (uint64_t x=0; x < (1<<16); ++x) { | ^ /usr/bin/cmake -P CMakeFiles/handlegraph_static.dir/cmake_clean_target.cmake no checking for suffix of object files... /usr/bin/cmake -E cmake_link_script CMakeFiles/handlegraph_static.dir/link.txt --verbose=1 In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:24: In static member function ‘static uint64_t sdsl::bits::read_unary(const uint64_t*, uint8_t)’, inlined from ‘static uint64_t sdsl::bits::read_unary(const uint64_t*, uint8_t)’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:531:17, inlined from ‘sdsl::coder::elias_gamma::impl::impl()’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp:85:62: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:537:18: warning: array subscript 1 is outside array bounds of ‘uint64_t [1]’ {aka ‘long unsigned int [1]’} []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Warray-bounds-Warray-bounds]8;;] 537 | if (0!=(w=*(++word))) | ~~^~~~~~~~~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp: In constructor ‘sdsl::coder::elias_gamma::impl::impl()’: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp:80:35: note: at offset 8 into object ‘x’ of size 8 80 | for (uint64_t x=0; x < (1<<8); ++x) { | ^ In static member function ‘static uint64_t sdsl::bits::read_int(const uint64_t*, uint8_t, uint8_t)’, inlined from ‘sdsl::coder::elias_gamma::impl::impl()’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp:93:60: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:506:18: warning: array subscript 1 is outside array bounds of ‘uint64_t [1]’ {aka ‘long unsigned int [1]’} []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Warray-bounds-Warray-bounds]8;;] 506 | ((*(word+1) & bits::lo_set[(offset+len)&0x3F]) // set higher bits zero | ^~~~~~~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp: In constructor ‘sdsl::coder::elias_gamma::impl::impl()’: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp:80:35: note: at offset 8 into object ‘x’ of size 8 80 | for (uint64_t x=0; x < (1<<8); ++x) { | ^ In static member function ‘static uint64_t sdsl::bits::read_unary(const uint64_t*, uint8_t)’, inlined from ‘static uint64_t sdsl::bits::read_unary(const uint64_t*, uint8_t)’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:531:17, inlined from ‘sdsl::coder::elias_gamma::impl::impl()’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp:56:58: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:537:18: warning: array subscript 1 is outside array bounds of ‘uint64_t [1]’ {aka ‘long unsigned int [1]’} []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Warray-bounds-Warray-bounds]8;;] 537 | if (0!=(w=*(++word))) | ~~^~~~~~~~~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp: In constructor ‘sdsl::coder::elias_gamma::impl::impl()’: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp:51:31: note: at offset 8 into object ‘x’ of size 8 51 | for (uint64_t x=0; x < (1<<16); ++x) { | ^ In static member function ‘static uint64_t sdsl::bits::read_int(const uint64_t*, uint8_t, uint8_t)’, inlined from ‘sdsl::coder::elias_gamma::impl::impl()’ at /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp:64:56: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/bits.hpp:506:18: warning: array subscript 1 is outside array bounds of ‘uint64_t [1]’ {aka ‘long unsigned int [1]’} []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Warray-bounds-Warray-bounds]8;;] 506 | ((*(word+1) & bits::lo_set[(offset+len)&0x3F]) // set higher bits zero | ^~~~~~~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp: In constructor ‘sdsl::coder::elias_gamma::impl::impl()’: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/coder_elias_gamma.hpp:51:31: note: at offset 8 into object ‘x’ of size 8 51 | for (uint64_t x=0; x < (1<<16); ++x) { | ^ /usr/bin/ar qc libhandlegraph.a CMakeFiles/handlegraph_objs.dir/src/deletable_handle_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/handle_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/mutable_handle_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/path_handle_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/path_position_handle_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/ranked_handle_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/serializable.cpp.o CMakeFiles/handlegraph_objs.dir/src/snarl_decomposition.cpp.o CMakeFiles/handlegraph_objs.dir/src/trivially_serializable.cpp.o CMakeFiles/handlegraph_objs.dir/src/types.cpp.o CMakeFiles/handlegraph_objs.dir/src/copy_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/append_graph.cpp.o CMakeFiles/handlegraph_objs.dir/src/are_equivalent.cpp.o CMakeFiles/handlegraph_objs.dir/src/find_tips.cpp.o CMakeFiles/handlegraph_objs.dir/src/topological_sort.cpp.o CMakeFiles/handlegraph_objs.dir/src/apply_orientations.cpp.o CMakeFiles/handlegraph_objs.dir/src/is_single_stranded.cpp.o CMakeFiles/handlegraph_objs.dir/src/count_walks.cpp.o CMakeFiles/handlegraph_objs.dir/src/eades_algorithm.cpp.o CMakeFiles/handlegraph_objs.dir/src/dagify.cpp.o CMakeFiles/handlegraph_objs.dir/src/strongly_connected_components.cpp.o CMakeFiles/handlegraph_objs.dir/src/find_shortest_paths.cpp.o CMakeFiles/handlegraph_objs.dir/src/dijkstra.cpp.o CMakeFiles/handlegraph_objs.dir/src/is_acyclic.cpp.o CMakeFiles/handlegraph_objs.dir/src/reverse_complement.cpp.o CMakeFiles/handlegraph_objs.dir/src/split_strands.cpp.o CMakeFiles/handlegraph_objs.dir/src/unchop.cpp.o CMakeFiles/handlegraph_objs.dir/src/weakly_connected_components.cpp.o CMakeFiles/handlegraph_objs.dir/src/extend.cpp.o cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C o checking whether the compiler supports GNU C++... yes checking whether g++ accepts -g... /usr/bin/ranlib libhandlegraph.a yes checking for g++ option to enable C++11 features... make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' [100%] Built target handlegraph_static [ 21%] Building CXX object CMakeFiles/vgio_static.dir/src/alignment_emitter.cpp.o make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libvgio/include -I/srv/build/vg-1.30.0+ds/deps/libvgio -I/srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph/src/include -I/srv/build/vg-1.30.0+ds/deps/libvgio/src -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -fopenmp -fopenmp -std=gnu++14 -MD -MT CMakeFiles/vgio_static.dir/src/alignment_emitter.cpp.o -MF CMakeFiles/vgio_static.dir/src/alignment_emitter.cpp.o.d -o CMakeFiles/vgio_static.dir/src/alignment_emitter.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libvgio/src/alignment_emitter.cpp /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/libhandlegraph/CMakeFiles 0 make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libhandlegraph' [ 23%] Building CXX object CMakeFiles/vgio_static.dir/src/alignment_io.cpp.o /usr/bin/g++ -I/srv/build/vg-1.30.0+ds/deps/libvgio/include -I/srv/build/vg-1.30.0+ds/deps/libvgio -I/srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph/src/include -I/srv/build/vg-1.30.0+ds/deps/libvgio/src -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -fopenmp -fopenmp -std=gnu++14 -MD -MT CMakeFiles/vgio_static.dir/src/alignment_io.cpp.o -MF CMakeFiles/vgio_static.dir/src/alignment_io.cpp.o.d -o CMakeFiles/vgio_static.dir/src/alignment_io.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libvgio/src/alignment_io.cpp none needed checking whether make supports the include directive... yes (GNU style) checking dependency style of g++... impl/sonLibTreap.c: In function ‘stTreap_remove’: impl/sonLibTreap.c:331:18: warning: pointer ‘node’ used after ‘free’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 331 | stTreap *p = rmnode->parent; | ^ impl/sonLibTreap.c:329:9: note: call to ‘free’ here 329 | free(rmnode); | ^~~~~~~~~~~~ make[8]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' gcc3 checking how to run the C++ preprocessor... [ 28%] Building CXX object lib/CMakeFiles/sdsl.dir/construct_lcp_helper.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/construct_lcp_helper.cpp.o -MF CMakeFiles/sdsl.dir/construct_lcp_helper.cpp.o.d -o CMakeFiles/sdsl.dir/construct_lcp_helper.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/construct_lcp_helper.cpp [ 33%] Built target handlegraph_objs make -f CMakeFiles/handlegraph_shared.dir/build.make CMakeFiles/handlegraph_shared.dir/depend make[8]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' cd /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build/CMakeFiles/handlegraph_shared.dir/DependInfo.cmake --color= make[8]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' make -f CMakeFiles/handlegraph_shared.dir/build.make CMakeFiles/handlegraph_shared.dir/build make[8]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' [ 66%] Linking CXX shared library libhandlegraph.so /usr/bin/cmake -E cmake_link_script CMakeFiles/handlegraph_shared.dir/link.txt --verbose=1 g++ -E /usr/bin/g++ -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -O3 -g -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libhandlegraph.so -o libhandlegraph.so CMakeFiles/handlegraph_objs.dir/src/handle.cpp.o cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C make -f CMakeFiles/handlegraph_static.dir/build.make CMakeFiles/handlegraph_static.dir/depend make[8]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' cd /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build/CMakeFiles/handlegraph_static.dir/DependInfo.cmake --color= make[8]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' make -f CMakeFiles/handlegraph_static.dir/build.make CMakeFiles/handlegraph_static.dir/build checking build system type... [ 28%] Building CXX object lib/CMakeFiles/sdsl.dir/construct_sa.cpp.o make[8]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/construct_sa.cpp.o -MF CMakeFiles/sdsl.dir/construct_sa.cpp.o.d -o CMakeFiles/sdsl.dir/construct_sa.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/construct_sa.cpp make[8]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' [100%] Linking CXX static library libhandlegraph.a /usr/bin/cmake -P CMakeFiles/handlegraph_static.dir/cmake_clean_target.cmake [100%] Built target handlegraph_shared /usr/bin/cmake -E cmake_link_script CMakeFiles/handlegraph_static.dir/link.txt --verbose=1 [ 42%] Building CXX object lib/CMakeFiles/sdsl.dir/construct_sa_se.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/construct_sa_se.cpp.o -MF CMakeFiles/sdsl.dir/construct_sa_se.cpp.o.d -o CMakeFiles/sdsl.dir/construct_sa_se.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/construct_sa_se.cpp /usr/bin/ar qc libhandlegraph.a CMakeFiles/handlegraph_objs.dir/src/handle.cpp.o aarch64-unknown-linux-gnu checking host system type... aarch64-unknown-linux-gnu checking how to print strings... printf checking for gcc... gcc /usr/bin/ranlib libhandlegraph.a make[8]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' [100%] Built target handlegraph_static make[7]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build/CMakeFiles 0 checking whether the compiler supports GNU C... make[6]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' cd /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build && /usr/bin/cmake -E touch /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-stamp/handlegraph-build yes checking whether gcc accepts -g... [ 26%] Performing install step for 'handlegraph' cd /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build && make install make[6]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' /usr/bin/cmake -S/srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph -B/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build/CMakeFiles /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build//CMakeFiles/progress.marks yes checking for gcc option to enable C11 features... make -f CMakeFiles/Makefile2 all make[7]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' make -f CMakeFiles/handlegraph_objs.dir/build.make CMakeFiles/handlegraph_objs.dir/depend make[8]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' cd /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build/CMakeFiles/handlegraph_objs.dir/DependInfo.cmake --color= Dependencies file "CMakeFiles/handlegraph_objs.dir/src/handle.cpp.o.d" is newer than depends file "/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build/CMakeFiles/handlegraph_objs.dir/compiler_depend.internal". Consolidate compiler generated dependencies of target handlegraph_objs make[8]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' make -f CMakeFiles/handlegraph_objs.dir/build.make CMakeFiles/handlegraph_objs.dir/build make[8]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' make[8]: Nothing to be done for 'CMakeFiles/handlegraph_objs.dir/build'. make[8]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' [ 33%] Built target handlegraph_objs make -f CMakeFiles/handlegraph_shared.dir/build.make CMakeFiles/handlegraph_shared.dir/depend make[8]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' cd /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build/CMakeFiles/handlegraph_shared.dir/DependInfo.cmake --color= none needed checking whether gcc understands -c and -o together... make[8]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' make -f CMakeFiles/handlegraph_shared.dir/build.make CMakeFiles/handlegraph_shared.dir/build make[8]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' make[8]: Nothing to be done for 'CMakeFiles/handlegraph_shared.dir/build'. make[8]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' [ 66%] Built target handlegraph_shared make -f CMakeFiles/handlegraph_static.dir/build.make CMakeFiles/handlegraph_static.dir/depend make[8]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' cd /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build/CMakeFiles/handlegraph_static.dir/DependInfo.cmake --color= make[8]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' make -f CMakeFiles/handlegraph_static.dir/build.make CMakeFiles/handlegraph_static.dir/build make[8]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' make[8]: Nothing to be done for 'CMakeFiles/handlegraph_static.dir/build'. make[8]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' yes checking dependency style of gcc... [100%] Built target handlegraph_static make[7]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build/CMakeFiles 0 In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/construct_isa.hpp:24, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/construct_isa.cpp:4: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C make -f CMakeFiles/Makefile2 preinstall make[7]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' make[7]: Nothing to be done for 'preinstall'. make[7]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' Install the project... /usr/bin/cmake -P cmake_install.cmake gcc3 checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... -- Install configuration: "" -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/lib/libhandlegraph.so -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/lib/libhandlegraph.a -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph /usr/bin/grep checking for egrep... -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/expanding_overlay_graph.hpp -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/util.hpp -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/mutable_handle_graph.hpp -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/mutable_path_handle_graph.hpp -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/serializable_handle_graph.hpp -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/mutable_path_mutable_handle_graph.hpp -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/path_position_handle_graph.hpp -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/handle_graph.hpp -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/iteratee.hpp -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/mutable_path_deletable_handle_graph.hpp -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/path_handle_graph.hpp -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/types.hpp -- Installing: /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/include/handlegraph/deletable_handle_graph.hpp /usr/bin/grep -E checking for fgrep... make[6]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build' cd /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-build && /usr/bin/cmake -E touch /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-stamp/handlegraph-install /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... [ 28%] Completed 'handlegraph' /usr/bin/cmake -E make_directory /srv/build/vg-1.30.0+ds/deps/libvgio/CMakeFiles /usr/bin/cmake -E touch /srv/build/vg-1.30.0+ds/deps/libvgio/CMakeFiles/handlegraph-complete BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 /usr/bin/cmake -E touch /srv/build/vg-1.30.0+ds/deps/libvgio/handlegraph-prefix/src/handlegraph-stamp/handlegraph-done checking how to convert aarch64-unknown-linux-gnu file names to aarch64-unknown-linux-gnu format... func_convert_file_noop checking how to convert aarch64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/construct_lcp.hpp:26, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/construct_lcp.cpp:6: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' [ 28%] Built target handlegraph make -f CMakeFiles/vgio.dir/build.make CMakeFiles/vgio.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' cd /srv/build/vg-1.30.0+ds/deps/libvgio && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio /srv/build/vg-1.30.0+ds/deps/libvgio/CMakeFiles/vgio.dir/DependInfo.cmake --color= @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make -f CMakeFiles/vgio.dir/build.make CMakeFiles/vgio.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/libvgio' [ 30%] Building CXX object CMakeFiles/vgio.dir/vg.pb.cc.o /usr/bin/g++ -Dvgio_EXPORTS -I/srv/build/vg-1.30.0+ds/deps/libvgio/include -I/srv/build/vg-1.30.0+ds/deps/libvgio -I/srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph/src/include -I/srv/build/vg-1.30.0+ds/deps/libvgio/src -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -fopenmp -fopenmp -fPIC -std=gnu++14 -MD -MT CMakeFiles/vgio.dir/vg.pb.cc.o -MF CMakeFiles/vgio.dir/vg.pb.cc.o.d -o CMakeFiles/vgio.dir/vg.pb.cc.o -c /srv/build/vg-1.30.0+ds/deps/libvgio/vg.pb.cc cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C no checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/construct_lcp_helper.hpp:4, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/construct_lcp_helper.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ yes checking for sys/stat.h... yes checking for sys/types.h... In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/construct_sa.hpp:26, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/construct_sa.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/construct_sa_se.hpp:5, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/construct_sa_se.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... In file included from /srv/build/vg-1.30.0+ds/deps/libvgio/include/vg/io/stream.hpp:17, from /srv/build/vg-1.30.0+ds/deps/libvgio/src/alignment_emitter.cpp:11: /srv/build/vg-1.30.0+ds/deps/libvgio/include/vg/io/protobuf_iterator.hpp: In static member function ‘static bool vg::io::ProtobufIterator::parse_from_string(T&, const std::string&)’: /srv/build/vg-1.30.0+ds/deps/libvgio/include/vg/io/protobuf_iterator.hpp:274:36: error: no matching function for call to ‘google::protobuf::io::CodedInputStream::SetTotalBytesLimit(long unsigned int, long unsigned int)’ 274 | coded_stream.SetTotalBytesLimit(MessageIterator::MAX_MESSAGE_SIZE * 2, MessageIterator::MAX_MESSAGE_SIZE * 2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /srv/build/vg-1.30.0+ds/deps/libvgio/vg/vg.pb.h:23, from /srv/build/vg-1.30.0+ds/deps/libvgio/include/vg/io/alignment_emitter.hpp:19, from /srv/build/vg-1.30.0+ds/deps/libvgio/src/alignment_emitter.cpp:7: /usr/include/google/protobuf/io/coded_stream.h:384:8: note: candidate: ‘void google::protobuf::io::CodedInputStream::SetTotalBytesLimit(int)’ 384 | void SetTotalBytesLimit(int total_bytes_limit); | ^~~~~~~~~~~~~~~~~~ /usr/include/google/protobuf/io/coded_stream.h:384:8: note:  candidate expects 1 argument, 2 provided yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking how to run the C++ preprocessor... g++ -E [ 57%] Linking CXX executable rle_lz77_v2 /usr/bin/cmake -E cmake_link_script CMakeFiles/rle_lz77_v2.dir/link.txt --verbose=1 /usr/bin/c++ -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -Wl,-z,relro -Wl,-z,now -rdynamic CMakeFiles/rle_lz77_v2.dir/rle_lz77_v2.cpp.o -o rle_lz77_v2 make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' checking for ld used by g++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... [ 57%] Built target rle_lz77_v2 make -f CMakeFiles/benchmark.dir/build.make CMakeFiles/benchmark.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' cd /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build/CMakeFiles/benchmark.dir/DependInfo.cmake --color= yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' make -f CMakeFiles/benchmark.dir/build.make CMakeFiles/benchmark.dir/build make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' [ 64%] Building CXX object CMakeFiles/benchmark.dir/benchmark.cpp.o /usr/bin/c++ -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/internal -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms -I/srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/algorithms/cw-bwt -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -MD -MT CMakeFiles/benchmark.dir/benchmark.cpp.o -MF CMakeFiles/benchmark.dir/benchmark.cpp.o.d -o CMakeFiles/benchmark.dir/benchmark.cpp.o -c /srv/build/vg-1.30.0+ds/deps/DYNAMIC/benchmark.cpp cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C make[5]: *** [CMakeFiles/vgio_static.dir/build.make:101: CMakeFiles/vgio_static.dir/src/alignment_emitter.cpp.o] Error 1 make[5]: *** Waiting for unfinished jobs.... [ 33%] Building CXX object CMakeFiles/vgio.dir/src/alignment_emitter.cpp.o /usr/bin/g++ -Dvgio_EXPORTS -I/srv/build/vg-1.30.0+ds/deps/libvgio/include -I/srv/build/vg-1.30.0+ds/deps/libvgio -I/srv/build/vg-1.30.0+ds/deps/libvgio/deps/libhandlegraph/src/include -I/srv/build/vg-1.30.0+ds/deps/libvgio/src -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -fopenmp -fopenmp -fPIC -std=gnu++14 -MD -MT CMakeFiles/vgio.dir/src/alignment_emitter.cpp.o -MF CMakeFiles/vgio.dir/src/alignment_emitter.cpp.o.d -o CMakeFiles/vgio.dir/src/alignment_emitter.cpp.o -c /srv/build/vg-1.30.0+ds/deps/libvgio/src/alignment_emitter.cpp checking for g++ option to produce PIC... -fPIC -DPIC checking if g++ PIC flag -fPIC -DPIC works... yes checking if g++ static flag -static works... cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C yes checking if g++ supports -c -o file.o... [ 42%] Building CXX object lib/CMakeFiles/sdsl.dir/csa_alphabet_strategy.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/csa_alphabet_strategy.cpp.o -MF CMakeFiles/sdsl.dir/csa_alphabet_strategy.cpp.o.d -o CMakeFiles/sdsl.dir/csa_alphabet_strategy.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/csa_alphabet_strategy.cpp yes checking if g++ supports -c -o file.o... (cached) yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... (cached) cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether g++ supports C++11 features by default... yes checking for egrep... (cached) /usr/bin/grep -E checking for boostlib >= 1.0 (100000)... yes checking whether the Boost::Program_Options library is available... cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C [ 71%] Linking CXX executable rle_lz77_v1 /usr/bin/cmake -E cmake_link_script CMakeFiles/rle_lz77_v1.dir/link.txt --verbose=1 /usr/bin/c++ -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -Wl,-z,relro -Wl,-z,now -rdynamic CMakeFiles/rle_lz77_v1.dir/rle_lz77_v1.cpp.o -o rle_lz77_v1 g++ -std=gnu++98 -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -Wall -funroll-loops -DNDEBUG -I /srv/build/vg-1.30.0+ds/include -I/srv/build/vg-1.30.0+ds/include/dynamic -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -Wl,-z,relro -Wl,-z,now -I inc -I ../lib/ -c impl/*.cpp make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' ar rc sonLib.a *.o ../externalTools/quicktree_1.1/obj/buildtree.o ../externalTools/quicktree_1.1/obj/cluster.o ../externalTools/quicktree_1.1/obj/distancemat.o ../externalTools/quicktree_1.1/obj/options.o ../externalTools/quicktree_1.1/obj/sequence.o ../externalTools/quicktree_1.1/obj/tree.o ../externalTools/quicktree_1.1/obj/util.o [ 71%] Built target rle_lz77_v1 [ 42%] Building CXX object lib/CMakeFiles/sdsl.dir/io.cpp.o ranlib sonLib.a cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/io.cpp.o -MF CMakeFiles/sdsl.dir/io.cpp.o.d -o CMakeFiles/sdsl.dir/io.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/io.cpp rm *.o mv sonLib.a ../lib/ gcc -std=c99 -Wl,-z,relro -Wl,-z,now -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -I../externalTools/quicktree_1.1/include/ -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I inc -I ../lib -o ../bin/sonLibTests.tmp tests/allTests.c tests/sonLib*.c tests/st* ../lib/sonLib.a ../lib/cuTest.a -lz -lm -lm -lstdc++ -lpthread -llz4 yes [ 42%] Building CXX object lib/CMakeFiles/sdsl.dir/lcp_support_tree.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/lcp_support_tree.cpp.o -MF CMakeFiles/sdsl.dir/lcp_support_tree.cpp.o.d -o CMakeFiles/sdsl.dir/lcp_support_tree.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/lcp_support_tree.cpp checking for exit in -lboost_program_options... yes checking if zlib is wanted... yes checking for pthread_join in LIBS=-lpthread with CFLAGS=... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking if more special flags are required for pthreads... no checking for PTHREAD_PRIO_INHERIT... yes checking that generated files are newer than configure... done configure: creating ./config.status [ 57%] Building CXX object lib/CMakeFiles/sdsl.dir/louds_tree.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/louds_tree.cpp.o -MF CMakeFiles/sdsl.dir/louds_tree.cpp.o.d -o CMakeFiles/sdsl.dir/louds_tree.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/louds_tree.cpp In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/csa_alphabet_strategy.hpp:50, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/csa_alphabet_strategy.cpp:17: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ In file included from /srv/build/vg-1.30.0+ds/deps/libvgio/include/vg/io/stream.hpp:17, from /srv/build/vg-1.30.0+ds/deps/libvgio/src/alignment_emitter.cpp:11: /srv/build/vg-1.30.0+ds/deps/libvgio/include/vg/io/protobuf_iterator.hpp: In static member function ‘static bool vg::io::ProtobufIterator::parse_from_string(T&, const std::string&)’: /srv/build/vg-1.30.0+ds/deps/libvgio/include/vg/io/protobuf_iterator.hpp:274:36: error: no matching function for call to ‘google::protobuf::io::CodedInputStream::SetTotalBytesLimit(long unsigned int, long unsigned int)’ 274 | coded_stream.SetTotalBytesLimit(MessageIterator::MAX_MESSAGE_SIZE * 2, MessageIterator::MAX_MESSAGE_SIZE * 2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /srv/build/vg-1.30.0+ds/deps/libvgio/vg/vg.pb.h:23, from /srv/build/vg-1.30.0+ds/deps/libvgio/include/vg/io/alignment_emitter.hpp:19, from /srv/build/vg-1.30.0+ds/deps/libvgio/src/alignment_emitter.cpp:7: /usr/include/google/protobuf/io/coded_stream.h:384:8: note: candidate: ‘void google::protobuf::io::CodedInputStream::SetTotalBytesLimit(int)’ 384 | void SetTotalBytesLimit(int total_bytes_limit); | ^~~~~~~~~~~~~~~~~~ /usr/include/google/protobuf/io/coded_stream.h:384:8: note:  candidate expects 1 argument, 2 provided In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/lcp.hpp:26, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/lcp_support_tree.hpp:4, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/lcp_support_tree.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ [ 78%] Linking CXX executable h0_lz77 /usr/bin/cmake -E cmake_link_script CMakeFiles/h0_lz77.dir/link.txt --verbose=1 /usr/bin/c++ -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -Wl,-z,relro -Wl,-z,now -rdynamic CMakeFiles/h0_lz77.dir/h0_lz77.cpp.o -o h0_lz77 make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' [ 78%] Built target h0_lz77 [ 57%] Building CXX object lib/CMakeFiles/sdsl.dir/memory_management.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/memory_management.cpp.o -MF CMakeFiles/sdsl.dir/memory_management.cpp.o.d -o CMakeFiles/sdsl.dir/memory_management.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/memory_management.cpp In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/louds_tree.hpp:11, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/louds_tree.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ make[5]: *** [CMakeFiles/vgio.dir/build.make:101: CMakeFiles/vgio.dir/src/alignment_emitter.cpp.o] Error 1 make[5]: *** Waiting for unfinished jobs.... [ 57%] Building CXX object lib/CMakeFiles/sdsl.dir/nn_dict_dynamic.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/nn_dict_dynamic.cpp.o -MF CMakeFiles/sdsl.dir/nn_dict_dynamic.cpp.o.d -o CMakeFiles/sdsl.dir/nn_dict_dynamic.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/nn_dict_dynamic.cpp config.status: creating Makefile config.status: creating vowpalwabbit/Makefile config.status: creating cluster/Makefile config.status: creating library/Makefile [ 85%] Linking CXX executable cw-bwt /usr/bin/cmake -E cmake_link_script CMakeFiles/cw-bwt.dir/link.txt --verbose=1 gcc -std=c99 -Wl,-z,relro -Wl,-z,now -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -I../externalTools/quicktree_1.1/include/ -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I inc -I ../lib -I tests -o ../bin/sonLib_kvDatabaseTest.tmp tests/kvDatabaseTest.c tests/kvDatabaseTestCommon.c ../lib/sonLib.a ../lib/cuTest.a -lz -lm -lm /usr/bin/c++ -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -Wl,-z,relro -Wl,-z,now -rdynamic "CMakeFiles/cw-bwt.dir/cw-bwt.cpp.o" -o cw-bwt config.status: creating libvw.pc config.status: creating vowpalwabbit/config.h config.status: executing depfiles commands make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' [ 85%] Built target cw-bwt gcc -std=c99 -Wl,-z,relro -Wl,-z,now -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -I../externalTools/quicktree_1.1/include/ -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I inc -I ../lib -o ../bin/sonLib_cigarTest.tmp tests/cigarsTest.c ../lib/sonLib.a -lm [ 57%] Building CXX object lib/CMakeFiles/sdsl.dir/ram_filebuf.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/ram_filebuf.cpp.o -MF CMakeFiles/sdsl.dir/ram_filebuf.cpp.o.d -o CMakeFiles/sdsl.dir/ram_filebuf.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/ram_filebuf.cpp mv ../bin/sonLib_cigarTest.tmp ../bin/sonLib_cigarTest gcc -std=c99 -Wl,-z,relro -Wl,-z,now -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -I../externalTools/quicktree_1.1/include/ -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I inc -I ../lib -o ../bin/sonLib_fastaCTest.tmp tests/fastaCTest.c ../lib/sonLib.a -lm mv ../bin/sonLib_fastaCTest.tmp ../bin/sonLib_fastaCTest [ 71%] Building CXX object lib/CMakeFiles/sdsl.dir/ram_fs.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/ram_fs.cpp.o -MF CMakeFiles/sdsl.dir/ram_fs.cpp.o.d -o CMakeFiles/sdsl.dir/ram_fs.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/ram_fs.cpp [ 92%] Linking CXX executable rle_bwt /usr/bin/cmake -E cmake_link_script CMakeFiles/rle_bwt.dir/link.txt --verbose=1 /usr/bin/c++ -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -Wl,-z,relro -Wl,-z,now -rdynamic CMakeFiles/rle_bwt.dir/rle_bwt.cpp.o -o rle_bwt mv ../bin/sonLib_kvDatabaseTest.tmp ../bin/sonLib_kvDatabaseTest [ 71%] Building CXX object lib/CMakeFiles/sdsl.dir/rrr_vector_15.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/rrr_vector_15.cpp.o -MF CMakeFiles/sdsl.dir/rrr_vector_15.cpp.o.d -o CMakeFiles/sdsl.dir/rrr_vector_15.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/rrr_vector_15.cpp make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' [ 92%] Built target rle_bwt [ 71%] Building CXX object lib/CMakeFiles/sdsl.dir/sd_vector.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/sd_vector.cpp.o -MF CMakeFiles/sdsl.dir/sd_vector.cpp.o.d -o CMakeFiles/sdsl.dir/sd_vector.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/sd_vector.cpp config.status: executing libtool commands . ./source_me.sh && cd deps/vowpal_wabbit && CXXFLAGS="-O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 " LDFLAGS="-L/srv/build/vg-1.30.0+ds/lib" ./configure --with-boost=no --with-boost-program-options=boost_program_options"" In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/nn_dict_dynamic.hpp:25, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/nn_dict_dynamic.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ [ 71%] Building CXX object lib/CMakeFiles/sdsl.dir/sfstream.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/sfstream.cpp.o -MF CMakeFiles/sdsl.dir/sfstream.cpp.o.d -o CMakeFiles/sdsl.dir/sfstream.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/sfstream.cpp checking for a BSD-compatible install... install --strip-program=true checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... [ 85%] Building CXX object lib/CMakeFiles/sdsl.dir/structure_tree.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/structure_tree.cpp.o -MF CMakeFiles/sdsl.dir/structure_tree.cpp.o.d -o CMakeFiles/sdsl.dir/structure_tree.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/structure_tree.cpp checking whether we are cross compiling... [ 85%] Building CXX object lib/CMakeFiles/sdsl.dir/uint128_t.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/uint128_t.cpp.o -MF CMakeFiles/sdsl.dir/uint128_t.cpp.o.d -o CMakeFiles/sdsl.dir/uint128_t.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/uint128_t.cpp no checking for suffix of object files... o checking whether the compiler supports GNU C++... yes checking whether g++ accepts -g... yes checking for g++ option to enable C++11 features... none needed checking whether make supports the include directive... yes (GNU style) checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/rrr_vector_15.hpp:25, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/rrr_vector_15.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ [ 85%] Building CXX object lib/CMakeFiles/sdsl.dir/uint256_t.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/uint256_t.cpp.o -MF CMakeFiles/sdsl.dir/uint256_t.cpp.o.d -o CMakeFiles/sdsl.dir/uint256_t.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/uint256_t.cpp checking build system type... [ 85%] Building CXX object lib/CMakeFiles/sdsl.dir/util.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/util.cpp.o -MF CMakeFiles/sdsl.dir/util.cpp.o.d -o CMakeFiles/sdsl.dir/util.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/util.cpp In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/sd_vector.hpp:26, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/sd_vector.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ aarch64-unknown-linux-gnu checking host system type... aarch64-unknown-linux-gnu checking how to print strings... printf checking for gcc... gcc checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... [100%] Building CXX object lib/CMakeFiles/sdsl.dir/wt_helper.cpp.o cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/g++ -DMODE_TI -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include -I/srv/build/vg-1.30.0+ds/deps/sdsl-lite/include -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp -std=c++11 -Wall -Wextra -DNDEBUG -O3 -DNDEBUG -MD -MT lib/CMakeFiles/sdsl.dir/wt_helper.cpp.o -MF CMakeFiles/sdsl.dir/wt_helper.cpp.o.d -o CMakeFiles/sdsl.dir/wt_helper.cpp.o -c /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/wt_helper.cpp none needed checking whether gcc understands -c and -o together... yes checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert aarch64-unknown-linux-gnu file names to aarch64-unknown-linux-gnu format... func_convert_file_noop checking how to convert aarch64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for stdio.h... yes checking for stdlib.h... make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make[4]: *** [CMakeFiles/Makefile2:171: CMakeFiles/vgio_static.dir/all] Error 2 make[4]: *** Waiting for unfinished jobs.... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... mv ../bin/sonLibTests.tmp ../bin/sonLibTests make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sonLib/C' cp sonLib_daemonize.py ./bin/sonLib_daemonize.py chmod +x ./bin/sonLib_daemonize.py make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sonLib' . ./source_me.sh && cd ./deps/pinchesAndCacti && make && cd /srv/build/vg-1.30.0+ds/./deps/sonLib && cp lib/stPinchesAndCacti.a /srv/build/vg-1.30.0+ds/lib/libpinchesandcacti.a && cp lib/3EdgeConnected.a /srv/build/vg-1.30.0+ds/lib/lib3edgeconnected.a && mkdir -p /srv/build/vg-1.30.0+ds/include/sonLib && cp lib/*.h /srv/build/vg-1.30.0+ds/include/sonLib make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/pinchesAndCacti' cd externalTools && make all make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/pinchesAndCacti/externalTools' cd threeEdgeConnected && make all make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/pinchesAndCacti/externalTools/threeEdgeConnected' gcc -std=c99 -Wdate-time -D_FORTIFY_SOURCE=2 -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -I ../..//../sonLib/lib/ -c impl/*.c yes checking for sys/types.h... yes checking for unistd.h... yes checking for dlfcn.h... ar rc 3EdgeConnected.a *.o ranlib 3EdgeConnected.a rm *.o In file included from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/wt_helper.hpp:4, from /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib/wt_helper.cpp:1: /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1402:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1402 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1410:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1410 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1418:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1418 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1426:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1426 | inline auto | ^~~~ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1434:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1434 | inline auto | ^~~~ mv 3EdgeConnected.a ../..//../sonLib/lib/ /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/../include/sdsl/int_vector.hpp:1442:8: warning: type qualifiers ignored on function return type []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers-Wignored-qualifiers]8;;] 1442 | inline auto | ^~~~ cp inc/*.h ../..//../sonLib/lib/ gcc -std=c99 -Wl,-z,relro -Wl,-z,now -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I inc -I../..//../sonLib/lib -o ../..//../sonLib/bin/3EdgeTests tests/*.c ../..//../sonLib/lib/3EdgeConnected.a ../..//../sonLib/lib/sonLib.a ../..//../sonLib/lib/cuTest.a -lz -lm yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/pinchesAndCacti/externalTools/threeEdgeConnected' make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/pinchesAndCacti/externalTools' gcc -std=c99 -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I inc -I .//../sonLib/lib/ -c impl/*.c gcc -std=c99 -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -I /srv/build/vg-1.30.0+ds/include -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -Wl,-z,relro -Wl,-z,now -I inc -I impl -I.//../sonLib/lib -o .//../sonLib/bin/stPinchesAndCactiTests tests/*.c impl/*.c .//../sonLib/lib/sonLib.a .//../sonLib/lib/cuTest.a -lz -lm .//../sonLib/lib/3EdgeConnected.a yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking how to run the C++ preprocessor... g++ -E checking for ld used by g++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... [100%] Linking CXX executable benchmark yes /usr/bin/cmake -E cmake_link_script CMakeFiles/benchmark.dir/link.txt --verbose=1 checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes /usr/bin/c++ -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fopenmp --std=c++11 -g -g3 -ggdb -Wl,-z,relro -Wl,-z,now -rdynamic CMakeFiles/benchmark.dir/benchmark.cpp.o -o benchmark make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' [100%] Built target benchmark make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/DYNAMIC/build/CMakeFiles 0 checking for g++ option to produce PIC... -fPIC -DPIC checking if g++ PIC flag -fPIC -DPIC works... make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/DYNAMIC/build' # Do the copy of the main file last so we can tell if this recipe failed and redo it. # Otherwise we get dynamic.hpp without its deps mkdir -p include/dynamic && cp -r /srv/build/vg-1.30.0+ds/deps/DYNAMIC/include/* include/dynamic yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking if g++ supports -c -o file.o... (cached) yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... (cached) GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether g++ supports C++11 features by default... yes checking for egrep... (cached) /usr/bin/grep -E checking whether the Boost::Program_Options library is available... ar rc stPinchesAndCacti.a *.o ranlib stPinchesAndCacti.a rm *.o mv stPinchesAndCacti.a .//../sonLib/lib/ cp inc/*.h .//../sonLib/lib/ yes checking for main in -lboost_program_options... yes checking if zlib is wanted... yes checking for pthread_join in LIBS=-lpthread with CFLAGS=... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking if more special flags are required for pthreads... no checking for PTHREAD_PRIO_INHERIT... make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make[4]: *** [CMakeFiles/Makefile2:145: CMakeFiles/vgio.dir/all] Error 2 make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make[3]: *** [Makefile:139: all] Error 2 make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/libvgio' make[2]: *** [Makefile:433: lib/libvgio.a] Error 2 make[2]: *** Waiting for unfinished jobs.... yes checking that generated files are newer than configure... done configure: creating ./config.status [100%] Linking CXX static library libsdsl.a cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/cmake -P CMakeFiles/sdsl.dir/cmake_clean_target.cmake cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib && /usr/bin/cmake -E cmake_link_script CMakeFiles/sdsl.dir/link.txt --verbose=1 /usr/bin/ar qc libsdsl.a CMakeFiles/sdsl.dir/bits.cpp.o CMakeFiles/sdsl.dir/bp_support_algorithm.cpp.o CMakeFiles/sdsl.dir/coder_elias_delta.cpp.o CMakeFiles/sdsl.dir/coder_elias_gamma.cpp.o CMakeFiles/sdsl.dir/coder_fibonacci.cpp.o CMakeFiles/sdsl.dir/config.cpp.o CMakeFiles/sdsl.dir/construct_config.cpp.o CMakeFiles/sdsl.dir/construct_isa.cpp.o CMakeFiles/sdsl.dir/construct_lcp.cpp.o CMakeFiles/sdsl.dir/construct_lcp_helper.cpp.o CMakeFiles/sdsl.dir/construct_sa.cpp.o CMakeFiles/sdsl.dir/construct_sa_se.cpp.o CMakeFiles/sdsl.dir/csa_alphabet_strategy.cpp.o CMakeFiles/sdsl.dir/io.cpp.o CMakeFiles/sdsl.dir/lcp_support_tree.cpp.o CMakeFiles/sdsl.dir/louds_tree.cpp.o CMakeFiles/sdsl.dir/memory_management.cpp.o CMakeFiles/sdsl.dir/nn_dict_dynamic.cpp.o CMakeFiles/sdsl.dir/ram_filebuf.cpp.o CMakeFiles/sdsl.dir/ram_fs.cpp.o CMakeFiles/sdsl.dir/rrr_vector_15.cpp.o CMakeFiles/sdsl.dir/sd_vector.cpp.o CMakeFiles/sdsl.dir/sfstream.cpp.o CMakeFiles/sdsl.dir/structure_tree.cpp.o CMakeFiles/sdsl.dir/uint128_t.cpp.o CMakeFiles/sdsl.dir/uint256_t.cpp.o CMakeFiles/sdsl.dir/util.cpp.o CMakeFiles/sdsl.dir/wt_helper.cpp.o /usr/bin/ranlib libsdsl.a make[6]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' [100%] Built target sdsl make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/CMakeFiles 0 make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' Removing old files rm -rf '/srv/build/vg-1.30.0+ds/include/sdsl/*' rm -f '/srv/build/vg-1.30.0+ds/lib/libsdsl*' make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' /usr/bin/cmake -S/srv/build/vg-1.30.0+ds/deps/sdsl-lite -B/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build --check-build-system CMakeFiles/Makefile.cmake 0 config.status: creating Makefile /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/CMakeFiles /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build//CMakeFiles/progress.marks config.status: creating vowpalwabbit/Makefile make -f CMakeFiles/Makefile2 all make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' make -f lib/CMakeFiles/sdsl.dir/build.make lib/CMakeFiles/sdsl.dir/depend make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' cd /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /srv/build/vg-1.30.0+ds/deps/sdsl-lite /srv/build/vg-1.30.0+ds/deps/sdsl-lite/lib /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/lib/CMakeFiles/sdsl.dir/DependInfo.cmake --color= config.status: creating cluster/Makefile config.status: creating library/Makefile make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' make -f lib/CMakeFiles/sdsl.dir/build.make lib/CMakeFiles/sdsl.dir/build config.status: creating libvw.pc make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' make[5]: Nothing to be done for 'lib/CMakeFiles/sdsl.dir/build'. make[5]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' [100%] Built target sdsl make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' config.status: creating vowpalwabbit/config.h /usr/bin/cmake -E cmake_progress_start /srv/build/vg-1.30.0+ds/deps/sdsl-lite/build/CMakeFiles 0 make -f CMakeFiles/Makefile2 preinstall config.status: executing depfiles commands make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' make[4]: Nothing to be done for 'preinstall'. make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' Install the project... /usr/bin/cmake -P cmake_install.cmake -- Install configuration: "Release" -- Installing: /srv/build/vg-1.30.0+ds/lib/pkgconfig/sdsl-lite.pc -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/bit_vector_il.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/bit_vectors.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/bits.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/bp_support.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/bp_support_algorithm.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/bp_support_g.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/bp_support_gg.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/bp_support_sada.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/coder.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/coder_comma.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/coder_elias_delta.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/coder_elias_gamma.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/coder_fibonacci.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/config.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/construct.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/construct_bwt.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/construct_config.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/construct_isa.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/construct_lcp.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/construct_lcp_helper.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/construct_sa.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/construct_sa_se.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/csa_alphabet_strategy.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/csa_bitcompressed.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/csa_sada.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/csa_sampling_strategy.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/csa_wt.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/cst_fully.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/cst_iterators.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/cst_sada.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/cst_sct3.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/dac_vector.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/enc_vector.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/fast_cache.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/hyb_vector.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/int_vector.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/int_vector_buffer.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/int_vector_io_wrappers.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/int_vector_mapper.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/inv_perm_support.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/io.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/iterators.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/k2_treap.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/k2_treap_algorithm.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/k2_treap_helper.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/k2_tree.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/k2_tree_helper.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/lcp.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/lcp_bitcompressed.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/lcp_byte.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/lcp_dac.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/lcp_support_sada.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/lcp_support_tree.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/lcp_support_tree2.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/lcp_vlc.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/lcp_wt.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/louds_tree.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/memory_management.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/nearest_neighbour_dictionary.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/nn_dict_dynamic.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/qsufsort.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/ram_filebuf.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/ram_fs.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/rank_support.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/rank_support_scan.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/rank_support_v.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/rank_support_v5.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/raster_img.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/rmq_succinct_sada.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/rmq_succinct_sct.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/rmq_support.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/rmq_support_sparse_table.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/rrr_helper.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/rrr_vector.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/rrr_vector_15.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/sd_vector.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/sdsl_concepts.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/select_support.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/select_support_mcl.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/select_support_scan.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/sfstream.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/sorted_int_stack.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/sorted_multi_stack_support.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/sorted_stack_support.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/structure_tree.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/suffix_array_algorithm.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/suffix_array_helper.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/suffix_arrays.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/suffix_tree_algorithm.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/suffix_tree_helper.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/suffix_trees.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/uint128_t.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/uint256_t.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/uintx_t.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/util.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/vectors.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/vlc_vector.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/wavelet_trees.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/wm_int.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/wt_algorithm.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/wt_ap.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/wt_blcd.hpp config.status: executing libtool commands -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/wt_gmr.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/wt_helper.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/wt_huff.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/wt_hutu.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/wt_int.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/wt_pc.hpp -- Installing: /srv/build/vg-1.30.0+ds/include/sdsl/wt_rlmn.hpp -- Installing: /srv/build/vg-1.30.0+ds/lib/libsdsl.a make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/sdsl-lite/build' . ./source_me.sh && cd deps/vowpal_wabbit && make clean && CXXFLAGS="-O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 " LDFLAGS="-L/srv/build/vg-1.30.0+ds/lib" make SUCCESS: sdsl was installed successfully! The sdsl include files are located in '/srv/build/vg-1.30.0+ds/include'. The library files are located in '/srv/build/vg-1.30.0+ds/lib'. Sample programs can be found in the examples-directory. Tests in the test-directory A cheat sheet in the extras/cheatsheet-directory. Have fun! make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit' Making clean in vowpalwabbit make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit/vowpalwabbit' test -z "liballreduce.la libvw.la " || rm -f liballreduce.la libvw.la rm -rf .libs _libs rm -f *.o rm -f *.lo rm -f vw active_interactor rm -f ./so_locations make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit/vowpalwabbit' Making clean in cluster make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit/cluster' rm -rf .libs _libs rm -f *.o rm -f *.lo rm -f spanning_tree rm -f ../vowpalwabbit/*.o make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/pinchesAndCacti' make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit/cluster' Making clean in library make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit/library' rm -rf .libs _libs rm -f *.o rm -f *.lo rm -f library_example ezexample_train ezexample_predict make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit/library' make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit' rm -rf .libs _libs rm -f *.lo make[4]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit' make[3]: Leaving directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit' make[3]: Entering directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit' Making all in vowpalwabbit make[4]: Entering directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit/vowpalwabbit' (CDPATH="${ZSH_VERSION+.}:" && cd .. && /bin/bash '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit/missing' autoheader) rm -f stamp-h1 touch config.h.in cd .. && /bin/bash ./config.status vowpalwabbit/config.h config.status: creating vowpalwabbit/config.h config.status: vowpalwabbit/config.h is unchanged make all-am make[5]: Entering directory '/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit/vowpalwabbit' g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT vw-main.o -MD -MP -MF .deps/vw-main.Tpo -c -o vw-main.o `test -f 'main.cc' || echo './'`main.cc depbase=`echo hash.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT hash.lo -MD -MP -MF $depbase.Tpo -c -o hash.lo hash.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo parser_helper.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parser_helper.lo -MD -MP -MF $depbase.Tpo -c -o parser_helper.lo parser_helper.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo global_data.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT global_data.lo -MD -MP -MF $depbase.Tpo -c -o global_data.lo global_data.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo io_buf.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT io_buf.lo -MD -MP -MF $depbase.Tpo -c -o io_buf.lo io_buf.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo parse_regressor.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_regressor.lo -MD -MP -MF $depbase.Tpo -c -o parse_regressor.lo parse_regressor.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo parse_primitives.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_primitives.lo -MD -MP -MF $depbase.Tpo -c -o parse_primitives.lo parse_primitives.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo unique_sort.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT unique_sort.lo -MD -MP -MF $depbase.Tpo -c -o unique_sort.lo unique_sort.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo cache.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cache.lo -MD -MP -MF $depbase.Tpo -c -o cache.lo cache.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo rand48.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT rand48.lo -MD -MP -MF $depbase.Tpo -c -o rand48.lo rand48.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo simple_label.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT simple_label.lo -MD -MP -MF $depbase.Tpo -c -o simple_label.lo simple_label.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo multiclass.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT multiclass.lo -MD -MP -MF $depbase.Tpo -c -o multiclass.lo multiclass.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo oaa.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT oaa.lo -MD -MP -MF $depbase.Tpo -c -o oaa.lo oaa.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo multilabel_oaa.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT multilabel_oaa.lo -MD -MP -MF $depbase.Tpo -c -o multilabel_oaa.lo multilabel_oaa.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo boosting.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT boosting.lo -MD -MP -MF $depbase.Tpo -c -o boosting.lo boosting.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo ect.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT ect.lo -MD -MP -MF $depbase.Tpo -c -o ect.lo ect.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_primitives.lo -MD -MP -MF .deps/parse_primitives.Tpo -c parse_primitives.cc -fPIC -DPIC -o .libs/parse_primitives.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parser_helper.lo -MD -MP -MF .deps/parser_helper.Tpo -c parser_helper.cc -fPIC -DPIC -o .libs/parser_helper.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT unique_sort.lo -MD -MP -MF .deps/unique_sort.Tpo -c unique_sort.cc -fPIC -DPIC -o .libs/unique_sort.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT multiclass.lo -MD -MP -MF .deps/multiclass.Tpo -c multiclass.cc -fPIC -DPIC -o .libs/multiclass.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT simple_label.lo -MD -MP -MF .deps/simple_label.Tpo -c simple_label.cc -fPIC -DPIC -o .libs/simple_label.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT boosting.lo -MD -MP -MF .deps/boosting.Tpo -c boosting.cc -fPIC -DPIC -o .libs/boosting.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT hash.lo -MD -MP -MF .deps/hash.Tpo -c hash.cc -fPIC -DPIC -o .libs/hash.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_regressor.lo -MD -MP -MF .deps/parse_regressor.Tpo -c parse_regressor.cc -fPIC -DPIC -o .libs/parse_regressor.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT global_data.lo -MD -MP -MF .deps/global_data.Tpo -c global_data.cc -fPIC -DPIC -o .libs/global_data.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cache.lo -MD -MP -MF .deps/cache.Tpo -c cache.cc -fPIC -DPIC -o .libs/cache.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT oaa.lo -MD -MP -MF .deps/oaa.Tpo -c oaa.cc -fPIC -DPIC -o .libs/oaa.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT ect.lo -MD -MP -MF .deps/ect.Tpo -c ect.cc -fPIC -DPIC -o .libs/ect.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT rand48.lo -MD -MP -MF .deps/rand48.Tpo -c rand48.cc -fPIC -DPIC -o .libs/rand48.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT multilabel_oaa.lo -MD -MP -MF .deps/multilabel_oaa.Tpo -c multilabel_oaa.cc -fPIC -DPIC -o .libs/multilabel_oaa.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT io_buf.lo -MD -MP -MF .deps/io_buf.Tpo -c io_buf.cc -fPIC -DPIC -o .libs/io_buf.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT rand48.lo -MD -MP -MF .deps/rand48.Tpo -c rand48.cc -o rand48.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT hash.lo -MD -MP -MF .deps/hash.Tpo -c hash.cc -o hash.o >/dev/null 2>&1 depbase=`echo marginal.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT marginal.lo -MD -MP -MF $depbase.Tpo -c -o marginal.lo marginal.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo autolink.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT autolink.lo -MD -MP -MF $depbase.Tpo -c -o autolink.lo autolink.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT marginal.lo -MD -MP -MF .deps/marginal.Tpo -c marginal.cc -fPIC -DPIC -o .libs/marginal.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT autolink.lo -MD -MP -MF .deps/autolink.Tpo -c autolink.cc -fPIC -DPIC -o .libs/autolink.o In file included from io_buf.h:14, from io_buf.cc:6: v_array.h: In member function ‘void v_array::resize(size_t) [with T = char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT io_buf.lo -MD -MP -MF .deps/io_buf.Tpo -c io_buf.cc -o io_buf.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_primitives.lo -MD -MP -MF .deps/parse_primitives.Tpo -c parse_primitives.cc -o parse_primitives.o >/dev/null 2>&1 depbase=`echo binary.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT binary.lo -MD -MP -MF $depbase.Tpo -c -o binary.lo binary.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo lrq.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT lrq.lo -MD -MP -MF $depbase.Tpo -c -o lrq.lo lrq.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT binary.lo -MD -MP -MF .deps/binary.Tpo -c binary.cc -fPIC -DPIC -o .libs/binary.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT lrq.lo -MD -MP -MF .deps/lrq.Tpo -c lrq.cc -fPIC -DPIC -o .libs/lrq.o In file included from example.h:10, from unique_sort.cc:6: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from memory.h:5, from v_array.h:21: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from cache.h:7, from simple_label.cc:6: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from cache.h:7, from cache.cc:6: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from memory.h:5, from v_array.h:21: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from memory.h:5, from v_array.h:21: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from cache.h:9: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ In file included from example.h:17, from cache.h:9: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from global_data.h:19, from parse_args.h:7, from main.cc:13: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from global_data.h:19, from multiclass.cc:3: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from global_data.h:19, from global_data.cc:14: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ parse_regressor.cc: In instantiation of ‘void initialize_regressor(vw&, T&) [with T = sparse_parameters]’: parse_regressor.cc:129:25: required from here parse_regressor.cc:103:27: warning: catching polymorphic type ‘class VW::vw_exception’ by value []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wcatch-value=-Wcatch-value=]8;;] 103 | catch (VW::vw_exception anExc) | ^~~~~ parse_regressor.cc: In instantiation of ‘void initialize_regressor(vw&, T&) [with T = dense_parameters]’: parse_regressor.cc:131:25: required from here parse_regressor.cc:103:27: warning: catching polymorphic type ‘class VW::vw_exception’ by value []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wcatch-value=-Wcatch-value=]8;;] In file included from io_buf.h:14, from reductions.h:10, from multilabel_oaa.cc:8: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from oaa.cc:9: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from boosting.cc:22: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from ect.cc:17: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from global_data.h:19, from parse_regressor.cc:23: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from autolink.cc:1: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT unique_sort.lo -MD -MP -MF .deps/unique_sort.Tpo -c unique_sort.cc -o unique_sort.o >/dev/null 2>&1 In file included from io_buf.h:14, from reductions.h:10, from marginal.cc:2: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_array.h: In member function ‘void v_array::resize(size_t) [with T = char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cache.lo -MD -MP -MF .deps/cache.Tpo -c cache.cc -o cache.o >/dev/null 2>&1 mv -f .deps/vw-main.Tpo .deps/vw-main.Po depbase=`echo cost_sensitive.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cost_sensitive.lo -MD -MP -MF $depbase.Tpo -c -o cost_sensitive.lo cost_sensitive.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT simple_label.lo -MD -MP -MF .deps/simple_label.Tpo -c simple_label.cc -o simple_label.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cost_sensitive.lo -MD -MP -MF .deps/cost_sensitive.Tpo -c cost_sensitive.cc -fPIC -DPIC -o .libs/cost_sensitive.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT multiclass.lo -MD -MP -MF .deps/multiclass.Tpo -c multiclass.cc -o multiclass.o >/dev/null 2>&1 v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from binary.cc:2: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parser_helper.lo -MD -MP -MF .deps/parser_helper.Tpo -c parser_helper.cc -o parser_helper.o >/dev/null 2>&1 In file included from io_buf.h:14, from reductions.h:10, from lrq.cc:3: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT global_data.lo -MD -MP -MF .deps/global_data.Tpo -c global_data.cc -o global_data.o >/dev/null 2>&1 v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ depbase=`echo multilabel.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT multilabel.lo -MD -MP -MF $depbase.Tpo -c -o multilabel.lo multilabel.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT binary.lo -MD -MP -MF .deps/binary.Tpo -c binary.cc -o binary.o >/dev/null 2>&1 v_array.h: In member function ‘void v_array::resize(size_t) [with T = bool]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT multilabel.lo -MD -MP -MF .deps/multilabel.Tpo -c multilabel.cc -fPIC -DPIC -o .libs/multilabel.o In file included from global_data.h:19, from parse_regressor.h:9, from gd.h:11, from cost_sensitive.cc:2: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from parse_regressor.h:8: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT multilabel_oaa.lo -MD -MP -MF .deps/multilabel_oaa.Tpo -c multilabel_oaa.cc -o multilabel_oaa.o >/dev/null 2>&1 depbase=`echo label_dictionary.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT label_dictionary.lo -MD -MP -MF $depbase.Tpo -c -o label_dictionary.lo label_dictionary.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT label_dictionary.lo -MD -MP -MF .deps/label_dictionary.Tpo -c label_dictionary.cc -fPIC -DPIC -o .libs/label_dictionary.o depbase=`echo csoaa.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT csoaa.lo -MD -MP -MF $depbase.Tpo -c -o csoaa.lo csoaa.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT autolink.lo -MD -MP -MF .deps/autolink.Tpo -c autolink.cc -o autolink.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_regressor.lo -MD -MP -MF .deps/parse_regressor.Tpo -c parse_regressor.cc -o parse_regressor.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT csoaa.lo -MD -MP -MF .deps/csoaa.Tpo -c csoaa.cc -fPIC -DPIC -o .libs/csoaa.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cost_sensitive.lo -MD -MP -MF .deps/cost_sensitive.Tpo -c cost_sensitive.cc -o cost_sensitive.o >/dev/null 2>&1 depbase=`echo cb.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb.lo -MD -MP -MF $depbase.Tpo -c -o cb.lo cb.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb.lo -MD -MP -MF .deps/cb.Tpo -c cb.cc -fPIC -DPIC -o .libs/cb.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT ect.lo -MD -MP -MF .deps/ect.Tpo -c ect.cc -o ect.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT oaa.lo -MD -MP -MF .deps/oaa.Tpo -c oaa.cc -o oaa.o >/dev/null 2>&1 In file included from global_data.h:19, from parse_regressor.h:9, from gd.h:11, from multilabel.cc:2: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from parse_regressor.h:8: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT boosting.lo -MD -MP -MF .deps/boosting.Tpo -c boosting.cc -o boosting.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT marginal.lo -MD -MP -MF .deps/marginal.Tpo -c marginal.cc -o marginal.o >/dev/null 2>&1 In file included from global_data.h:27, from reductions.h:14, from label_dictionary.cc:1: v_hashmap.h: In instantiation of ‘void v_hashmap::clear() [with K = long unsigned int; V = features]’: label_dictionary.cc:109:12: required from here v_hashmap.h:94:11: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct v_hashmap::hash_elem’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 94 | memset(dat.begin(), 0, base_size()*sizeof(hash_elem)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_hashmap.h:17:10: note: ‘struct v_hashmap::hash_elem’ declared here 17 | struct hash_elem | ^~~~~~~~~ In file included from io_buf.h:14, from reductions.h:10: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_hashmap.h: In instantiation of ‘void v_hashmap::double_size() [with K = long unsigned int; V = features]’: v_hashmap.h:236:9: required from ‘void v_hashmap::put_after_get(K&, uint64_t, V) [with K = long unsigned int; V = features; uint64_t = long unsigned int]’ label_dictionary.cc:94:20: required from here v_hashmap.h:157:11: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct v_hashmap::hash_elem’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 157 | memset(dat.begin(), 0, base_size()*sizeof(hash_elem)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_hashmap.h:17:10: note: ‘struct v_hashmap::hash_elem’ declared here 17 | struct hash_elem | ^~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = v_hashmap::hash_elem; size_t = long unsigned int]’: v_hashmap.h:149:15: required from ‘void v_hashmap::double_size() [with K = long unsigned int; V = features]’ v_hashmap.h:236:9: required from ‘void v_hashmap::put_after_get(K&, uint64_t, V) [with K = long unsigned int; V = features; uint64_t = long unsigned int]’ label_dictionary.cc:94:20: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct v_hashmap::hash_elem’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_hashmap.h:17:10: note: ‘struct v_hashmap::hash_elem’ declared here 17 | struct hash_elem | ^~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT multilabel.lo -MD -MP -MF .deps/multilabel.Tpo -c multilabel.cc -o multilabel.o >/dev/null 2>&1 depbase=`echo cb_adf.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb_adf.lo -MD -MP -MF $depbase.Tpo -c -o cb_adf.lo cb_adf.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb_adf.lo -MD -MP -MF .deps/cb_adf.Tpo -c cb_adf.cc -fPIC -DPIC -o .libs/cb_adf.o In file included from io_buf.h:14, from reductions.h:10, from csoaa.cc:9: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = v_hashmap::hash_elem; size_t = long unsigned int]’: v_hashmap.h:57:15: required from ‘void v_hashmap::init(size_t, V, bool (*)(K&, K&)) [with K = long unsigned int; V = features; size_t = long unsigned int]’ csoaa.cc:895:26: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct v_hashmap::hash_elem’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from global_data.h:27, from reductions.h:14: v_hashmap.h:17:10: note: ‘struct v_hashmap::hash_elem’ declared here 17 | struct hash_elem | ^~~~~~~~~ depbase=`echo cb_algs.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb_algs.lo -MD -MP -MF $depbase.Tpo -c -o cb_algs.lo cb_algs.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb_algs.lo -MD -MP -MF .deps/cb_algs.Tpo -c cb_algs.cc -fPIC -DPIC -o .libs/cb_algs.o depbase=`echo search.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search.lo -MD -MP -MF $depbase.Tpo -c -o search.lo search.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search.lo -MD -MP -MF .deps/search.Tpo -c search.cc -fPIC -DPIC -o .libs/search.o v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT label_dictionary.lo -MD -MP -MF .deps/label_dictionary.Tpo -c label_dictionary.cc -o label_dictionary.o >/dev/null 2>&1 In file included from example.h:10, from cb.cc:8: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from memory.h:5, from v_array.h:21: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT lrq.lo -MD -MP -MF .deps/lrq.Tpo -c lrq.cc -o lrq.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb.lo -MD -MP -MF .deps/cb.Tpo -c cb.cc -o cb.o >/dev/null 2>&1 depbase=`echo search_meta.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_meta.lo -MD -MP -MF $depbase.Tpo -c -o search_meta.lo search_meta.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_meta.lo -MD -MP -MF .deps/search_meta.Tpo -c search_meta.cc -fPIC -DPIC -o .libs/search_meta.o In file included from io_buf.h:14, from reductions.h:10, from cb_adf.cc:9: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from global_data.h:19, from vw.h:15, from cb_algs.cc:8: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from global_data.h:27, from vw.h:15, from search.cc:9: v_hashmap.h: In instantiation of ‘void v_hashmap::clear() [with K = unsigned char*; V = Search::scored_action]’: search.cc:1265:28: required from here v_hashmap.h:94:11: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct v_hashmap::hash_elem’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 94 | memset(dat.begin(), 0, base_size()*sizeof(hash_elem)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_hashmap.h:17:10: note: ‘struct v_hashmap::hash_elem’ declared here 17 | struct hash_elem | ^~~~~~~~~ search.cc: In instantiation of ‘void Search::push_at(v_array&, T, size_t) [with T = action_repr; size_t = long unsigned int]’: search.cc:1535:18: required from here search.cc:945:13: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct Search::action_repr’; use assignment instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 945 | memset(v.end(), 0, sizeof(T) * (pos - v.size())); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ search.cc:98:8: note: ‘struct Search::action_repr’ declared here 98 | struct action_repr | ^~~~~~~~~~~ In file included from global_data.h:19: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = Search::action_repr; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = Search::action_repr]’ search.cc:620:28: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct Search::action_repr’; use assignment instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ search.cc:98:8: note: ‘struct Search::action_repr’ declared here 98 | struct action_repr | ^~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = Search::action_cache; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = Search::action_cache]’ search.cc:1009:28: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct Search::action_cache’; use assignment instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ search.cc:115:8: note: ‘struct Search::action_cache’ declared here 115 | struct action_cache | ^~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::pair; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = std::pair]’ search.cc:1084:40: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct std::pair’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/bits/stl_algobase.h:64, from /usr/include/c++/12/string:50, from /usr/include/c++/12/bits/locale_classes.h:40, from /usr/include/c++/12/bits/ios_base.h:41, from /usr/include/c++/12/ios:42, from /usr/include/c++/12/ostream:38, from /usr/include/c++/12/iostream:39, from global_data.h:8: /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair’ declared here 185 | struct pair | ^~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct std::pair’ with no trivial copy-assignment; use assignment instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair’ declared here 185 | struct pair | ^~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::pair; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::pair]’ search.cc:1097:35: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct std::pair’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair’ declared here 185 | struct pair | ^~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct std::pair’ with no trivial copy-assignment; use assignment instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair’ declared here 185 | struct pair | ^~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = example; size_t = long unsigned int]’: search.cc:932:13: required from ‘void Search::ensure_size(v_array&, size_t) [with T = example; size_t = long unsigned int]’ search.cc:1517:20: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct example’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ example.h:57:8: note: ‘struct example’ declared here 57 | struct example : public example_predict // core example datatype. | ^~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = Search::scored_action; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = Search::scored_action]’ search.cc:1695:38: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct Search::scored_action’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ search.cc:87:8: note: ‘struct Search::scored_action’ declared here 87 | struct scored_action | ^~~~~~~~~~~~~ v_hashmap.h: In instantiation of ‘void v_hashmap::double_size() [with K = unsigned char*; V = Search::scored_action]’: v_hashmap.h:236:9: required from ‘void v_hashmap::put_after_get(K&, uint64_t, V) [with K = unsigned char*; V = Search::scored_action; uint64_t = long unsigned int]’ v_hashmap.h:247:5: required from ‘void v_hashmap::put(K&, uint64_t, V) [with K = unsigned char*; V = Search::scored_action; uint64_t = long unsigned int]’ search.cc:1295:28: required from here v_hashmap.h:157:11: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct v_hashmap::hash_elem’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 157 | memset(dat.begin(), 0, base_size()*sizeof(hash_elem)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_hashmap.h:17:10: note: ‘struct v_hashmap::hash_elem’ declared here 17 | struct hash_elem | ^~~~~~~~~ depbase=`echo search_sequencetask.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_sequencetask.lo -MD -MP -MF $depbase.Tpo -c -o search_sequencetask.lo search_sequencetask.cc &&\ mv -f $depbase.Tpo $depbase.Plo v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = v_hashmap::hash_elem; size_t = long unsigned int]’: v_hashmap.h:71:15: required from ‘void v_hashmap::init(size_t, bool (*)(K&, K&)) [with K = unsigned char*; V = Search::scored_action; size_t = long unsigned int]’ v_hashmap.h:83:21: required from ‘v_hashmap::v_hashmap() [with K = unsigned char*; V = Search::scored_action]’ search.cc:2266:71: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct v_hashmap::hash_elem’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_hashmap.h:17:10: note: ‘struct v_hashmap::hash_elem’ declared here 17 | struct hash_elem | ^~~~~~~~~ depbase=`echo search_dep_parser.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_dep_parser.lo -MD -MP -MF $depbase.Tpo -c -o search_dep_parser.lo search_dep_parser.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_sequencetask.lo -MD -MP -MF .deps/search_sequencetask.Tpo -c search_sequencetask.cc -fPIC -DPIC -o .libs/search_sequencetask.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_dep_parser.lo -MD -MP -MF .deps/search_dep_parser.Tpo -c search_dep_parser.cc -fPIC -DPIC -o .libs/search_dep_parser.o depbase=`echo search_hooktask.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_hooktask.lo -MD -MP -MF $depbase.Tpo -c -o search_hooktask.lo search_hooktask.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_hooktask.lo -MD -MP -MF .deps/search_hooktask.Tpo -c search_hooktask.cc -fPIC -DPIC -o .libs/search_hooktask.o depbase=`echo search_multiclasstask.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_multiclasstask.lo -MD -MP -MF $depbase.Tpo -c -o search_multiclasstask.lo search_multiclasstask.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo search_entityrelationtask.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_entityrelationtask.lo -MD -MP -MF $depbase.Tpo -c -o search_entityrelationtask.lo search_entityrelationtask.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_multiclasstask.lo -MD -MP -MF .deps/search_multiclasstask.Tpo -c search_multiclasstask.cc -fPIC -DPIC -o .libs/search_multiclasstask.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_entityrelationtask.lo -MD -MP -MF .deps/search_entityrelationtask.Tpo -c search_entityrelationtask.cc -fPIC -DPIC -o .libs/search_entityrelationtask.o search_meta.cc: In function ‘void SelectiveBranchingMT::run(Search::search&, std::vector&)’: search_meta.cc:247:3: warning: this ‘if’ clause does not guard... []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wmisleading-indentation-Wmisleading-indentation]8;;] 247 | if (d.kbest_out) delete d.kbest_out; d.kbest_out = nullptr; | ^~ search_meta.cc:247:40: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’ 247 | if (d.kbest_out) delete d.kbest_out; d.kbest_out = nullptr; | ^ In file included from io_buf.h:14, from reductions.h:10, from search_meta.cc:9: v_array.h: In instantiation of ‘void push_many(v_array&, const T*, size_t) [with T = std::pair; size_t = long unsigned int]’: search_meta.cc:124:25: required from here v_array.h:193:9: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 193 | memcpy(v._end, _begin, num * sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/bits/stl_algobase.h:64, from /usr/include/c++/12/string:50, from /usr/include/boost/program_options/errors.hpp:12, from /usr/include/boost/program_options/options_description.hpp:12, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair’ declared here 185 | struct pair | ^~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::pair > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::pair > >]’ search_meta.cc:108:19: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct std::pair > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair > >’ declared here 185 | struct pair | ^~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct std::pair > >’ with no trivial copy-assignment; use assignment instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair > >’ declared here 185 | struct pair | ^~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::pair > >, std::__cxx11::basic_string*>; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::pair > >, std::__cxx11::basic_string*>]’ search_meta.cc:109:16: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct std::pair > >, std::__cxx11::basic_string*>’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair > >, std::__cxx11::basic_string*>’ declared here 185 | struct pair | ^~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct std::pair > >, std::__cxx11::basic_string*>’ with no trivial copy-assignment; use assignment instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair > >, std::__cxx11::basic_string*>’ declared here 185 | struct pair | ^~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::pair; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::pair]’ search_meta.cc:110:21: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct std::pair’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair’ declared here 185 | struct pair | ^~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct std::pair’ with no trivial copy-assignment; use assignment instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair’ declared here 185 | struct pair | ^~~~ depbase=`echo search_graph.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_graph.lo -MD -MP -MF $depbase.Tpo -c -o search_graph.lo search_graph.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_graph.lo -MD -MP -MF .deps/search_graph.Tpo -c search_graph.cc -fPIC -DPIC -o .libs/search_graph.o depbase=`echo parse_example.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_example.lo -MD -MP -MF $depbase.Tpo -c -o parse_example.lo parse_example.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT csoaa.lo -MD -MP -MF .deps/csoaa.Tpo -c csoaa.cc -o csoaa.o >/dev/null 2>&1 In file included from global_data.h:19, from search.h:7, from search_sequencetask.h:7, from search_sequencetask.cc:6: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_example.lo -MD -MP -MF .deps/parse_example.Tpo -c parse_example.cc -fPIC -DPIC -o .libs/parse_example.o v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from global_data.h:19, from search.h:7, from search_dep_parser.h:7, from search_dep_parser.cc:6: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::pair; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::pair]’ search_dep_parser.cc:442:27: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct std::pair’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/bits/stl_algobase.h:64, from /usr/include/c++/12/string:50, from /usr/include/c++/12/bits/locale_classes.h:40, from /usr/include/c++/12/bits/ios_base.h:41, from /usr/include/c++/12/ios:42, from /usr/include/c++/12/ostream:38, from /usr/include/c++/12/iostream:39, from global_data.h:8: /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair’ declared here 185 | struct pair | ^~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct std::pair’ with no trivial copy-assignment; use assignment instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/stl_pair.h:185:12: note: ‘struct std::pair’ declared here 185 | struct pair | ^~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb_adf.lo -MD -MP -MF .deps/cb_adf.Tpo -c cb_adf.cc -o cb_adf.o >/dev/null 2>&1 In file included from global_data.h:19, from search.h:7, from search_hooktask.h:7, from search_hooktask.cc:6: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from global_data.h:19, from search.h:7, from search_multiclasstask.h:7, from search_multiclasstask.cc:6: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_hooktask.lo -MD -MP -MF .deps/search_hooktask.Tpo -c search_hooktask.cc -o search_hooktask.o >/dev/null 2>&1 In file included from global_data.h:19, from search.h:7, from search_entityrelationtask.h:7, from search_entityrelationtask.cc:6: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo scorer.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT scorer.lo -MD -MP -MF $depbase.Tpo -c -o scorer.lo scorer.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT scorer.lo -MD -MP -MF .deps/scorer.Tpo -c scorer.cc -fPIC -DPIC -o .libs/scorer.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_multiclasstask.lo -MD -MP -MF .deps/search_multiclasstask.Tpo -c search_multiclasstask.cc -o search_multiclasstask.o >/dev/null 2>&1 v_array.h: In member function ‘void v_array::resize(size_t) [with T = char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ depbase=`echo network.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT network.lo -MD -MP -MF $depbase.Tpo -c -o network.lo network.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT network.lo -MD -MP -MF .deps/network.Tpo -c network.cc -fPIC -DPIC -o .libs/network.o v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from global_data.h:19, from search.h:7, from search_graph.h:7, from search_graph.cc:6: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb_algs.lo -MD -MP -MF .deps/cb_algs.Tpo -c cb_algs.cc -o cb_algs.o >/dev/null 2>&1 depbase=`echo parse_args.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_args.lo -MD -MP -MF $depbase.Tpo -c -o parse_args.lo parse_args.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_args.lo -MD -MP -MF .deps/parse_args.Tpo -c parse_args.cc -fPIC -DPIC -o .libs/parse_args.o In file included from parse_primitives.h:10, from parse_example.h:8, from parse_example.cc:9: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from memory.h:5, from v_array.h:21: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from parse_example.h:9: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT network.lo -MD -MP -MF .deps/network.Tpo -c network.cc -o network.o >/dev/null 2>&1 In member function ‘void v_array::resize(size_t) [with T = unsigned char]’, inlined from ‘void v_array::push_back(const T&) [with T = unsigned char]’ at v_array.h:94:13, inlined from ‘void Search::add_example_conditioning(search_private&, example&, size_t, const char*, action_repr*)’ at search.cc:743:25: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ depbase=`echo accumulate.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT accumulate.lo -MD -MP -MF $depbase.Tpo -c -o accumulate.lo accumulate.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT accumulate.lo -MD -MP -MF .deps/accumulate.Tpo -c accumulate.cc -fPIC -DPIC -o .libs/accumulate.o v_array.h: In member function ‘void v_array::resize(size_t) [with T = char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ depbase=`echo gd.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT gd.lo -MD -MP -MF $depbase.Tpo -c -o gd.lo gd.cc &&\ mv -f $depbase.Tpo $depbase.Plo In file included from io_buf.h:14, from reductions.h:10, from scorer.cc:3: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT gd.lo -MD -MP -MF .deps/gd.Tpo -c gd.cc -fPIC -DPIC -o .libs/gd.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_meta.lo -MD -MP -MF .deps/search_meta.Tpo -c search_meta.cc -o search_meta.o >/dev/null 2>&1 In member function ‘void v_array::resize(size_t) [with T = unsigned char]’, inlined from ‘void v_array::push_back(const T&) [with T = unsigned char]’ at v_array.h:94:13, inlined from ‘void TC_parser::maybeFeature() [with bool audit = true]’ at parse_example.cc:228:36: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ depbase=`echo learner.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT learner.lo -MD -MP -MF $depbase.Tpo -c -o learner.lo learner.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT learner.lo -MD -MP -MF .deps/learner.Tpo -c learner.cc -fPIC -DPIC -o .libs/learner.o depbase=`echo mwt.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT mwt.lo -MD -MP -MF $depbase.Tpo -c -o mwt.lo mwt.cc &&\ mv -f $depbase.Tpo $depbase.Plo In member function ‘void v_array::resize(size_t) [with T = unsigned char]’, inlined from ‘void v_array::push_back(const T&) [with T = unsigned char]’ at v_array.h:94:13, inlined from ‘void DepParserTask::initialize(Search::search&, std::size_t&, arguments&)’ at search_dep_parser.cc:66:32: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT mwt.lo -MD -MP -MF .deps/mwt.Tpo -c mwt.cc -fPIC -DPIC -o .libs/mwt.o v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_sequencetask.lo -MD -MP -MF .deps/search_sequencetask.Tpo -c search_sequencetask.cc -o search_sequencetask.o >/dev/null 2>&1 parse_args.cc: In function ‘const char* VW::are_features_compatible(vw&, vw&)’: parse_args.cc:446:83: warning: expression does not compute the number of elements in this array; element type is ‘uint64_t’ {aka ‘long unsigned int’}, not ‘uint32_t’ {aka ‘unsigned int’} []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wsizeof-array-div-Wsizeof-array-div]8;;] 446 | if (!equal(vw1.affix_features, vw1.affix_features + (sizeof(vw1.affix_features) / sizeof(uint32_t)), vw2.affix_features)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ parse_args.cc:446:85: note: add parentheses around ‘sizeof (uint32_t)’ to silence this warning 446 | if (!equal(vw1.affix_features, vw1.affix_features + (sizeof(vw1.affix_features) / sizeof(uint32_t)), vw2.affix_features)) | ^~~~~~~~~~~~~~~~ | ( ) In member function ‘void v_array::resize(size_t) [with T = unsigned char]’, inlined from ‘void v_array::push_back(const T&) [with T = unsigned char]’ at v_array.h:94:13, inlined from ‘void TC_parser::nameSpace() [with bool audit = true]’ at parse_example.cc:357:28, inlined from ‘void TC_parser::nameSpace() [with bool audit = true]’ at parse_example.cc:322:15, inlined from ‘void TC_parser::listNameSpace() [with bool audit = true]’ at parse_example.cc:365:16, inlined from ‘TC_parser::TC_parser(char*, char*, vw&, example*) [with bool audit = true]’ at parse_example.cc:391:20, inlined from ‘TC_parser::TC_parser(char*, char*, vw&, example*) [with bool audit = true]’ at parse_example.cc:374:3, inlined from ‘void substring_to_example(vw*, example*, substring)’ at parse_example.cc:434:65: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In member function ‘void v_array::resize(size_t) [with T = unsigned char]’, inlined from ‘void v_array::push_back(const T&) [with T = unsigned char]’ at v_array.h:94:13, inlined from ‘void TC_parser::nameSpace() [with bool audit = false]’ at parse_example.cc:357:28, inlined from ‘void TC_parser::nameSpace() [with bool audit = false]’ at parse_example.cc:322:15, inlined from ‘void TC_parser::listNameSpace() [with bool audit = false]’ at parse_example.cc:365:16, inlined from ‘TC_parser::TC_parser(char*, char*, vw&, example*) [with bool audit = false]’ at parse_example.cc:391:20, inlined from ‘TC_parser::TC_parser(char*, char*, vw&, example*) [with bool audit = false]’ at parse_example.cc:374:3, inlined from ‘void substring_to_example(vw*, example*, substring)’ at parse_example.cc:436:66: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from global_data.h:19, from parse_regressor.h:9, from parse_args.cc:15: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from parse_regressor.h:8: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT scorer.lo -MD -MP -MF .deps/scorer.Tpo -c scorer.cc -o scorer.o >/dev/null 2>&1 In file included from global_data.h:19, from accumulate.cc:15: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_entityrelationtask.lo -MD -MP -MF .deps/search_entityrelationtask.Tpo -c search_entityrelationtask.cc -o search_entityrelationtask.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_dep_parser.lo -MD -MP -MF .deps/search_dep_parser.Tpo -c search_dep_parser.cc -o search_dep_parser.o >/dev/null 2>&1 In file included from global_data.h:19, from parse_regressor.h:9, from gd.h:11, from gd.cc:23: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from parse_regressor.h:8: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from io_buf.h:14, from parser.h:7, from learner.cc:1: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from memory.h:5, from v_array.h:21: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from parser.h:9: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_example.lo -MD -MP -MF .deps/parse_example.Tpo -c parse_example.cc -o parse_example.o >/dev/null 2>&1 depbase=`echo lda_core.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT lda_core.lo -MD -MP -MF $depbase.Tpo -c -o lda_core.lo lda_core.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT lda_core.lo -MD -MP -MF .deps/lda_core.Tpo -c lda_core.cc -fPIC -DPIC -o .libs/lda_core.o In file included from global_data.h:19, from vw.h:15, from mwt.cc:6: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT learner.lo -MD -MP -MF .deps/learner.Tpo -c learner.cc -o learner.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT accumulate.lo -MD -MP -MF .deps/accumulate.Tpo -c accumulate.cc -o accumulate.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search_graph.lo -MD -MP -MF .deps/search_graph.Tpo -c search_graph.cc -o search_graph.o >/dev/null 2>&1 depbase=`echo gd_mf.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT gd_mf.lo -MD -MP -MF $depbase.Tpo -c -o gd_mf.lo gd_mf.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT gd_mf.lo -MD -MP -MF .deps/gd_mf.Tpo -c gd_mf.cc -fPIC -DPIC -o .libs/gd_mf.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT search.lo -MD -MP -MF .deps/search.Tpo -c search.cc -o search.o >/dev/null 2>&1 v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_array.h: In member function ‘void v_array::resize(size_t) [with T = char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ depbase=`echo mf.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT mf.lo -MD -MP -MF $depbase.Tpo -c -o mf.lo mf.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo bfgs.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT bfgs.lo -MD -MP -MF $depbase.Tpo -c -o bfgs.lo bfgs.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT mf.lo -MD -MP -MF .deps/mf.Tpo -c mf.cc -fPIC -DPIC -o .libs/mf.o depbase=`echo noop.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT noop.lo -MD -MP -MF $depbase.Tpo -c -o noop.lo noop.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT bfgs.lo -MD -MP -MF .deps/bfgs.Tpo -c bfgs.cc -fPIC -DPIC -o .libs/bfgs.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT noop.lo -MD -MP -MF .deps/noop.Tpo -c noop.cc -fPIC -DPIC -o .libs/noop.o In file included from global_data.h:19, from vw.h:15, from lda_core.cc:17: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo print.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT print.lo -MD -MP -MF $depbase.Tpo -c -o print.lo print.cc &&\ mv -f $depbase.Tpo $depbase.Plo In file included from global_data.h:19, from parse_regressor.h:9, from gd.h:11, from gd_mf.cc:16: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from parse_regressor.h:8: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo example.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT example.lo -MD -MP -MF $depbase.Tpo -c -o example.lo example.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT print.lo -MD -MP -MF .deps/print.Tpo -c print.cc -fPIC -DPIC -o .libs/print.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT example.lo -MD -MP -MF .deps/example.Tpo -c example.cc -fPIC -DPIC -o .libs/example.o parse_args.cc: In function ‘void parse_dictionary_argument(vw&, std::string)’: parse_args.cc:209:30: warning: pointer used after ‘void free(void*)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 209 | VW::dealloc_example(all.p->lp.delete_label, *ec); | ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ parse_args.cc:208:15: note: call to ‘void free(void*)’ here 208 | free(ec); | ~~~~^~~~ depbase=`echo parser.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parser.lo -MD -MP -MF $depbase.Tpo -c -o parser.lo parser.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT mwt.lo -MD -MP -MF .deps/mwt.Tpo -c mwt.cc -o mwt.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parser.lo -MD -MP -MF .deps/parser.Tpo -c parser.cc -fPIC -DPIC -o .libs/parser.o depbase=`echo loss_functions.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT loss_functions.lo -MD -MP -MF $depbase.Tpo -c -o loss_functions.lo loss_functions.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT loss_functions.lo -MD -MP -MF .deps/loss_functions.Tpo -c loss_functions.cc -fPIC -DPIC -o .libs/loss_functions.o bfgs.cc: In function ‘int process_pass(vw&, bfgs&)’: bfgs.cc:667:12: warning: ‘int ftime(timeb*)’ is deprecated: Use gettimeofday or clock_gettime instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations]8;;] 667 | ftime(&b.t_end_global); | ~~~~~^~~~~~~~~~~~~~~~~ In file included from bfgs.cc:18: /usr/include/aarch64-linux-gnu/sys/timeb.h:29:12: note: declared here 29 | extern int ftime (struct timeb *__timebuf) | ^~~~~ bfgs.cc:723:14: warning: ‘int ftime(timeb*)’ is deprecated: Use gettimeofday or clock_gettime instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations]8;;] 723 | ftime(&b.t_end_global); | ~~~~~^~~~~~~~~~~~~~~~~ /usr/include/aarch64-linux-gnu/sys/timeb.h:29:12: note: declared here 29 | extern int ftime (struct timeb *__timebuf) | ^~~~~ bfgs.cc:760:31: warning: catching polymorphic type ‘class curv_exception’ by value []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wcatch-value=-Wcatch-value=]8;;] 760 | catch (curv_exception e) | ^ bfgs.cc:774:16: warning: ‘int ftime(timeb*)’ is deprecated: Use gettimeofday or clock_gettime instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations]8;;] 774 | ftime(&b.t_end_global); | ~~~~~^~~~~~~~~~~~~~~~~ /usr/include/aarch64-linux-gnu/sys/timeb.h:29:12: note: declared here 29 | extern int ftime (struct timeb *__timebuf) | ^~~~~ bfgs.cc:816:12: warning: ‘int ftime(timeb*)’ is deprecated: Use gettimeofday or clock_gettime instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations]8;;] 816 | ftime(&b.t_end_global); | ~~~~~^~~~~~~~~~~~~~~~~ /usr/include/aarch64-linux-gnu/sys/timeb.h:29:12: note: declared here 29 | extern int ftime (struct timeb *__timebuf) | ^~~~~ bfgs.cc:833:8: warning: ‘int ftime(timeb*)’ is deprecated: Use gettimeofday or clock_gettime instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations]8;;] 833 | ftime(&b.t_end_global); | ~~~~~^~~~~~~~~~~~~~~~~ /usr/include/aarch64-linux-gnu/sys/timeb.h:29:12: note: declared here 29 | extern int ftime (struct timeb *__timebuf) | ^~~~~ bfgs.cc: In function ‘void save_load(bfgs&, io_buf&, bool, bool)’: bfgs.cc:1042:10: warning: ‘int ftime(timeb*)’ is deprecated: Use gettimeofday or clock_gettime instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wdeprecated-declarations-Wdeprecated-declarations]8;;] 1042 | ftime(&b.t_start_global); | ~~~~~^~~~~~~~~~~~~~~~~~~ /usr/include/aarch64-linux-gnu/sys/timeb.h:29:12: note: declared here 29 | extern int ftime (struct timeb *__timebuf) | ^~~~~ In file included from io_buf.h:14, from reductions.h:10, from mf.cc:11: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from noop.cc:8: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from global_data.h:19, from accumulate.h:8, from bfgs.cc:19: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo sender.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT sender.lo -MD -MP -MF $depbase.Tpo -c -o sender.lo sender.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT sender.lo -MD -MP -MF .deps/sender.Tpo -c sender.cc -fPIC -DPIC -o .libs/sender.o In file included from global_data.h:19, from parse_regressor.h:9, from gd.h:11, from print.cc:1: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from parse_regressor.h:8: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from global_data.h:19, from parse_regressor.h:9, from gd.h:11, from example.cc:7: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from parse_regressor.h:8: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT noop.lo -MD -MP -MF .deps/noop.Tpo -c noop.cc -o noop.o >/dev/null 2>&1 depbase=`echo nn.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT nn.lo -MD -MP -MF $depbase.Tpo -c -o nn.lo nn.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT nn.lo -MD -MP -MF .deps/nn.Tpo -c nn.cc -fPIC -DPIC -o .libs/nn.o v_array.h: In member function ‘void v_array::resize(size_t) [with T = char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from global_data.h:19, from loss_functions.cc:13: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ parser.cc: In function ‘void parse_cache(vw&, boost::program_options::variables_map&, std::string, bool)’: parser.cc:379:24: warning: catching polymorphic type ‘class std::exception’ by value []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wcatch-value=-Wcatch-value=]8;;] 379 | catch (exception e) { f = -1; } | ^ In file included from parse_primitives.h:10, from parse_example.h:8, from parser.cc:48: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from parser.cc:37: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from parse_example.h:9: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT print.lo -MD -MP -MF .deps/print.Tpo -c print.cc -o print.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT loss_functions.lo -MD -MP -MF .deps/loss_functions.Tpo -c loss_functions.cc -o loss_functions.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT example.lo -MD -MP -MF .deps/example.Tpo -c example.cc -o example.o >/dev/null 2>&1 depbase=`echo confidence.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT confidence.lo -MD -MP -MF $depbase.Tpo -c -o confidence.lo confidence.cc &&\ mv -f $depbase.Tpo $depbase.Plo In file included from io_buf.h:14, from sender.cc:18: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from memory.h:5, from v_array.h:21: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from cache.h:9, from sender.cc:19: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT confidence.lo -MD -MP -MF .deps/confidence.Tpo -c confidence.cc -fPIC -DPIC -o .libs/confidence.o nn.cc: In function ‘void finish_setup(nn&, vw&)’: nn.cc:78:10: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct example’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 78 | memset (&n.output_layer, 0, sizeof (n.output_layer)); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from reductions.h:11, from nn.cc:11: example.h:57:8: note: ‘struct example’ declared here 57 | struct example : public example_predict // core example datatype. | ^~~~~~~ nn.cc:106:10: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct example’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 106 | memset (&n.hiddenbias, 0, sizeof (n.hiddenbias)); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ example.h:57:8: note: ‘struct example’ declared here 57 | struct example : public example_predict // core example datatype. | ^~~~~~~ nn.cc:115:10: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct example’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 115 | memset (&n.outputweight, 0, sizeof (n.outputweight)); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ example.h:57:8: note: ‘struct example’ declared here 57 | struct example : public example_predict // core example datatype. | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT gd_mf.lo -MD -MP -MF .deps/gd_mf.Tpo -c gd_mf.cc -o gd_mf.o >/dev/null 2>&1 In file included from io_buf.h:14, from reductions.h:10: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT mf.lo -MD -MP -MF .deps/mf.Tpo -c mf.cc -o mf.o >/dev/null 2>&1 v_array.h: In member function ‘void v_array::resize(size_t) [with T = char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ v_array.h: In member function ‘void v_array::resize(size_t) [with T = char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ depbase=`echo bs.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT bs.lo -MD -MP -MF $depbase.Tpo -c -o bs.lo bs.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT bs.lo -MD -MP -MF .deps/bs.Tpo -c bs.cc -fPIC -DPIC -o .libs/bs.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_args.lo -MD -MP -MF .deps/parse_args.Tpo -c parse_args.cc -o parse_args.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT sender.lo -MD -MP -MF .deps/sender.Tpo -c sender.cc -o sender.o >/dev/null 2>&1 v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from confidence.cc:1: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo cbify.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cbify.lo -MD -MP -MF $depbase.Tpo -c -o cbify.lo cbify.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cbify.lo -MD -MP -MF .deps/cbify.Tpo -c cbify.cc -fPIC -DPIC -o .libs/cbify.o In member function ‘void v_array::resize(size_t) [with T = unsigned char]’, inlined from ‘void v_array::push_back(const T&) [with T = unsigned char]’ at v_array.h:94:13, inlined from ‘void finish_setup(nn&, vw&)’ at nn.cc:79:35: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In member function ‘void v_array::resize(size_t) [with T = unsigned char]’, inlined from ‘void v_array::push_back(const T&) [with T = unsigned char]’ at v_array.h:94:13, inlined from ‘void finish_setup(nn&, vw&)’ at nn.cc:107:33: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In member function ‘void v_array::resize(size_t) [with T = unsigned char]’, inlined from ‘void v_array::push_back(const T&) [with T = unsigned char]’ at v_array.h:94:13, inlined from ‘void finish_setup(nn&, vw&)’ at nn.cc:116:35: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In member function ‘void v_array::resize(size_t) [with T = unsigned char]’, inlined from ‘void v_array::push_back(const T&) [with T = unsigned char]’ at v_array.h:94:13, inlined from ‘void predict_or_learn_multi(nn&, LEARNER::base_learner&, example&) [with bool is_learn = false; bool recompute_hidden = true]’ at nn.cc:265:26: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ depbase=`echo explore_eval.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT explore_eval.lo -MD -MP -MF $depbase.Tpo -c -o explore_eval.lo explore_eval.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT lda_core.lo -MD -MP -MF .deps/lda_core.Tpo -c lda_core.cc -o lda_core.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT explore_eval.lo -MD -MP -MF .deps/explore_eval.Tpo -c explore_eval.cc -fPIC -DPIC -o .libs/explore_eval.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT confidence.lo -MD -MP -MF .deps/confidence.Tpo -c confidence.cc -o confidence.o >/dev/null 2>&1 In member function ‘void v_array::resize(size_t) [with T = unsigned char]’, inlined from ‘void v_array::push_back(const T&) [with T = unsigned char]’ at v_array.h:94:13, inlined from ‘void predict_or_learn_multi(nn&, LEARNER::base_learner&, example&) [with bool is_learn = true; bool recompute_hidden = true]’ at nn.cc:265:26: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from bs.cc:13: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT bfgs.lo -MD -MP -MF .deps/bfgs.Tpo -c bfgs.cc -o bfgs.o >/dev/null 2>&1 In member function ‘void v_array::resize(size_t) [with T = unsigned char]’, inlined from ‘void v_array::push_back(const T&) [with T = unsigned char]’ at v_array.h:94:13, inlined from ‘void predict_or_learn_multi(nn&, LEARNER::base_learner&, example&) [with bool is_learn = false; bool recompute_hidden = false]’ at nn.cc:265:26: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ depbase=`echo topk.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT topk.lo -MD -MP -MF $depbase.Tpo -c -o topk.lo topk.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT topk.lo -MD -MP -MF .deps/topk.Tpo -c topk.cc -fPIC -DPIC -o .libs/topk.o In file included from io_buf.h:14, from reductions.h:10, from cbify.cc:2: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo stagewise_poly.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT stagewise_poly.lo -MD -MP -MF $depbase.Tpo -c -o stagewise_poly.lo stagewise_poly.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT stagewise_poly.lo -MD -MP -MF .deps/stagewise_poly.Tpo -c stagewise_poly.cc -fPIC -DPIC -o .libs/stagewise_poly.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parser.lo -MD -MP -MF .deps/parser.Tpo -c parser.cc -o parser.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT nn.lo -MD -MP -MF .deps/nn.Tpo -c nn.cc -o nn.o >/dev/null 2>&1 In file included from io_buf.h:14, from reductions.h:10, from explore_eval.cc:1: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo log_multi.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT log_multi.lo -MD -MP -MF $depbase.Tpo -c -o log_multi.lo log_multi.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT log_multi.lo -MD -MP -MF .deps/log_multi.Tpo -c log_multi.cc -fPIC -DPIC -o .libs/log_multi.o depbase=`echo recall_tree.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT recall_tree.lo -MD -MP -MF $depbase.Tpo -c -o recall_tree.lo recall_tree.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT recall_tree.lo -MD -MP -MF .deps/recall_tree.Tpo -c recall_tree.cc -fPIC -DPIC -o .libs/recall_tree.o In file included from io_buf.h:14, from reductions.h:10, from topk.cc:10: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo active.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT active.lo -MD -MP -MF $depbase.Tpo -c -o active.lo active.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT active.lo -MD -MP -MF .deps/active.Tpo -c active.cc -fPIC -DPIC -o .libs/active.o depbase=`echo active_cover.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT active_cover.lo -MD -MP -MF $depbase.Tpo -c -o active_cover.lo active_cover.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT active_cover.lo -MD -MP -MF .deps/active_cover.Tpo -c active_cover.cc -fPIC -DPIC -o .libs/active_cover.o v_array.h: In member function ‘void v_array::resize(size_t) [with T = char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from global_data.h:19, from parse_regressor.h:9, from gd.h:11, from stagewise_poly.cc:4: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from parse_regressor.h:8: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT bs.lo -MD -MP -MF .deps/bs.Tpo -c bs.cc -o bs.o >/dev/null 2>&1 depbase=`echo cs_active.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cs_active.lo -MD -MP -MF $depbase.Tpo -c -o cs_active.lo cs_active.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cs_active.lo -MD -MP -MF .deps/cs_active.Tpo -c cs_active.cc -fPIC -DPIC -o .libs/cs_active.o In file included from io_buf.h:14, from reductions.h:10, from log_multi.cc:11: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = node_pred; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = node_pred]’ log_multi.cc:93:16: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class node_pred’; use assignment instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ log_multi.cc:16:7: note: ‘class node_pred’ declared here 16 | class node_pred | ^~~~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from recall_tree.cc:12: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = recall_tree_ns::node; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = recall_tree_ns::node]’ recall_tree.cc:94:23: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct recall_tree_ns::node’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ recall_tree.cc:29:8: note: ‘struct recall_tree_ns::node’ declared here 29 | struct node | ^~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = recall_tree_ns::node_pred; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = recall_tree_ns::node_pred]’ recall_tree.cc:139:33: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct recall_tree_ns::node_pred’; use assignment instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ recall_tree.cc:21:8: note: ‘struct recall_tree_ns::node_pred’ declared here 21 | struct node_pred | ^~~~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from active.cc:2: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from active_cover.cc:2: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT explore_eval.lo -MD -MP -MF .deps/explore_eval.Tpo -c explore_eval.cc -o explore_eval.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cbify.lo -MD -MP -MF .deps/cbify.Tpo -c cbify.cc -o cbify.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT topk.lo -MD -MP -MF .deps/topk.Tpo -c topk.cc -o topk.o >/dev/null 2>&1 v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from cs_active.cc:2: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = lq_data; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = lq_data]’ cs_active.cc:216:32: required from ‘void predict_or_learn(cs_active&, LEARNER::base_learner&, example&) [with bool is_learn = true; bool is_simulation = true; LEARNER::base_learner = LEARNER::learner]’ cs_active.cc:347:19: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct lq_data’ with no trivial copy-assignment []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cs_active.cc:16:8: note: ‘struct lq_data’ declared here 16 | struct lq_data | ^~~~~~~ v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT log_multi.lo -MD -MP -MF .deps/log_multi.Tpo -c log_multi.cc -o log_multi.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT active.lo -MD -MP -MF .deps/active.Tpo -c active.cc -o active.o >/dev/null 2>&1 depbase=`echo kernel_svm.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT kernel_svm.lo -MD -MP -MF $depbase.Tpo -c -o kernel_svm.lo kernel_svm.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT kernel_svm.lo -MD -MP -MF .deps/kernel_svm.Tpo -c kernel_svm.cc -fPIC -DPIC -o .libs/kernel_svm.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT stagewise_poly.lo -MD -MP -MF .deps/stagewise_poly.Tpo -c stagewise_poly.cc -o stagewise_poly.o >/dev/null 2>&1 depbase=`echo best_constant.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT best_constant.lo -MD -MP -MF $depbase.Tpo -c -o best_constant.lo best_constant.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT best_constant.lo -MD -MP -MF .deps/best_constant.Tpo -c best_constant.cc -fPIC -DPIC -o .libs/best_constant.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT recall_tree.lo -MD -MP -MF .deps/recall_tree.Tpo -c recall_tree.cc -o recall_tree.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT active_cover.lo -MD -MP -MF .deps/active_cover.Tpo -c active_cover.cc -o active_cover.o >/dev/null 2>&1 depbase=`echo ftrl.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT ftrl.lo -MD -MP -MF $depbase.Tpo -c -o ftrl.lo ftrl.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT ftrl.lo -MD -MP -MF .deps/ftrl.Tpo -c ftrl.cc -fPIC -DPIC -o .libs/ftrl.o depbase=`echo svrg.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT svrg.lo -MD -MP -MF $depbase.Tpo -c -o svrg.lo svrg.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT svrg.lo -MD -MP -MF .deps/svrg.Tpo -c svrg.cc -fPIC -DPIC -o .libs/svrg.o depbase=`echo lrqfa.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT lrqfa.lo -MD -MP -MF $depbase.Tpo -c -o lrqfa.lo lrqfa.cc &&\ mv -f $depbase.Tpo $depbase.Plo In file included from global_data.h:19, from vw.h:15, from best_constant.h:3, from best_constant.cc:1: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT lrqfa.lo -MD -MP -MF .deps/lrqfa.Tpo -c lrqfa.cc -fPIC -DPIC -o .libs/lrqfa.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cs_active.lo -MD -MP -MF .deps/cs_active.Tpo -c cs_active.cc -o cs_active.o >/dev/null 2>&1 In file included from parse_primitives.h:10, from parse_example.h:8, from kernel_svm.cc:18: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from memory.h:5, from v_array.h:21: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from parse_example.h:9: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo interact.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT interact.lo -MD -MP -MF $depbase.Tpo -c -o interact.lo interact.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo comp_io.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT comp_io.lo -MD -MP -MF $depbase.Tpo -c -o comp_io.lo comp_io.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT best_constant.lo -MD -MP -MF .deps/best_constant.Tpo -c best_constant.cc -o best_constant.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT interact.lo -MD -MP -MF .deps/interact.Tpo -c interact.cc -fPIC -DPIC -o .libs/interact.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT comp_io.lo -MD -MP -MF .deps/comp_io.Tpo -c comp_io.cc -fPIC -DPIC -o .libs/comp_io.o depbase=`echo interactions.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT interactions.lo -MD -MP -MF $depbase.Tpo -c -o interactions.lo interactions.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT interactions.lo -MD -MP -MF .deps/interactions.Tpo -c interactions.cc -fPIC -DPIC -o .libs/interactions.o In file included from global_data.h:19, from parse_regressor.h:9, from gd.h:11, from ftrl.cc:8: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from parse_regressor.h:8: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT comp_io.lo -MD -MP -MF .deps/comp_io.Tpo -c comp_io.cc -o comp_io.o >/dev/null 2>&1 In file included from global_data.h:19, from parse_regressor.h:9, from gd.h:11, from svrg.cc:5: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from parse_regressor.h:8: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo vw_exception.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT vw_exception.lo -MD -MP -MF $depbase.Tpo -c -o vw_exception.lo vw_exception.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT vw_exception.lo -MD -MP -MF .deps/vw_exception.Tpo -c vw_exception.cc -fPIC -DPIC -o .libs/vw_exception.o In file included from io_buf.h:14, from reductions.h:10, from lrqfa.cc:2: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo vw_validate.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT vw_validate.lo -MD -MP -MF $depbase.Tpo -c -o vw_validate.lo vw_validate.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT vw_validate.lo -MD -MP -MF .deps/vw_validate.Tpo -c vw_validate.cc -fPIC -DPIC -o .libs/vw_validate.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT vw_exception.lo -MD -MP -MF .deps/vw_exception.Tpo -c vw_exception.cc -o vw_exception.o >/dev/null 2>&1 In file included from io_buf.h:14, from reductions.h:10, from interact.cc:8: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ v_array.h: In member function ‘void v_array::resize(size_t) [with T = char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from global_data.h:19, from interactions.h:3, from interactions.cc:1: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo audit_regressor.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT audit_regressor.lo -MD -MP -MF $depbase.Tpo -c -o audit_regressor.lo audit_regressor.cc &&\ mv -f $depbase.Tpo $depbase.Plo depbase=`echo gen_cs_example.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT gen_cs_example.lo -MD -MP -MF $depbase.Tpo -c -o gen_cs_example.lo gen_cs_example.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT audit_regressor.lo -MD -MP -MF .deps/audit_regressor.Tpo -c audit_regressor.cc -fPIC -DPIC -o .libs/audit_regressor.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT gen_cs_example.lo -MD -MP -MF .deps/gen_cs_example.Tpo -c gen_cs_example.cc -fPIC -DPIC -o .libs/gen_cs_example.o v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ depbase=`echo cb_explore.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb_explore.lo -MD -MP -MF $depbase.Tpo -c -o cb_explore.lo cb_explore.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb_explore.lo -MD -MP -MF .deps/cb_explore.Tpo -c cb_explore.cc -fPIC -DPIC -o .libs/cb_explore.o v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT interactions.lo -MD -MP -MF .deps/interactions.Tpo -c interactions.cc -o interactions.o >/dev/null 2>&1 depbase=`echo action_score.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT action_score.lo -MD -MP -MF $depbase.Tpo -c -o action_score.lo action_score.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT action_score.lo -MD -MP -MF .deps/action_score.Tpo -c action_score.cc -fPIC -DPIC -o .libs/action_score.o In file included from global_data.h:19, from vw_validate.cc:6: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT interact.lo -MD -MP -MF .deps/interact.Tpo -c interact.cc -o interact.o >/dev/null 2>&1 depbase=`echo cb_explore_adf.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb_explore_adf.lo -MD -MP -MF $depbase.Tpo -c -o cb_explore_adf.lo cb_explore_adf.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT action_score.lo -MD -MP -MF .deps/action_score.Tpo -c action_score.cc -o action_score.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb_explore_adf.lo -MD -MP -MF .deps/cb_explore_adf.Tpo -c cb_explore_adf.cc -fPIC -DPIC -o .libs/cb_explore_adf.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT vw_validate.lo -MD -MP -MF .deps/vw_validate.Tpo -c vw_validate.cc -o vw_validate.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT lrqfa.lo -MD -MP -MF .deps/lrqfa.Tpo -c lrqfa.cc -o lrqfa.o >/dev/null 2>&1 depbase=`echo OjaNewton.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT OjaNewton.lo -MD -MP -MF $depbase.Tpo -c -o OjaNewton.lo OjaNewton.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT gd.lo -MD -MP -MF .deps/gd.Tpo -c gd.cc -o gd.o >/dev/null 2>&1 depbase=`echo parse_example_json.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_example_json.lo -MD -MP -MF $depbase.Tpo -c -o parse_example_json.lo parse_example_json.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT OjaNewton.lo -MD -MP -MF .deps/OjaNewton.Tpo -c OjaNewton.cc -fPIC -DPIC -o .libs/OjaNewton.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_example_json.lo -MD -MP -MF .deps/parse_example_json.Tpo -c parse_example_json.cc -fPIC -DPIC -o .libs/parse_example_json.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT parse_example_json.lo -MD -MP -MF .deps/parse_example_json.Tpo -c parse_example_json.cc -o parse_example_json.o >/dev/null 2>&1 In file included from io_buf.h:14, from reductions.h:10, from audit_regressor.cc:7: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo baseline.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT baseline.lo -MD -MP -MF $depbase.Tpo -c -o baseline.lo baseline.cc &&\ mv -f $depbase.Tpo $depbase.Plo In file included from global_data.h:19, from vw.h:15, from gen_cs_example.cc:8: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from global_data.h:16: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT baseline.lo -MD -MP -MF .deps/baseline.Tpo -c baseline.cc -fPIC -DPIC -o .libs/baseline.o In file included from io_buf.h:14, from reductions.h:10, from cb_explore.cc:1: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo classweight.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT classweight.lo -MD -MP -MF $depbase.Tpo -c -o classweight.lo classweight.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT classweight.lo -MD -MP -MF .deps/classweight.Tpo -c classweight.cc -fPIC -DPIC -o .libs/classweight.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT gen_cs_example.lo -MD -MP -MF .deps/gen_cs_example.Tpo -c gen_cs_example.cc -o gen_cs_example.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT kernel_svm.lo -MD -MP -MF .deps/kernel_svm.Tpo -c kernel_svm.cc -o kernel_svm.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT svrg.lo -MD -MP -MF .deps/svrg.Tpo -c svrg.cc -o svrg.o >/dev/null 2>&1 In file included from io_buf.h:14, from reductions.h:10, from cb_explore_adf.cc:1: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ depbase=`echo allreduce_sockets.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT allreduce_sockets.lo -MD -MP -MF $depbase.Tpo -c -o allreduce_sockets.lo allreduce_sockets.cc &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT allreduce_sockets.lo -MD -MP -MF .deps/allreduce_sockets.Tpo -c allreduce_sockets.cc -fPIC -DPIC -o .libs/allreduce_sockets.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT ftrl.lo -MD -MP -MF .deps/ftrl.Tpo -c ftrl.cc -o ftrl.o >/dev/null 2>&1 depbase=`echo allreduce_threads.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT allreduce_threads.lo -MD -MP -MF $depbase.Tpo -c -o allreduce_threads.lo allreduce_threads.cc &&\ mv -f $depbase.Tpo $depbase.Plo In file included from global_data.h:19, from parse_regressor.h:9, from gd.h:11, from OjaNewton.cc:7: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from parse_regressor.h:8: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from global_data.h:24: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT allreduce_threads.lo -MD -MP -MF .deps/allreduce_threads.Tpo -c allreduce_threfeature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ ads.cc -fPIC -DPIC -o .libs/allreduce_threads.o depbase=`echo active_interactor.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT active_interactor.o -MD -MP -MF $depbase.Tpo -c -o active_interactor.o active_interactor.cc &&\ mv -f $depbase.Tpo $depbase.Po In file included from io_buf.h:14, from reductions.h:10, from baseline.cc:9: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ In file included from io_buf.h:14, from reductions.h:10, from classweight.cc:2: v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ feature_group.h:272:22: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/memory:77, from /usr/include/boost/function/function_base.hpp:16, from /usr/include/boost/function/detail/prologue.hpp:17, from /usr/include/boost/function/function_template.hpp:13, from /usr/include/boost/function/detail/maybe_include.hpp:22, from /usr/include/boost/function/function1.hpp:11, from /usr/include/boost/program_options/value_semantic.hpp:13, from /usr/include/boost/program_options/options_description.hpp:13, from /usr/include/boost/program_options.hpp:15, from reductions.h:7: /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 175 | class shared_ptr : public __shared_ptr<_Tp> | ^~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ feature_group.h:315:24: required from here v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from example.h:17, from reductions.h:11: feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:26:8: note: ‘struct feature_slice’ declared here 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} | ^~~~~~~~~~~~~ v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ feature_group.h:329:24: required from here v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;] 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ feature_group.h:19:8: note: ‘struct feature’ declared here 19 | struct feature //sparse feature definition for the library interface | ^~~~~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT allreduce_threads.lo -MD -MP -MF .deps/allreduce_threads.Tpo -c allreduce_threads.cc -o allreduce_threads.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=link g++ -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -L/srv/build/vg-1.30.0+ds/lib -o active_interactor active_interactor.o -lboost_program_options -L/lib -lz -lpthread libtool: link: g++ -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -o active_interactor active_interactor.o -L/srv/build/vg-1.30.0+ds/lib -lboost_program_options -L/lib -lz -lpthread libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT allreduce_sockets.lo -MD -MP -MF .deps/allreduce_sockets.Tpo -c allreduce_sockets.cc -o allreduce_sockets.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT audit_regressor.lo -MD -MP -MF .deps/audit_regressor.Tpo -c audit_regressor.cc -o audit_regressor.o >/dev/null 2>&1 v_array.h: In member function ‘void v_array::resize(size_t) [with T = unsigned char]’: v_array.h:61:28: warning: pointer may be used after ‘void* realloc(void*, size_t)’ []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free]8;;] 61 | { size_t old_len = _end-_begin; | ~~~~^~~~~~~ v_array.h:62:29: note: call to ‘void* realloc(void*, size_t)’ here 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ during GIMPLE pass: vect OjaNewton.cc: In member function ‘void OjaNewton::check()’: OjaNewton.cc:259:8: internal compiler error: in vect_transform_reduction, at tree-vect-loop.cc:7457 259 | void check() | ^~~~~ 0x18e9327 internal_error(char const*, ...) ???:0 0x6a6c8f fancy_abort(char const*, int, char const*) ???:0 0xf6c43b vect_transform_reduction(_loop_vec_info*, _stmt_vec_info*, gimple_stmt_iterator*, gimple**, _slp_tree*) ???:0 0x18aedcf vect_transform_stmt(vec_info*, _stmt_vec_info*, gimple_stmt_iterator*, _slp_tree*, _slp_instance*) ???:0 0xf79bcf vect_transform_loop(_loop_vec_info*, gimple*) ???:0 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See for instructions. libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb_explore.lo -MD -MP -MF .deps/cb_explore.Tpo -c cb_explore.cc -o cb_explore.o >/dev/null 2>&1 /bin/bash ../libtool --tag=CXX --mode=link g++ -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -L/srv/build/vg-1.30.0+ds/lib -o liballreduce.la -rpath /usr/local/lib allreduce_sockets.lo allreduce_threads.lo vw_exception.lo -lboost_program_options -L/lib -lz -lpthread libtool: link: g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/aarch64-linux-gnu/12/../../../aarch64-linux-gnu/crti.o /usr/lib/gcc/aarch64-linux-gnu/12/crtbeginS.o .libs/allreduce_sockets.o .libs/allreduce_threads.o .libs/vw_exception.o -L/srv/build/vg-1.30.0+ds/lib -lboost_program_options -L/lib -lz -lpthread -L/srv/build/vg-1.30.0+ds/lib/../lib -L/usr/lib/gcc/aarch64-linux-gnu/12 -L/usr/lib/gcc/aarch64-linux-gnu/12/../../../aarch64-linux-gnu -L/usr/lib/gcc/aarch64-linux-gnu/12/../../../../lib -L/lib/aarch64-linux-gnu -L/lib/../lib -L/usr/lib/aarch64-linux-gnu -L/usr/lib/../lib -L. -L/usr/lib/gcc/aarch64-linux-gnu/12/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/aarch64-linux-gnu/12/crtendS.o /usr/lib/gcc/aarch64-linux-gnu/12/../../../aarch64-linux-gnu/crtn.o -O3 -O3 -ggdb -g -g -O2 -fstack-protector-strong -O3 -Wl,-soname -Wl,liballreduce.so.0 -o .libs/liballreduce.so.0.0.0 libtool: link: (cd ".libs" && rm -f "liballreduce.so.0" && ln -s "liballreduce.so.0.0.0" "liballreduce.so.0") libtool: link: (cd ".libs" && rm -f "liballreduce.so" && ln -s "liballreduce.so.0.0.0" "liballreduce.so") libtool: link: ar cr .libs/liballreduce.a allreduce_sockets.o allreduce_threads.o vw_exception.o libtool: link: ranlib .libs/liballreduce.a libtool: link: ( cd ".libs" && rm -f "liballreduce.la" && ln -s "../liballreduce.la" "liballreduce.la" ) libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT baseline.lo -MD -MP -MF .deps/baseline.Tpo -c baseline.cc -o baseline.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT classweight.lo -MD -MP -MF .deps/classweight.Tpo -c classweight.cc -o classweight.o >/dev/null 2>&1 libtool: compile: g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I/include -Wall -Wno-unused-local-typedefs -pedantic -I /usr/include/rapidjson -O3 -fomit-frame-pointer -DNDEBUG -O3 -Werror=return-type -std=c++14 -ggdb -g -g -O2 -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -Wformat -Werror=format-security -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -I/usr/include/fastahack -I/usr/include/smithwaterman -I/usr/include/vcflib -I/usr/include/smithwaterman -I/usr/include/fastahack -I/srv/build/vg-1.30.0+ds/include -isystem /srv/build/vg-1.30.0+ds/include -I. -I/srv/build/vg-1.30.0+ds/src -I/srv/build/vg-1.30.0+ds/src/unittest -I/srv/build/vg-1.30.0+ds/src/subcommand -I/srv/build/vg-1.30.0+ds/include/dynamic -I/usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -MT cb_explore_adf.lo -MD -MP -MF .deps/cb_explore_adf.Tpo -c cb_explore_adf.cc -o cb_explore_adf.o >/dev/null 2>&1 Preprocessed source stored into /tmp/ccWoNVKM.out file, please attach this to your bugreport. === BEGIN GCC DUMP === 12329: // Target: aarch64-linux-gnu 12329: // Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu 12329: // Thread model: posix 12329: // Supported LTO compression algorithms: zlib zstd 12329: // gcc version 12.2.0 (Debian 12.2.0-14) 12329: // 12329: // In file included from global_data.h:19, 12329: // from parse_regressor.h:9, 12329: // from gd.h:11, 12329: // from OjaNewton.cc:7: 12329: // v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = std::shared_ptr, std::__cxx11::basic_string > >; size_t = long unsigned int]’: 12329: // v_array.h:77:7: required from ‘void v_array::erase() [with T = std::shared_ptr, std::__cxx11::basic_string > >]’ 12329: // feature_group.h:272:22: required from here 12329: // v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class std::shared_ptr, std::__cxx11::basic_string > >’; use ‘new’ and ‘delete’ instead [-Wclass-memaccess] 12329: // 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); 12329: // | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12329: // In file included from /usr/include/c++/12/memory:77, 12329: // from /usr/include/boost/function/function_base.hpp:16, 12329: // from /usr/include/boost/function/detail/prologue.hpp:17, 12329: // from /usr/include/boost/function/function_template.hpp:13, 12329: // from /usr/include/boost/function/detail/maybe_include.hpp:22, 12329: // from /usr/include/boost/function/function1.hpp:11, 12329: // from /usr/include/boost/program_options/value_semantic.hpp:13, 12329: // from /usr/include/boost/program_options/options_description.hpp:13, 12329: // from /usr/include/boost/program_options.hpp:15, 12329: // from parse_regressor.h:8: 12329: // /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 12329: // 175 | class shared_ptr : public __shared_ptr<_Tp> 12329: // | ^~~~~~~~~~ 12329: // v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class std::shared_ptr, std::__cxx11::basic_string > >’ with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess] 12329: // 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); 12329: // | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12329: // /usr/include/c++/12/bits/shared_ptr.h:175:11: note: ‘class std::shared_ptr, std::__cxx11::basic_string > >’ declared here 12329: // 175 | class shared_ptr : public __shared_ptr<_Tp> 12329: // | ^~~~~~~~~~ 12329: // v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature_slice; size_t = long unsigned int]’: 12329: // v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature_slice]’ 12329: // feature_group.h:315:24: required from here 12329: // v_array.h:62:29: warning: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct feature_slice’; use ‘new’ and ‘delete’ instead [-Wclass-memaccess] 12329: // 62 | T* temp = (T *)realloc(_begin, sizeof(T) * length); 12329: // | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12329: // In file included from example.h:17, 12329: // from global_data.h:24: 12329: // feature_group.h:26:8: note: ‘struct feature_slice’ declared here 12329: // 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} 12329: // | ^~~~~~~~~~~~~ 12329: // v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct feature_slice’ with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess] 12329: // 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); 12329: // | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12329: // feature_group.h:26:8: note: ‘struct feature_slice’ declared here 12329: // 26 | struct feature_slice //a helper struct for functions using the set {v,i,space_name} 12329: // | ^~~~~~~~~~~~~ 12329: // v_array.h: In instantiation of ‘void v_array::resize(size_t) [with T = feature; size_t = long unsigned int]’: 12329: // v_array.h:94:7: required from ‘void v_array::push_back(const T&) [with T = feature]’ 12329: // feature_group.h:329:24: required from here 12329: // v_array.h:69:15: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct feature’; use assignment or value-initialization instead [-Wclass-memaccess] 12329: // 69 | memset(_begin+old_len, 0, (length-old_len)*sizeof(T)); 12329: // | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12329: // feature_group.h:19:8: note: ‘struct feature’ declared here 12329: // 19 | struct feature //sparse feature definition for the library interface 12329: // | ^~~~~~~ 12329: // during GIMPLE pass: vect 12329: // OjaNewton.cc: In member function ‘void OjaNewton::check()’: 12329: // OjaNewton.cc:259:8: internal compiler error: in vect_transform_reduction, at tree-vect-loop.cc:7457 12329: // 259 | void check() 12329: // | ^~~~~ 12329: // 0x18e9327 internal_error(char const*, ...) 12329: // ???:0 12329: // 0x6a6c8f fancy_abort(char const*, int, char const*) 12329: // ???:0 12329: // 0xf6c43b vect_transform_reduction(_loop_vec_info*, _stmt_vec_info*, gimple_stmt_iterator*, gimple**, _slp_tree*) 12329: // ???:0 12329: // 0x18aedcf vect_transform_stmt(vec_info*, _stmt_vec_info*, gimple_stmt_iterator*, _slp_tree*, _slp_instance*) 12329: // ???:0 12329: // 0xf79bcf vect_transform_loop(_loop_vec_info*, gimple*) 12329: // ???:0 12329: // Please submit a full bug report, with preprocessed source (by using -freport-bug). 12329: // Please include the complete backtrace with any bug report. 12329: // See for instructions. 12329: 12329: // /usr/lib/gcc/aarch64-linux-gnu/12/cc1plus -quiet -I . -I /include -I /usr/include/rapidjson -I /usr/include/fastahack -I /usr/include/smithwaterman -I /usr/include/vcflib -I /usr/include/smithwaterman -I /usr/include/fastahack -I /srv/build/vg-1.30.0+ds/include -I . -I /srv/build/vg-1.30.0+ds/src -I /srv/build/vg-1.30.0+ds/src/unittest -I /srv/build/vg-1.30.0+ds/src/subcommand -I /srv/build/vg-1.30.0+ds/include/dynamic -I /usr/include/cairo -imultiarch aarch64-linux-gnu -MD .libs/OjaNewton.d -MF .deps/OjaNewton.Tpo -MP -MT OjaNewton.lo -D_GNU_SOURCE -D HAVE_CONFIG_H -D _FORTIFY_SOURCE=2 -D NDEBUG -D SIMDE_ENABLE_OPENMP -D PIC -isystem /srv/build/vg-1.30.0+ds/include -isystem /usr/include/glib-2.0 -isystem /usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 OjaNewton.cc -quiet -dumpdir .libs/ -dumpbase OjaNewton.cc -dumpbase-ext .cc -mlittle-endian -mabi=lp64 -ggdb -g -g -O3 -O3 -O2 -O3 -Wdate-time -Wall -Wno-unused-local-typedefs -Wpedantic -Werror=return-type -Wformat=1 -Werror=format-security -std=c++14 -fomit-frame-pointer -ffile-prefix-map=/srv/build/vg-1.30.0+ds=. -fstack-protector-strong -fopenmp-simd -fPIC -fasynchronous-unwind-tables -o - -frandom-seed=0 -fdump-noaddr 12329: 12329: # 0 "OjaNewton.cc" 12329: # 1 "/srv/build/vg-1.30.0+ds/deps/vowpal_wabbit/vowpalwabbit//" 12329: # 0 "" 12329: # 0 "" 12329: # 1 "/usr/include/stdc-predef.h" 1 3 4 12329: # 0 "" 2 12329: # 1 "OjaNewton.cc" 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/string" 1 3 12329: # 36 "/usr/include/c++/12/string" 3 12329: 12329: # 37 "/usr/include/c++/12/string" 3 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++config.h" 1 3 12329: # 296 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++config.h" 3 12329: 12329: # 296 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++config.h" 3 12329: namespace std 12329: { 12329: typedef long unsigned int size_t; 12329: typedef long int ptrdiff_t; 12329: 12329: 12329: typedef decltype(nullptr) nullptr_t; 12329: 12329: 12329: #pragma GCC visibility push(default) 12329: 12329: 12329: extern "C++" __attribute__ ((__noreturn__, __always_inline__)) 12329: inline void __terminate() noexcept 12329: { 12329: void terminate() noexcept __attribute__ ((__noreturn__)); 12329: terminate(); 12329: } 12329: #pragma GCC visibility pop 12329: } 12329: # 329 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++config.h" 3 12329: namespace std 12329: { 12329: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 12329: } 12329: namespace __gnu_cxx 12329: { 12329: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 12329: } 12329: # 508 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++config.h" 3 12329: namespace std 12329: { 12329: #pragma GCC visibility push(default) 12329: 12329: 12329: 12329: 12329: constexpr inline bool 12329: __is_constant_evaluated() noexcept 12329: { 12329: 12329: 12329: 12329: 12329: 12329: return __builtin_is_constant_evaluated(); 12329: 12329: 12329: 12329: } 12329: #pragma GCC visibility pop 12329: } 12329: # 655 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++config.h" 3 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/os_defines.h" 1 3 12329: # 39 "/usr/include/aarch64-linux-gnu/c++/12/bits/os_defines.h" 3 12329: # 1 "/usr/include/features.h" 1 3 4 12329: # 392 "/usr/include/features.h" 3 4 12329: # 1 "/usr/include/features-time64.h" 1 3 4 12329: # 20 "/usr/include/features-time64.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4 12329: # 21 "/usr/include/features-time64.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/timesize.h" 1 3 4 12329: # 22 "/usr/include/features-time64.h" 2 3 4 12329: # 393 "/usr/include/features.h" 2 3 4 12329: # 489 "/usr/include/features.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/sys/cdefs.h" 1 3 4 12329: # 559 "/usr/include/aarch64-linux-gnu/sys/cdefs.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4 12329: # 560 "/usr/include/aarch64-linux-gnu/sys/cdefs.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/long-double.h" 1 3 4 12329: # 561 "/usr/include/aarch64-linux-gnu/sys/cdefs.h" 2 3 4 12329: # 490 "/usr/include/features.h" 2 3 4 12329: # 513 "/usr/include/features.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/gnu/stubs.h" 1 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4 12329: # 6 "/usr/include/aarch64-linux-gnu/gnu/stubs.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h" 1 3 4 12329: # 9 "/usr/include/aarch64-linux-gnu/gnu/stubs.h" 2 3 4 12329: # 514 "/usr/include/features.h" 2 3 4 12329: # 40 "/usr/include/aarch64-linux-gnu/c++/12/bits/os_defines.h" 2 3 12329: # 656 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++config.h" 2 3 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/cpu_defines.h" 1 3 12329: # 659 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++config.h" 2 3 12329: # 39 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/stringfwd.h" 1 3 12329: # 37 "/usr/include/c++/12/bits/stringfwd.h" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/stringfwd.h" 3 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/memoryfwd.h" 1 3 12329: # 46 "/usr/include/c++/12/bits/memoryfwd.h" 3 12329: 12329: # 47 "/usr/include/c++/12/bits/memoryfwd.h" 3 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 63 "/usr/include/c++/12/bits/memoryfwd.h" 3 12329: template 12329: class allocator; 12329: 12329: template<> 12329: class allocator; 12329: 12329: 12329: 12329: template 12329: struct uses_allocator; 12329: 12329: template 12329: struct allocator_traits; 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 41 "/usr/include/c++/12/bits/stringfwd.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct char_traits; 12329: 12329: template<> struct char_traits; 12329: 12329: template<> struct char_traits; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template<> struct char_traits; 12329: template<> struct char_traits; 12329: 12329: 12329: namespace __cxx11 { 12329: 12329: template, 12329: typename _Alloc = allocator<_CharT> > 12329: class basic_string; 12329: 12329: } 12329: 12329: 12329: typedef basic_string string; 12329: 12329: 12329: typedef basic_string wstring; 12329: # 89 "/usr/include/c++/12/bits/stringfwd.h" 3 12329: typedef basic_string u16string; 12329: 12329: 12329: typedef basic_string u32string; 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 40 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/char_traits.h" 1 3 12329: # 37 "/usr/include/c++/12/bits/char_traits.h" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/char_traits.h" 3 12329: 12329: # 1 "/usr/include/c++/12/bits/postypes.h" 1 3 12329: # 38 "/usr/include/c++/12/bits/postypes.h" 3 12329: 12329: # 39 "/usr/include/c++/12/bits/postypes.h" 3 12329: 12329: # 1 "/usr/include/c++/12/cwchar" 1 3 12329: # 39 "/usr/include/c++/12/cwchar" 3 12329: 12329: # 40 "/usr/include/c++/12/cwchar" 3 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/wchar.h" 1 3 4 12329: # 27 "/usr/include/wchar.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/libc-header-start.h" 1 3 4 12329: # 28 "/usr/include/wchar.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/floatn.h" 1 3 4 12329: # 23 "/usr/include/aarch64-linux-gnu/bits/floatn.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/long-double.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/floatn.h" 2 3 4 12329: # 80 "/usr/include/aarch64-linux-gnu/bits/floatn.h" 3 4 12329: typedef long double _Float128; 12329: # 95 "/usr/include/aarch64-linux-gnu/bits/floatn.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/floatn-common.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/floatn-common.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/long-double.h" 1 3 4 12329: # 25 "/usr/include/aarch64-linux-gnu/bits/floatn-common.h" 2 3 4 12329: # 214 "/usr/include/aarch64-linux-gnu/bits/floatn-common.h" 3 4 12329: typedef float _Float32; 12329: # 251 "/usr/include/aarch64-linux-gnu/bits/floatn-common.h" 3 4 12329: typedef double _Float64; 12329: # 268 "/usr/include/aarch64-linux-gnu/bits/floatn-common.h" 3 4 12329: typedef double _Float32x; 12329: # 285 "/usr/include/aarch64-linux-gnu/bits/floatn-common.h" 3 4 12329: typedef long double _Float64x; 12329: # 96 "/usr/include/aarch64-linux-gnu/bits/floatn.h" 2 3 4 12329: # 31 "/usr/include/wchar.h" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 214 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 3 4 12329: typedef long unsigned int size_t; 12329: # 36 "/usr/include/wchar.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stdarg.h" 1 3 4 12329: # 40 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stdarg.h" 3 4 12329: typedef __builtin_va_list __gnuc_va_list; 12329: # 39 "/usr/include/wchar.h" 2 3 4 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/wchar.h" 1 3 4 12329: # 41 "/usr/include/wchar.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/wint_t.h" 1 3 4 12329: # 20 "/usr/include/aarch64-linux-gnu/bits/types/wint_t.h" 3 4 12329: typedef unsigned int wint_t; 12329: # 42 "/usr/include/wchar.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/mbstate_t.h" 1 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h" 1 3 4 12329: # 13 "/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h" 3 4 12329: typedef struct 12329: { 12329: int __count; 12329: union 12329: { 12329: unsigned int __wch; 12329: char __wchb[4]; 12329: } __value; 12329: } __mbstate_t; 12329: # 5 "/usr/include/aarch64-linux-gnu/bits/types/mbstate_t.h" 2 3 4 12329: 12329: typedef __mbstate_t mbstate_t; 12329: # 43 "/usr/include/wchar.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/__FILE.h" 1 3 4 12329: 12329: 12329: 12329: struct _IO_FILE; 12329: typedef struct _IO_FILE __FILE; 12329: # 44 "/usr/include/wchar.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/FILE.h" 1 3 4 12329: 12329: 12329: 12329: struct _IO_FILE; 12329: 12329: 12329: typedef struct _IO_FILE FILE; 12329: # 47 "/usr/include/wchar.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/locale_t.h" 1 3 4 12329: # 22 "/usr/include/aarch64-linux-gnu/bits/types/locale_t.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h" 1 3 4 12329: # 27 "/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h" 3 4 12329: struct __locale_struct 12329: { 12329: 12329: struct __locale_data *__locales[13]; 12329: 12329: 12329: const unsigned short int *__ctype_b; 12329: const int *__ctype_tolower; 12329: const int *__ctype_toupper; 12329: 12329: 12329: const char *__names[13]; 12329: }; 12329: 12329: typedef struct __locale_struct *__locale_t; 12329: # 23 "/usr/include/aarch64-linux-gnu/bits/types/locale_t.h" 2 3 4 12329: 12329: typedef __locale_t locale_t; 12329: # 50 "/usr/include/wchar.h" 2 3 4 12329: # 79 "/usr/include/wchar.h" 3 4 12329: extern "C" { 12329: 12329: 12329: 12329: struct tm; 12329: 12329: 12329: 12329: extern wchar_t *wcscpy (wchar_t *__restrict __dest, 12329: const wchar_t *__restrict __src) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern wchar_t *wcsncpy (wchar_t *__restrict __dest, 12329: const wchar_t *__restrict __src, size_t __n) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern wchar_t *wcscat (wchar_t *__restrict __dest, 12329: const wchar_t *__restrict __src) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: extern wchar_t *wcsncat (wchar_t *__restrict __dest, 12329: const wchar_t *__restrict __src, size_t __n) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) noexcept (true); 12329: 12329: 12329: extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, 12329: size_t __n) noexcept (true); 12329: 12329: 12329: 12329: extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 12329: locale_t __loc) noexcept (true); 12329: 12329: extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 12329: size_t __n, locale_t __loc) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) noexcept (true); 12329: 12329: 12329: 12329: extern size_t wcsxfrm (wchar_t *__restrict __s1, 12329: const wchar_t *__restrict __s2, size_t __n) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, 12329: locale_t __loc) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, 12329: size_t __n, locale_t __loc) noexcept (true); 12329: 12329: 12329: extern wchar_t *wcsdup (const wchar_t *__s) noexcept (true) 12329: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1))); 12329: 12329: 12329: 12329: 12329: extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) 12329: noexcept (true) __asm ("wcschr") __attribute__ ((__pure__)); 12329: extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) 12329: noexcept (true) __asm ("wcschr") __attribute__ ((__pure__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) 12329: noexcept (true) __asm ("wcsrchr") __attribute__ ((__pure__)); 12329: extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) 12329: noexcept (true) __asm ("wcsrchr") __attribute__ ((__pure__)); 12329: # 182 "/usr/include/wchar.h" 3 4 12329: extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) 12329: noexcept (true) __attribute__ ((__pure__)); 12329: 12329: 12329: 12329: 12329: extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) 12329: noexcept (true) __attribute__ ((__pure__)); 12329: 12329: 12329: extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) 12329: noexcept (true) __attribute__ ((__pure__)); 12329: 12329: 12329: extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) 12329: noexcept (true) __asm ("wcspbrk") __attribute__ ((__pure__)); 12329: extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, 12329: const wchar_t *__accept) 12329: noexcept (true) __asm ("wcspbrk") __attribute__ ((__pure__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) 12329: noexcept (true) __asm ("wcsstr") __attribute__ ((__pure__)); 12329: extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, 12329: const wchar_t *__needle) 12329: noexcept (true) __asm ("wcsstr") __attribute__ ((__pure__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern wchar_t *wcstok (wchar_t *__restrict __s, 12329: const wchar_t *__restrict __delim, 12329: wchar_t **__restrict __ptr) noexcept (true); 12329: 12329: 12329: extern size_t wcslen (const wchar_t *__s) noexcept (true) __attribute__ ((__pure__)); 12329: 12329: 12329: 12329: 12329: extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) 12329: noexcept (true) __asm ("wcswcs") __attribute__ ((__pure__)); 12329: extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, 12329: const wchar_t *__needle) 12329: noexcept (true) __asm ("wcswcs") __attribute__ ((__pure__)); 12329: # 241 "/usr/include/wchar.h" 3 4 12329: extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) 12329: noexcept (true) __attribute__ ((__pure__)); 12329: 12329: 12329: 12329: 12329: 12329: extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) 12329: noexcept (true) __asm ("wmemchr") __attribute__ ((__pure__)); 12329: extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, 12329: size_t __n) 12329: noexcept (true) __asm ("wmemchr") __attribute__ ((__pure__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 12329: noexcept (true) __attribute__ ((__pure__)); 12329: 12329: 12329: extern wchar_t *wmemcpy (wchar_t *__restrict __s1, 12329: const wchar_t *__restrict __s2, size_t __n) noexcept (true); 12329: 12329: 12329: 12329: extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) 12329: noexcept (true); 12329: 12329: 12329: extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern wchar_t *wmempcpy (wchar_t *__restrict __s1, 12329: const wchar_t *__restrict __s2, size_t __n) 12329: noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern wint_t btowc (int __c) noexcept (true); 12329: 12329: 12329: 12329: extern int wctob (wint_t __c) noexcept (true); 12329: 12329: 12329: 12329: extern int mbsinit (const mbstate_t *__ps) noexcept (true) __attribute__ ((__pure__)); 12329: 12329: 12329: 12329: extern size_t mbrtowc (wchar_t *__restrict __pwc, 12329: const char *__restrict __s, size_t __n, 12329: mbstate_t *__restrict __p) noexcept (true); 12329: 12329: 12329: extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, 12329: mbstate_t *__restrict __ps) noexcept (true); 12329: 12329: 12329: extern size_t __mbrlen (const char *__restrict __s, size_t __n, 12329: mbstate_t *__restrict __ps) noexcept (true); 12329: extern size_t mbrlen (const char *__restrict __s, size_t __n, 12329: mbstate_t *__restrict __ps) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern wint_t __btowc_alias (int __c) __asm ("btowc"); 12329: extern __inline __attribute__ ((__gnu_inline__)) wint_t 12329: __attribute__ ((__leaf__)) btowc (int __c) noexcept (true) 12329: { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' 12329: ? (wint_t) __c : __btowc_alias (__c)); } 12329: 12329: extern int __wctob_alias (wint_t __c) __asm ("wctob"); 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: __attribute__ ((__leaf__)) wctob (wint_t __wc) noexcept (true) 12329: { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' 12329: ? (int) __wc : __wctob_alias (__wc)); } 12329: 12329: extern __inline __attribute__ ((__gnu_inline__)) size_t 12329: __attribute__ ((__leaf__)) mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) noexcept (true) 12329: 12329: { return (__ps != __null 12329: ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } 12329: 12329: 12329: 12329: 12329: extern size_t mbsrtowcs (wchar_t *__restrict __dst, 12329: const char **__restrict __src, size_t __len, 12329: mbstate_t *__restrict __ps) noexcept (true); 12329: 12329: 12329: 12329: extern size_t wcsrtombs (char *__restrict __dst, 12329: const wchar_t **__restrict __src, size_t __len, 12329: mbstate_t *__restrict __ps) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern size_t mbsnrtowcs (wchar_t *__restrict __dst, 12329: const char **__restrict __src, size_t __nmc, 12329: size_t __len, mbstate_t *__restrict __ps) noexcept (true); 12329: 12329: 12329: 12329: extern size_t wcsnrtombs (char *__restrict __dst, 12329: const wchar_t **__restrict __src, 12329: size_t __nwc, size_t __len, 12329: mbstate_t *__restrict __ps) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int wcwidth (wchar_t __c) noexcept (true); 12329: 12329: 12329: 12329: extern int wcswidth (const wchar_t *__s, size_t __n) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern double wcstod (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr) noexcept (true); 12329: 12329: 12329: 12329: extern float wcstof (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr) noexcept (true); 12329: extern long double wcstold (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr) noexcept (true); 12329: # 397 "/usr/include/wchar.h" 3 4 12329: extern _Float32 wcstof32 (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64 wcstof64 (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr) noexcept (true); 12329: 12329: 12329: 12329: extern _Float128 wcstof128 (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32x wcstof32x (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64x wcstof64x (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr) noexcept (true); 12329: # 429 "/usr/include/wchar.h" 3 4 12329: extern long int wcstol (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, int __base) noexcept (true); 12329: 12329: 12329: 12329: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, int __base) 12329: noexcept (true); 12329: 12329: 12329: 12329: 12329: __extension__ 12329: extern long long int wcstoll (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, int __base) 12329: noexcept (true); 12329: 12329: 12329: 12329: __extension__ 12329: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, 12329: int __base) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: __extension__ 12329: extern long long int wcstoq (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, int __base) 12329: noexcept (true); 12329: 12329: 12329: 12329: __extension__ 12329: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, 12329: int __base) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long int wcstol_l (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, int __base, 12329: locale_t __loc) noexcept (true); 12329: 12329: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, 12329: int __base, locale_t __loc) noexcept (true); 12329: 12329: __extension__ 12329: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, 12329: int __base, locale_t __loc) noexcept (true); 12329: 12329: __extension__ 12329: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, 12329: int __base, locale_t __loc) 12329: noexcept (true); 12329: 12329: extern double wcstod_l (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, locale_t __loc) 12329: noexcept (true); 12329: 12329: extern float wcstof_l (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, locale_t __loc) 12329: noexcept (true); 12329: 12329: extern long double wcstold_l (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, 12329: locale_t __loc) noexcept (true); 12329: # 512 "/usr/include/wchar.h" 3 4 12329: extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, 12329: locale_t __loc) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, 12329: locale_t __loc) noexcept (true); 12329: 12329: 12329: 12329: extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, 12329: locale_t __loc) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, 12329: locale_t __loc) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64x wcstof64x_l (const wchar_t *__restrict __nptr, 12329: wchar_t **__restrict __endptr, 12329: locale_t __loc) noexcept (true); 12329: # 552 "/usr/include/wchar.h" 3 4 12329: extern wchar_t *wcpcpy (wchar_t *__restrict __dest, 12329: const wchar_t *__restrict __src) noexcept (true); 12329: 12329: 12329: 12329: extern wchar_t *wcpncpy (wchar_t *__restrict __dest, 12329: const wchar_t *__restrict __src, size_t __n) 12329: noexcept (true); 12329: # 581 "/usr/include/wchar.h" 3 4 12329: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) noexcept (true) 12329: __attribute__ ((__malloc__)) ; 12329: 12329: 12329: 12329: 12329: 12329: extern int fwide (__FILE *__fp, int __mode) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int fwprintf (__FILE *__restrict __stream, 12329: const wchar_t *__restrict __format, ...) 12329: ; 12329: 12329: 12329: 12329: 12329: extern int wprintf (const wchar_t *__restrict __format, ...) 12329: ; 12329: 12329: extern int swprintf (wchar_t *__restrict __s, size_t __n, 12329: const wchar_t *__restrict __format, ...) 12329: noexcept (true) ; 12329: 12329: 12329: 12329: 12329: 12329: extern int vfwprintf (__FILE *__restrict __s, 12329: const wchar_t *__restrict __format, 12329: __gnuc_va_list __arg) 12329: ; 12329: 12329: 12329: 12329: 12329: extern int vwprintf (const wchar_t *__restrict __format, 12329: __gnuc_va_list __arg) 12329: ; 12329: 12329: 12329: extern int vswprintf (wchar_t *__restrict __s, size_t __n, 12329: const wchar_t *__restrict __format, 12329: __gnuc_va_list __arg) 12329: noexcept (true) ; 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int fwscanf (__FILE *__restrict __stream, 12329: const wchar_t *__restrict __format, ...) 12329: ; 12329: 12329: 12329: 12329: 12329: extern int wscanf (const wchar_t *__restrict __format, ...) 12329: ; 12329: 12329: extern int swscanf (const wchar_t *__restrict __s, 12329: const wchar_t *__restrict __format, ...) 12329: noexcept (true) ; 12329: # 657 "/usr/include/wchar.h" 3 4 12329: extern int fwscanf (__FILE *__restrict __stream, const wchar_t *__restrict __format, ...) __asm__ ("" "__isoc99_fwscanf") 12329: 12329: 12329: ; 12329: extern int wscanf (const wchar_t *__restrict __format, ...) __asm__ ("" "__isoc99_wscanf") 12329: 12329: ; 12329: extern int swscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, ...) noexcept (true) __asm__ ("" "__isoc99_swscanf") 12329: 12329: 12329: ; 12329: # 688 "/usr/include/wchar.h" 3 4 12329: extern int vfwscanf (__FILE *__restrict __s, 12329: const wchar_t *__restrict __format, 12329: __gnuc_va_list __arg) 12329: ; 12329: 12329: 12329: 12329: 12329: extern int vwscanf (const wchar_t *__restrict __format, 12329: __gnuc_va_list __arg) 12329: ; 12329: 12329: extern int vswscanf (const wchar_t *__restrict __s, 12329: const wchar_t *__restrict __format, 12329: __gnuc_va_list __arg) 12329: noexcept (true) ; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int vfwscanf (__FILE *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfwscanf") 12329: 12329: 12329: ; 12329: extern int vwscanf (const wchar_t *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vwscanf") 12329: 12329: ; 12329: extern int vswscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) noexcept (true) __asm__ ("" "__isoc99_vswscanf") 12329: 12329: 12329: ; 12329: # 744 "/usr/include/wchar.h" 3 4 12329: extern wint_t fgetwc (__FILE *__stream); 12329: extern wint_t getwc (__FILE *__stream); 12329: 12329: 12329: 12329: 12329: 12329: extern wint_t getwchar (void); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern wint_t fputwc (wchar_t __wc, __FILE *__stream); 12329: extern wint_t putwc (wchar_t __wc, __FILE *__stream); 12329: 12329: 12329: 12329: 12329: 12329: extern wint_t putwchar (wchar_t __wc); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, 12329: __FILE *__restrict __stream); 12329: 12329: 12329: 12329: 12329: 12329: extern int fputws (const wchar_t *__restrict __ws, 12329: __FILE *__restrict __stream); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern wint_t ungetwc (wint_t __wc, __FILE *__stream); 12329: # 799 "/usr/include/wchar.h" 3 4 12329: extern wint_t getwc_unlocked (__FILE *__stream); 12329: extern wint_t getwchar_unlocked (void); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern wint_t fgetwc_unlocked (__FILE *__stream); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); 12329: # 825 "/usr/include/wchar.h" 3 4 12329: extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); 12329: extern wint_t putwchar_unlocked (wchar_t __wc); 12329: # 835 "/usr/include/wchar.h" 3 4 12329: extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, 12329: __FILE *__restrict __stream); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int fputws_unlocked (const wchar_t *__restrict __ws, 12329: __FILE *__restrict __stream); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, 12329: const wchar_t *__restrict __format, 12329: const struct tm *__restrict __tp) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, 12329: const wchar_t *__restrict __format, 12329: const struct tm *__restrict __tp, 12329: locale_t __loc) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/wchar2-decl.h" 1 3 4 12329: # 27 "/usr/include/aarch64-linux-gnu/bits/wchar2-decl.h" 3 4 12329: extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1, 12329: const wchar_t *__restrict __s2, size_t __n, 12329: size_t __ns1) noexcept (true); 12329: extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2, 12329: size_t __n, size_t __ns1) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1, 12329: const wchar_t *__restrict __s2, size_t __n, 12329: size_t __ns1) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n, 12329: size_t __ns) noexcept (true); 12329: extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest, 12329: const wchar_t *__restrict __src, 12329: size_t __n) noexcept (true); 12329: extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest, 12329: const wchar_t *__restrict __src, 12329: size_t __destlen) noexcept (true); 12329: extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest, 12329: const wchar_t *__restrict __src, size_t __n, 12329: size_t __destlen) noexcept (true); 12329: extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest, 12329: const wchar_t *__restrict __src, size_t __n, 12329: size_t __destlen) noexcept (true); 12329: extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest, 12329: const wchar_t *__restrict __src, 12329: size_t __destlen) noexcept (true); 12329: extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest, 12329: const wchar_t *__restrict __src, 12329: size_t __n, size_t __destlen) noexcept (true); 12329: extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n, 12329: int __flag, size_t __s_len, 12329: const wchar_t *__restrict __format, ...) 12329: noexcept (true) ; 12329: extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n, 12329: int __flag, size_t __s_len, 12329: const wchar_t *__restrict __format, 12329: __gnuc_va_list __arg) 12329: noexcept (true) ; 12329: 12329: 12329: 12329: extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag, 12329: const wchar_t *__restrict __format, ...); 12329: extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format, 12329: ...); 12329: extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag, 12329: const wchar_t *__restrict __format, 12329: __gnuc_va_list __ap); 12329: extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format, 12329: __gnuc_va_list __ap); 12329: 12329: 12329: 12329: extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n, 12329: __FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size, 12329: int __n, __FILE *__restrict __stream) 12329: __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar, 12329: mbstate_t *__restrict __p, 12329: size_t __buflen) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst, 12329: const char **__restrict __src, 12329: size_t __len, mbstate_t *__restrict __ps, 12329: size_t __dstlen) noexcept (true); 12329: extern size_t __wcsrtombs_chk (char *__restrict __dst, 12329: const wchar_t **__restrict __src, 12329: size_t __len, mbstate_t *__restrict __ps, 12329: size_t __dstlen) noexcept (true); 12329: 12329: 12329: 12329: extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst, 12329: const char **__restrict __src, size_t __nmc, 12329: size_t __len, mbstate_t *__restrict __ps, 12329: size_t __dstlen) noexcept (true); 12329: extern size_t __wcsnrtombs_chk (char *__restrict __dst, 12329: const wchar_t **__restrict __src, 12329: size_t __nwc, size_t __len, 12329: mbstate_t *__restrict __ps, size_t __dstlen) 12329: noexcept (true); 12329: # 869 "/usr/include/wchar.h" 2 3 4 12329: # 879 "/usr/include/wchar.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/wchar2.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/wchar2.h" 3 4 12329: extern wchar_t *__wmemcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) noexcept (true) __asm__ ("" "wmemcpy") 12329: 12329: 12329: ; 12329: extern wchar_t *__wmemcpy_chk_warn (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n, size_t __ns1) noexcept (true) __asm__ ("" "__wmemcpy_chk") 12329: 12329: 12329: 12329: __attribute__((__warning__ ("wmemcpy called with length bigger than size of destination " "buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 12329: __attribute__ ((__leaf__)) wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) noexcept (true) 12329: 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__s1, 0)) && (__builtin_object_size (__s1, 0)) == (long unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= ((__builtin_object_size (__s1, 0))) / ((sizeof (wchar_t))))) && (((long unsigned int) (__n)) <= ((__builtin_object_size (__s1, 0))) / ((sizeof (wchar_t)))))) ? __wmemcpy_alias (__s1, __s2, __n) : ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t)))) && !(((long unsigned int) (__n)) <= (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t)))) ? __wmemcpy_chk_warn (__s1, __s2, __n, (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t))) : __wmemcpy_chk (__s1, __s2, __n, (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t))))) 12329: 12329: ; 12329: } 12329: 12329: 12329: extern wchar_t *__wmemmove_alias (wchar_t *__s1, const wchar_t *__s2, size_t __n) noexcept (true) __asm__ ("" "wmemmove") 12329: 12329: ; 12329: extern wchar_t *__wmemmove_chk_warn (wchar_t *__s1, const wchar_t *__s2, size_t __n, size_t __ns1) noexcept (true) __asm__ ("" "__wmemmove_chk") 12329: 12329: 12329: __attribute__((__warning__ ("wmemmove called with length bigger than size of destination " "buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 12329: __attribute__ ((__leaf__)) wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) noexcept (true) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__s1, 0)) && (__builtin_object_size (__s1, 0)) == (long unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= ((__builtin_object_size (__s1, 0))) / ((sizeof (wchar_t))))) && (((long unsigned int) (__n)) <= ((__builtin_object_size (__s1, 0))) / ((sizeof (wchar_t)))))) ? __wmemmove_alias (__s1, __s2, __n) : ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t)))) && !(((long unsigned int) (__n)) <= (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t)))) ? __wmemmove_chk_warn (__s1, __s2, __n, (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t))) : __wmemmove_chk (__s1, __s2, __n, (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t))))) 12329: 12329: ; 12329: } 12329: 12329: 12329: 12329: extern wchar_t *__wmempcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) noexcept (true) __asm__ ("" "wmempcpy") 12329: 12329: 12329: ; 12329: extern wchar_t *__wmempcpy_chk_warn (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n, size_t __ns1) noexcept (true) __asm__ ("" "__wmempcpy_chk") 12329: 12329: 12329: 12329: __attribute__((__warning__ ("wmempcpy called with length bigger than size of destination " "buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 12329: __attribute__ ((__leaf__)) wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) noexcept (true) 12329: 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__s1, 0)) && (__builtin_object_size (__s1, 0)) == (long unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= ((__builtin_object_size (__s1, 0))) / ((sizeof (wchar_t))))) && (((long unsigned int) (__n)) <= ((__builtin_object_size (__s1, 0))) / ((sizeof (wchar_t)))))) ? __wmempcpy_alias (__s1, __s2, __n) : ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t)))) && !(((long unsigned int) (__n)) <= (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t)))) ? __wmempcpy_chk_warn (__s1, __s2, __n, (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t))) : __wmempcpy_chk (__s1, __s2, __n, (__builtin_object_size (__s1, 0)) / (sizeof (wchar_t))))) 12329: 12329: ; 12329: } 12329: 12329: 12329: 12329: extern wchar_t *__wmemset_alias (wchar_t *__s, wchar_t __c, size_t __n) noexcept (true) __asm__ ("" "wmemset") 12329: ; 12329: extern wchar_t *__wmemset_chk_warn (wchar_t *__s, wchar_t __c, size_t __n, size_t __ns) noexcept (true) __asm__ ("" "__wmemset_chk") 12329: 12329: 12329: __attribute__((__warning__ ("wmemset called with length bigger than size of destination " "buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 12329: __attribute__ ((__leaf__)) wmemset (wchar_t *__s, wchar_t __c, size_t __n) noexcept (true) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__s, 0)) && (__builtin_object_size (__s, 0)) == (long unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= ((__builtin_object_size (__s, 0))) / ((sizeof (wchar_t))))) && (((long unsigned int) (__n)) <= ((__builtin_object_size (__s, 0))) / ((sizeof (wchar_t)))))) ? __wmemset_alias (__s, __c, __n) : ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= (__builtin_object_size (__s, 0)) / (sizeof (wchar_t)))) && !(((long unsigned int) (__n)) <= (__builtin_object_size (__s, 0)) / (sizeof (wchar_t)))) ? __wmemset_chk_warn (__s, __c, __n, (__builtin_object_size (__s, 0)) / (sizeof (wchar_t))) : __wmemset_chk (__s, __c, __n, (__builtin_object_size (__s, 0)) / (sizeof (wchar_t))))) 12329: 12329: ; 12329: } 12329: 12329: 12329: extern wchar_t *__wcscpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) noexcept (true) __asm__ ("" "wcscpy") 12329: 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 12329: __attribute__ ((__leaf__)) wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) noexcept (true) 12329: { 12329: size_t sz = __builtin_object_size (__dest, 2 > 1); 12329: if (sz != (size_t) -1) 12329: return __wcscpy_chk (__dest, __src, sz / sizeof (wchar_t)); 12329: return __wcscpy_alias (__dest, __src); 12329: } 12329: 12329: 12329: extern wchar_t *__wcpcpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) noexcept (true) __asm__ ("" "wcpcpy") 12329: 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 12329: __attribute__ ((__leaf__)) wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) noexcept (true) 12329: { 12329: size_t sz = __builtin_object_size (__dest, 2 > 1); 12329: if (sz != (size_t) -1) 12329: return __wcpcpy_chk (__dest, __src, sz / sizeof (wchar_t)); 12329: return __wcpcpy_alias (__dest, __src); 12329: } 12329: 12329: 12329: extern wchar_t *__wcsncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) __asm__ ("" "wcsncpy") 12329: 12329: 12329: ; 12329: extern wchar_t *__wcsncpy_chk_warn (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n, size_t __destlen) noexcept (true) __asm__ ("" "__wcsncpy_chk") 12329: 12329: 12329: 12329: __attribute__((__warning__ ("wcsncpy called with length bigger than size of destination " "buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 12329: __attribute__ ((__leaf__)) wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) 12329: 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__dest, 2 > 1)) && (__builtin_object_size (__dest, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= ((__builtin_object_size (__dest, 2 > 1))) / ((sizeof (wchar_t))))) && (((long unsigned int) (__n)) <= ((__builtin_object_size (__dest, 2 > 1))) / ((sizeof (wchar_t)))))) ? __wcsncpy_alias (__dest, __src, __n) : ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t)))) && !(((long unsigned int) (__n)) <= (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t)))) ? __wcsncpy_chk_warn (__dest, __src, __n, (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t))) : __wcsncpy_chk (__dest, __src, __n, (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t))))) 12329: 12329: ; 12329: } 12329: 12329: 12329: extern wchar_t *__wcpncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) __asm__ ("" "wcpncpy") 12329: 12329: 12329: ; 12329: extern wchar_t *__wcpncpy_chk_warn (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n, size_t __destlen) noexcept (true) __asm__ ("" "__wcpncpy_chk") 12329: 12329: 12329: 12329: __attribute__((__warning__ ("wcpncpy called with length bigger than size of destination " "buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 12329: __attribute__ ((__leaf__)) wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) 12329: 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__dest, 2 > 1)) && (__builtin_object_size (__dest, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= ((__builtin_object_size (__dest, 2 > 1))) / ((sizeof (wchar_t))))) && (((long unsigned int) (__n)) <= ((__builtin_object_size (__dest, 2 > 1))) / ((sizeof (wchar_t)))))) ? __wcpncpy_alias (__dest, __src, __n) : ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t)))) && !(((long unsigned int) (__n)) <= (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t)))) ? __wcpncpy_chk_warn (__dest, __src, __n, (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t))) : __wcpncpy_chk (__dest, __src, __n, (__builtin_object_size (__dest, 2 > 1)) / (sizeof (wchar_t))))) 12329: 12329: ; 12329: } 12329: 12329: 12329: extern wchar_t *__wcscat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) noexcept (true) __asm__ ("" "wcscat") 12329: 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 12329: __attribute__ ((__leaf__)) wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src) noexcept (true) 12329: { 12329: size_t sz = __builtin_object_size (__dest, 2 > 1); 12329: if (sz != (size_t) -1) 12329: return __wcscat_chk (__dest, __src, sz / sizeof (wchar_t)); 12329: return __wcscat_alias (__dest, __src); 12329: } 12329: 12329: 12329: extern wchar_t *__wcsncat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) __asm__ ("" "wcsncat") 12329: 12329: 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 12329: __attribute__ ((__leaf__)) wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) noexcept (true) 12329: 12329: { 12329: size_t sz = __builtin_object_size (__dest, 2 > 1); 12329: if (sz != (size_t) -1) 12329: return __wcsncat_chk (__dest, __src, __n, sz / sizeof (wchar_t)); 12329: return __wcsncat_alias (__dest, __src, __n); 12329: } 12329: 12329: 12329: 12329: extern int __swprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) noexcept (true) __asm__ ("" "swprintf") 12329: 12329: 12329: ; 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) swprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) noexcept (true) 12329: 12329: { 12329: size_t sz = __builtin_object_size (__s, 2 > 1); 12329: if (sz != (size_t) -1 || 2 > 1) 12329: return __swprintf_chk (__s, __n, 2 - 1, 12329: sz / sizeof (wchar_t), __fmt, __builtin_va_arg_pack ()); 12329: return __swprintf_alias (__s, __n, __fmt, __builtin_va_arg_pack ()); 12329: } 12329: # 230 "/usr/include/aarch64-linux-gnu/bits/wchar2.h" 3 4 12329: extern int __vswprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) noexcept (true) __asm__ ("" "vswprintf") 12329: 12329: 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) vswprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) noexcept (true) 12329: 12329: { 12329: size_t sz = __builtin_object_size (__s, 2 > 1); 12329: if (sz != (size_t) -1 || 2 > 1) 12329: return __vswprintf_chk (__s, __n, 2 - 1, 12329: sz / sizeof (wchar_t), __fmt, __ap); 12329: return __vswprintf_alias (__s, __n, __fmt, __ap); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: wprintf (const wchar_t *__restrict __fmt, ...) 12329: { 12329: return __wprintf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: fwprintf (__FILE *__restrict __stream, const wchar_t *__restrict __fmt, ...) 12329: { 12329: return __fwprintf_chk (__stream, 2 - 1, __fmt, 12329: __builtin_va_arg_pack ()); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: vwprintf (const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 12329: { 12329: return __vwprintf_chk (2 - 1, __fmt, __ap); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: vfwprintf (__FILE *__restrict __stream, 12329: const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 12329: { 12329: return __vfwprintf_chk (__stream, 2 - 1, __fmt, __ap); 12329: } 12329: 12329: 12329: 12329: extern wchar_t *__fgetws_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws") 12329: 12329: __attribute__ ((__warn_unused_result__)); 12329: extern wchar_t *__fgetws_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_chk") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws called with bigger size than length " "of destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 12329: fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 12329: { 12329: size_t sz = __builtin_object_size (__s, 2 > 1); 12329: if (((__builtin_constant_p (sz) && (sz) == (long unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= ((sz)) / ((sizeof (wchar_t))))) && (((long unsigned int) (__n)) <= ((sz)) / ((sizeof (wchar_t))))))) 12329: return __fgetws_alias (__s, __n, __stream); 12329: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= (sz) / (sizeof (wchar_t)))) && !(((long unsigned int) (__n)) <= (sz) / (sizeof (wchar_t))))) 12329: return __fgetws_chk_warn (__s, sz / sizeof (wchar_t), __n, __stream); 12329: return __fgetws_chk (__s, sz / sizeof (wchar_t), __n, __stream); 12329: } 12329: 12329: 12329: extern wchar_t *__fgetws_unlocked_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws_unlocked") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)); 12329: extern wchar_t *__fgetws_unlocked_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_unlocked_chk") 12329: 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws_unlocked called with bigger size than length " "of destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 12329: fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 12329: { 12329: size_t sz = __builtin_object_size (__s, 2 > 1); 12329: if (((__builtin_constant_p (sz) && (sz) == (long unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= ((sz)) / ((sizeof (wchar_t))))) && (((long unsigned int) (__n)) <= ((sz)) / ((sizeof (wchar_t))))))) 12329: return __fgetws_unlocked_alias (__s, __n, __stream); 12329: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= (sz) / (sizeof (wchar_t)))) && !(((long unsigned int) (__n)) <= (sz) / (sizeof (wchar_t))))) 12329: return __fgetws_unlocked_chk_warn (__s, sz / sizeof (wchar_t), __n, 12329: __stream); 12329: return __fgetws_unlocked_chk (__s, sz / sizeof (wchar_t), __n, __stream); 12329: } 12329: 12329: 12329: 12329: extern size_t __wcrtomb_alias (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) noexcept (true) __asm__ ("" "wcrtomb") 12329: 12329: __attribute__ ((__warn_unused_result__)); 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 12329: __attribute__ ((__leaf__)) wcrtomb (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) noexcept (true) 12329: 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 12329: && 16 > __builtin_object_size (__s, 2 > 1)) 12329: return __wcrtomb_chk (__s, __wchar, __ps, __builtin_object_size (__s, 2 > 1)); 12329: return __wcrtomb_alias (__s, __wchar, __ps); 12329: } 12329: 12329: 12329: extern size_t __mbsrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) noexcept (true) __asm__ ("" "mbsrtowcs") 12329: 12329: 12329: 12329: ; 12329: extern size_t __mbsrtowcs_chk_warn (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) noexcept (true) __asm__ ("" "__mbsrtowcs_chk") 12329: 12329: 12329: 12329: 12329: __attribute__((__warning__ ("mbsrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 12329: __attribute__ ((__leaf__)) mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) noexcept (true) 12329: 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__dst, 2 > 1)) && (__builtin_object_size (__dst, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (wchar_t))))) && (((long unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (wchar_t)))))) ? __mbsrtowcs_alias (__dst, __src, __len, __ps) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t)))) && !(((long unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t)))) ? __mbsrtowcs_chk_warn (__dst, __src, __len, __ps, (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t))) : __mbsrtowcs_chk (__dst, __src, __len, __ps, (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t))))) 12329: 12329: ; 12329: } 12329: 12329: 12329: extern size_t __wcsrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) noexcept (true) __asm__ ("" "wcsrtombs") 12329: 12329: 12329: 12329: ; 12329: extern size_t __wcsrtombs_chk_warn (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) noexcept (true) __asm__ ("" "__wcsrtombs_chk") 12329: 12329: 12329: 12329: 12329: __attribute__((__warning__ ("wcsrtombs called with dst buffer smaller than len"))); 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 12329: __attribute__ ((__leaf__)) wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) noexcept (true) 12329: 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__dst, 2 > 1)) && (__builtin_object_size (__dst, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (char))))) && (((long unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (char)))))) ? __wcsrtombs_alias (__dst, __src, __len, __ps) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (char)))) && !(((long unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (char)))) ? __wcsrtombs_chk_warn (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)) : __wcsrtombs_chk (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)))) 12329: 12329: ; 12329: } 12329: 12329: 12329: 12329: extern size_t __mbsnrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) noexcept (true) __asm__ ("" "mbsnrtowcs") 12329: 12329: 12329: 12329: ; 12329: extern size_t __mbsnrtowcs_chk_warn (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) noexcept (true) __asm__ ("" "__mbsnrtowcs_chk") 12329: 12329: 12329: 12329: 12329: __attribute__((__warning__ ("mbsnrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 12329: __attribute__ ((__leaf__)) mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) noexcept (true) 12329: 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__dst, 2 > 1)) && (__builtin_object_size (__dst, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (wchar_t))))) && (((long unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (wchar_t)))))) ? __mbsnrtowcs_alias (__dst, __src, __nmc, __len, __ps) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t)))) && !(((long unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t)))) ? __mbsnrtowcs_chk_warn (__dst, __src, __nmc, __len, __ps, (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t))) : __mbsnrtowcs_chk (__dst, __src, __nmc, __len, __ps, (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t))))) 12329: 12329: ; 12329: } 12329: 12329: 12329: extern size_t __wcsnrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) noexcept (true) __asm__ ("" "wcsnrtombs") 12329: 12329: 12329: 12329: ; 12329: extern size_t __wcsnrtombs_chk_warn (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) noexcept (true) __asm__ ("" "__wcsnrtombs_chk") 12329: 12329: 12329: 12329: 12329: 12329: __attribute__((__warning__ ("wcsnrtombs called with dst buffer smaller than len"))); 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 12329: __attribute__ ((__leaf__)) wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) noexcept (true) 12329: 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__dst, 2 > 1)) && (__builtin_object_size (__dst, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (char))))) && (((long unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (char)))))) ? __wcsnrtombs_alias (__dst, __src, __nwc, __len, __ps) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (char)))) && !(((long unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (char)))) ? __wcsnrtombs_chk_warn (__dst, __src, __nwc, __len, __ps, __builtin_object_size (__dst, 2 > 1)) : __wcsnrtombs_chk (__dst, __src, __nwc, __len, __ps, __builtin_object_size (__dst, 2 > 1)))) 12329: 12329: ; 12329: } 12329: # 880 "/usr/include/wchar.h" 2 3 4 12329: 12329: 12329: } 12329: # 45 "/usr/include/c++/12/cwchar" 2 3 12329: # 62 "/usr/include/c++/12/cwchar" 3 12329: namespace std 12329: { 12329: using ::mbstate_t; 12329: } 12329: # 135 "/usr/include/c++/12/cwchar" 3 12329: extern "C++" 12329: { 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: using ::wint_t; 12329: 12329: using ::btowc; 12329: using ::fgetwc; 12329: using ::fgetws; 12329: using ::fputwc; 12329: using ::fputws; 12329: using ::fwide; 12329: using ::fwprintf; 12329: using ::fwscanf; 12329: using ::getwc; 12329: using ::getwchar; 12329: using ::mbrlen; 12329: using ::mbrtowc; 12329: using ::mbsinit; 12329: using ::mbsrtowcs; 12329: using ::putwc; 12329: using ::putwchar; 12329: 12329: using ::swprintf; 12329: 12329: using ::swscanf; 12329: using ::ungetwc; 12329: using ::vfwprintf; 12329: 12329: using ::vfwscanf; 12329: 12329: 12329: using ::vswprintf; 12329: 12329: 12329: using ::vswscanf; 12329: 12329: using ::vwprintf; 12329: 12329: using ::vwscanf; 12329: 12329: using ::wcrtomb; 12329: using ::wcscat; 12329: using ::wcscmp; 12329: using ::wcscoll; 12329: using ::wcscpy; 12329: using ::wcscspn; 12329: using ::wcsftime; 12329: using ::wcslen; 12329: using ::wcsncat; 12329: using ::wcsncmp; 12329: using ::wcsncpy; 12329: using ::wcsrtombs; 12329: using ::wcsspn; 12329: using ::wcstod; 12329: 12329: using ::wcstof; 12329: 12329: using ::wcstok; 12329: using ::wcstol; 12329: using ::wcstoul; 12329: using ::wcsxfrm; 12329: using ::wctob; 12329: using ::wmemcmp; 12329: using ::wmemcpy; 12329: using ::wmemmove; 12329: using ::wmemset; 12329: using ::wprintf; 12329: using ::wscanf; 12329: using ::wcschr; 12329: using ::wcspbrk; 12329: using ::wcsrchr; 12329: using ::wcsstr; 12329: using ::wmemchr; 12329: # 234 "/usr/include/c++/12/cwchar" 3 12329: 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace __gnu_cxx 12329: { 12329: 12329: 12329: 12329: 12329: 12329: using ::wcstold; 12329: # 260 "/usr/include/c++/12/cwchar" 3 12329: using ::wcstoll; 12329: using ::wcstoull; 12329: 12329: } 12329: 12329: namespace std 12329: { 12329: using ::__gnu_cxx::wcstold; 12329: using ::__gnu_cxx::wcstoll; 12329: using ::__gnu_cxx::wcstoull; 12329: } 12329: # 280 "/usr/include/c++/12/cwchar" 3 12329: namespace std 12329: { 12329: 12329: using std::wcstof; 12329: 12329: 12329: using std::vfwscanf; 12329: 12329: 12329: using std::vswscanf; 12329: 12329: 12329: using std::vwscanf; 12329: 12329: 12329: 12329: using std::wcstold; 12329: using std::wcstoll; 12329: using std::wcstoull; 12329: 12329: } 12329: # 41 "/usr/include/c++/12/bits/postypes.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 62 "/usr/include/c++/12/bits/postypes.h" 3 12329: typedef long int streamoff; 12329: 12329: 12329: 12329: 12329: 12329: typedef ptrdiff_t streamsize; 12329: # 81 "/usr/include/c++/12/bits/postypes.h" 3 12329: template 12329: class fpos 12329: { 12329: private: 12329: streamoff _M_off; 12329: _StateT _M_state; 12329: 12329: public: 12329: 12329: 12329: 12329: 12329: fpos() 12329: : _M_off(0), _M_state() { } 12329: # 103 "/usr/include/c++/12/bits/postypes.h" 3 12329: fpos(streamoff __off) 12329: : _M_off(__off), _M_state() { } 12329: 12329: 12329: fpos(const fpos&) = default; 12329: fpos& operator=(const fpos&) = default; 12329: ~fpos() = default; 12329: 12329: 12329: 12329: operator streamoff() const { return _M_off; } 12329: 12329: 12329: void 12329: state(_StateT __st) 12329: { _M_state = __st; } 12329: 12329: 12329: _StateT 12329: state() const 12329: { return _M_state; } 12329: 12329: 12329: 12329: 12329: 12329: fpos& 12329: operator+=(streamoff __off) 12329: { 12329: _M_off += __off; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: fpos& 12329: operator-=(streamoff __off) 12329: { 12329: _M_off -= __off; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: fpos 12329: operator+(streamoff __off) const 12329: { 12329: fpos __pos(*this); 12329: __pos += __off; 12329: return __pos; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: fpos 12329: operator-(streamoff __off) const 12329: { 12329: fpos __pos(*this); 12329: __pos -= __off; 12329: return __pos; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: streamoff 12329: operator-(const fpos& __other) const 12329: { return _M_off - __other._M_off; } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 12329: { return streamoff(__lhs) == streamoff(__rhs); } 12329: 12329: template 12329: inline bool 12329: operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 12329: { return streamoff(__lhs) != streamoff(__rhs); } 12329: 12329: 12329: 12329: 12329: 12329: typedef fpos streampos; 12329: 12329: typedef fpos wstreampos; 12329: # 215 "/usr/include/c++/12/bits/postypes.h" 3 12329: typedef fpos u16streampos; 12329: 12329: typedef fpos u32streampos; 12329: 12329: 12329: 12329: } 12329: # 40 "/usr/include/c++/12/bits/char_traits.h" 2 3 12329: # 1 "/usr/include/c++/12/cwchar" 1 3 12329: # 39 "/usr/include/c++/12/cwchar" 3 12329: 12329: # 40 "/usr/include/c++/12/cwchar" 3 12329: # 41 "/usr/include/c++/12/bits/char_traits.h" 2 3 12329: 12329: # 1 "/usr/include/c++/12/type_traits" 1 3 12329: # 32 "/usr/include/c++/12/type_traits" 3 12329: 12329: # 33 "/usr/include/c++/12/type_traits" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: class reference_wrapper; 12329: # 61 "/usr/include/c++/12/type_traits" 3 12329: template 12329: struct integral_constant 12329: { 12329: static constexpr _Tp value = __v; 12329: typedef _Tp value_type; 12329: typedef integral_constant<_Tp, __v> type; 12329: constexpr operator value_type() const noexcept { return value; } 12329: 12329: 12329: 12329: 12329: constexpr value_type operator()() const noexcept { return value; } 12329: 12329: }; 12329: 12329: 12329: template 12329: constexpr _Tp integral_constant<_Tp, __v>::value; 12329: 12329: 12329: 12329: using true_type = integral_constant; 12329: 12329: 12329: using false_type = integral_constant; 12329: 12329: 12329: 12329: template 12329: using __bool_constant = integral_constant; 12329: # 103 "/usr/include/c++/12/type_traits" 3 12329: template 12329: struct __conditional 12329: { 12329: template 12329: using type = _Tp; 12329: }; 12329: 12329: template<> 12329: struct __conditional 12329: { 12329: template 12329: using type = _Up; 12329: }; 12329: 12329: 12329: template 12329: using __conditional_t 12329: = typename __conditional<_Cond>::template type<_If, _Else>; 12329: 12329: 12329: template 12329: struct __type_identity 12329: { using type = _Type; }; 12329: 12329: template 12329: using __type_identity_t = typename __type_identity<_Tp>::type; 12329: 12329: template 12329: struct __or_; 12329: 12329: template<> 12329: struct __or_<> 12329: : public false_type 12329: { }; 12329: 12329: template 12329: struct __or_<_B1> 12329: : public _B1 12329: { }; 12329: 12329: template 12329: struct __or_<_B1, _B2> 12329: : public __conditional_t<_B1::value, _B1, _B2> 12329: { }; 12329: 12329: template 12329: struct __or_<_B1, _B2, _B3, _Bn...> 12329: : public __conditional_t<_B1::value, _B1, __or_<_B2, _B3, _Bn...>> 12329: { }; 12329: 12329: template 12329: struct __and_; 12329: 12329: template<> 12329: struct __and_<> 12329: : public true_type 12329: { }; 12329: 12329: template 12329: struct __and_<_B1> 12329: : public _B1 12329: { }; 12329: 12329: template 12329: struct __and_<_B1, _B2> 12329: : public __conditional_t<_B1::value, _B2, _B1> 12329: { }; 12329: 12329: template 12329: struct __and_<_B1, _B2, _B3, _Bn...> 12329: : public __conditional_t<_B1::value, __and_<_B2, _B3, _Bn...>, _B1> 12329: { }; 12329: 12329: template 12329: struct __not_ 12329: : public __bool_constant 12329: { }; 12329: # 224 "/usr/include/c++/12/type_traits" 3 12329: template 12329: struct is_reference; 12329: template 12329: struct is_function; 12329: template 12329: struct is_void; 12329: template 12329: struct remove_cv; 12329: template 12329: struct is_const; 12329: 12329: 12329: template 12329: struct __is_array_unknown_bounds; 12329: 12329: 12329: 12329: 12329: template 12329: constexpr true_type __is_complete_or_unbounded(__type_identity<_Tp>) 12329: { return {}; } 12329: 12329: template 12329: constexpr typename __or_< 12329: is_reference<_NestedType>, 12329: is_function<_NestedType>, 12329: is_void<_NestedType>, 12329: __is_array_unknown_bounds<_NestedType> 12329: >::type __is_complete_or_unbounded(_TypeIdentity) 12329: { return {}; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct __success_type 12329: { typedef _Tp type; }; 12329: 12329: struct __failure_type 12329: { }; 12329: 12329: 12329: template 12329: using __remove_cv_t = typename remove_cv<_Tp>::type; 12329: 12329: 12329: 12329: template 12329: struct __is_void_helper 12329: : public false_type { }; 12329: 12329: template<> 12329: struct __is_void_helper 12329: : public true_type { }; 12329: 12329: 12329: 12329: template 12329: struct is_void 12329: : public __is_void_helper<__remove_cv_t<_Tp>>::type 12329: { }; 12329: 12329: 12329: template 12329: struct __is_integral_helper 12329: : public false_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: 12329: 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_integral_helper 12329: : public true_type { }; 12329: # 412 "/usr/include/c++/12/type_traits" 3 12329: template 12329: struct is_integral 12329: : public __is_integral_helper<__remove_cv_t<_Tp>>::type 12329: { }; 12329: 12329: 12329: template 12329: struct __is_floating_point_helper 12329: : public false_type { }; 12329: 12329: template<> 12329: struct __is_floating_point_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_floating_point_helper 12329: : public true_type { }; 12329: 12329: template<> 12329: struct __is_floating_point_helper 12329: : public true_type { }; 12329: # 442 "/usr/include/c++/12/type_traits" 3 12329: template 12329: struct is_floating_point 12329: : public __is_floating_point_helper<__remove_cv_t<_Tp>>::type 12329: { }; 12329: 12329: 12329: template 12329: struct is_array 12329: : public false_type { }; 12329: 12329: template 12329: struct is_array<_Tp[_Size]> 12329: : public true_type { }; 12329: 12329: template 12329: struct is_array<_Tp[]> 12329: : public true_type { }; 12329: 12329: template 12329: struct __is_pointer_helper 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_pointer_helper<_Tp*> 12329: : public true_type { }; 12329: 12329: 12329: template 12329: struct is_pointer 12329: : public __is_pointer_helper<__remove_cv_t<_Tp>>::type 12329: { }; 12329: 12329: 12329: template 12329: struct is_lvalue_reference 12329: : public false_type { }; 12329: 12329: template 12329: struct is_lvalue_reference<_Tp&> 12329: : public true_type { }; 12329: 12329: 12329: template 12329: struct is_rvalue_reference 12329: : public false_type { }; 12329: 12329: template 12329: struct is_rvalue_reference<_Tp&&> 12329: : public true_type { }; 12329: 12329: template 12329: struct __is_member_object_pointer_helper 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_member_object_pointer_helper<_Tp _Cp::*> 12329: : public __not_>::type { }; 12329: 12329: 12329: template 12329: struct is_member_object_pointer 12329: : public __is_member_object_pointer_helper<__remove_cv_t<_Tp>>::type 12329: { }; 12329: 12329: template 12329: struct __is_member_function_pointer_helper 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_member_function_pointer_helper<_Tp _Cp::*> 12329: : public is_function<_Tp>::type { }; 12329: 12329: 12329: template 12329: struct is_member_function_pointer 12329: : public __is_member_function_pointer_helper<__remove_cv_t<_Tp>>::type 12329: { }; 12329: 12329: 12329: template 12329: struct is_enum 12329: : public integral_constant 12329: { }; 12329: 12329: 12329: template 12329: struct is_union 12329: : public integral_constant 12329: { }; 12329: 12329: 12329: template 12329: struct is_class 12329: : public integral_constant 12329: { }; 12329: 12329: 12329: template 12329: struct is_function 12329: : public __bool_constant::value> { }; 12329: 12329: template 12329: struct is_function<_Tp&> 12329: : public false_type { }; 12329: 12329: template 12329: struct is_function<_Tp&&> 12329: : public false_type { }; 12329: 12329: 12329: 12329: template 12329: struct __is_null_pointer_helper 12329: : public false_type { }; 12329: 12329: template<> 12329: struct __is_null_pointer_helper 12329: : public true_type { }; 12329: 12329: 12329: template 12329: struct is_null_pointer 12329: : public __is_null_pointer_helper<__remove_cv_t<_Tp>>::type 12329: { }; 12329: 12329: 12329: 12329: template 12329: struct __is_nullptr_t 12329: : public is_null_pointer<_Tp> 12329: { } __attribute__ ((__deprecated__ ("use '" "std::is_null_pointer" "' instead"))); 12329: 12329: 12329: 12329: 12329: template 12329: struct is_reference 12329: : public __or_, 12329: is_rvalue_reference<_Tp>>::type 12329: { }; 12329: 12329: 12329: template 12329: struct is_arithmetic 12329: : public __or_, is_floating_point<_Tp>>::type 12329: { }; 12329: 12329: 12329: template 12329: struct is_fundamental 12329: : public __or_, is_void<_Tp>, 12329: is_null_pointer<_Tp>>::type 12329: { }; 12329: 12329: 12329: template 12329: struct is_object 12329: : public __not_<__or_, is_reference<_Tp>, 12329: is_void<_Tp>>>::type 12329: { }; 12329: 12329: template 12329: struct is_member_pointer; 12329: 12329: 12329: template 12329: struct is_scalar 12329: : public __or_, is_enum<_Tp>, is_pointer<_Tp>, 12329: is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type 12329: { }; 12329: 12329: 12329: template 12329: struct is_compound 12329: : public __not_>::type { }; 12329: 12329: 12329: template 12329: struct __is_member_pointer_helper 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_member_pointer_helper<_Tp _Cp::*> 12329: : public true_type { }; 12329: 12329: 12329: 12329: template 12329: struct is_member_pointer 12329: : public __is_member_pointer_helper<__remove_cv_t<_Tp>>::type 12329: { }; 12329: 12329: template 12329: struct is_same; 12329: 12329: 12329: template 12329: using __is_one_of = __or_...>; 12329: 12329: 12329: __extension__ 12329: template 12329: using __is_signed_integer = __is_one_of<__remove_cv_t<_Tp>, 12329: signed char, signed short, signed int, signed long, 12329: signed long long 12329: # 659 "/usr/include/c++/12/type_traits" 3 12329: >; 12329: 12329: 12329: __extension__ 12329: template 12329: using __is_unsigned_integer = __is_one_of<__remove_cv_t<_Tp>, 12329: unsigned char, unsigned short, unsigned int, unsigned long, 12329: unsigned long long 12329: # 679 "/usr/include/c++/12/type_traits" 3 12329: >; 12329: 12329: 12329: template 12329: using __is_standard_integer 12329: = __or_<__is_signed_integer<_Tp>, __is_unsigned_integer<_Tp>>; 12329: 12329: 12329: template using __void_t = void; 12329: 12329: 12329: 12329: template 12329: struct __is_referenceable 12329: : public false_type 12329: { }; 12329: 12329: template 12329: struct __is_referenceable<_Tp, __void_t<_Tp&>> 12329: : public true_type 12329: { }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_const 12329: : public false_type { }; 12329: 12329: template 12329: struct is_const<_Tp const> 12329: : public true_type { }; 12329: 12329: 12329: template 12329: struct is_volatile 12329: : public false_type { }; 12329: 12329: template 12329: struct is_volatile<_Tp volatile> 12329: : public true_type { }; 12329: 12329: 12329: template 12329: struct is_trivial 12329: : public integral_constant 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: struct is_trivially_copyable 12329: : public integral_constant 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: struct is_standard_layout 12329: : public integral_constant 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct 12329: 12329: is_pod 12329: : public integral_constant 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct 12329: 12329: is_literal_type 12329: : public integral_constant 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: struct is_empty 12329: : public integral_constant 12329: { }; 12329: 12329: 12329: template 12329: struct is_polymorphic 12329: : public integral_constant 12329: { }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_final 12329: : public integral_constant 12329: { }; 12329: 12329: 12329: 12329: template 12329: struct is_abstract 12329: : public integral_constant 12329: { }; 12329: 12329: 12329: template::value> 12329: struct __is_signed_helper 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_signed_helper<_Tp, true> 12329: : public integral_constant 12329: { }; 12329: 12329: 12329: 12329: template 12329: struct is_signed 12329: : public __is_signed_helper<_Tp>::type 12329: { }; 12329: 12329: 12329: template 12329: struct is_unsigned 12329: : public __and_, __not_>> 12329: { }; 12329: 12329: 12329: template 12329: _Up 12329: __declval(int); 12329: 12329: template 12329: _Tp 12329: __declval(long); 12329: 12329: 12329: template 12329: auto declval() noexcept -> decltype(__declval<_Tp>(0)); 12329: 12329: template 12329: struct extent; 12329: 12329: template 12329: struct remove_all_extents; 12329: 12329: 12329: template 12329: struct __is_array_known_bounds 12329: : public integral_constant::value > 0)> 12329: { }; 12329: 12329: template 12329: struct __is_array_unknown_bounds 12329: : public __and_, __not_>> 12329: { }; 12329: # 867 "/usr/include/c++/12/type_traits" 3 12329: struct __do_is_destructible_impl 12329: { 12329: template().~_Tp())> 12329: static true_type __test(int); 12329: 12329: template 12329: static false_type __test(...); 12329: }; 12329: 12329: template 12329: struct __is_destructible_impl 12329: : public __do_is_destructible_impl 12329: { 12329: typedef decltype(__test<_Tp>(0)) type; 12329: }; 12329: 12329: template, 12329: __is_array_unknown_bounds<_Tp>, 12329: is_function<_Tp>>::value, 12329: bool = __or_, is_scalar<_Tp>>::value> 12329: struct __is_destructible_safe; 12329: 12329: template 12329: struct __is_destructible_safe<_Tp, false, false> 12329: : public __is_destructible_impl::type>::type 12329: { }; 12329: 12329: template 12329: struct __is_destructible_safe<_Tp, true, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_destructible_safe<_Tp, false, true> 12329: : public true_type { }; 12329: 12329: 12329: 12329: template 12329: struct is_destructible 12329: : public __is_destructible_safe<_Tp>::type 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: struct __do_is_nt_destructible_impl 12329: { 12329: template 12329: static __bool_constant().~_Tp())> 12329: __test(int); 12329: 12329: template 12329: static false_type __test(...); 12329: }; 12329: 12329: template 12329: struct __is_nt_destructible_impl 12329: : public __do_is_nt_destructible_impl 12329: { 12329: typedef decltype(__test<_Tp>(0)) type; 12329: }; 12329: 12329: template, 12329: __is_array_unknown_bounds<_Tp>, 12329: is_function<_Tp>>::value, 12329: bool = __or_, is_scalar<_Tp>>::value> 12329: struct __is_nt_destructible_safe; 12329: 12329: template 12329: struct __is_nt_destructible_safe<_Tp, false, false> 12329: : public __is_nt_destructible_impl::type>::type 12329: { }; 12329: 12329: template 12329: struct __is_nt_destructible_safe<_Tp, true, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_nt_destructible_safe<_Tp, false, true> 12329: : public true_type { }; 12329: 12329: 12329: 12329: template 12329: struct is_nothrow_destructible 12329: : public __is_nt_destructible_safe<_Tp>::type 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: struct __is_constructible_impl 12329: : public __bool_constant<__is_constructible(_Tp, _Args...)> 12329: { }; 12329: 12329: 12329: 12329: template 12329: struct is_constructible 12329: : public __is_constructible_impl<_Tp, _Args...> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: struct is_default_constructible 12329: : public __is_constructible_impl<_Tp>::type 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template::value> 12329: struct __is_copy_constructible_impl; 12329: 12329: template 12329: struct __is_copy_constructible_impl<_Tp, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_copy_constructible_impl<_Tp, true> 12329: : public __is_constructible_impl<_Tp, const _Tp&> 12329: { }; 12329: 12329: 12329: 12329: template 12329: struct is_copy_constructible 12329: : public __is_copy_constructible_impl<_Tp> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template::value> 12329: struct __is_move_constructible_impl; 12329: 12329: template 12329: struct __is_move_constructible_impl<_Tp, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_move_constructible_impl<_Tp, true> 12329: : public __is_constructible_impl<_Tp, _Tp&&> 12329: { }; 12329: 12329: 12329: 12329: template 12329: struct is_move_constructible 12329: : public __is_move_constructible_impl<_Tp> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: using __is_nothrow_constructible_impl 12329: = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>; 12329: 12329: 12329: 12329: template 12329: struct is_nothrow_constructible 12329: : public __is_nothrow_constructible_impl<_Tp, _Args...>::type 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: struct is_nothrow_default_constructible 12329: : public __bool_constant<__is_nothrow_constructible(_Tp)> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template::value> 12329: struct __is_nothrow_copy_constructible_impl; 12329: 12329: template 12329: struct __is_nothrow_copy_constructible_impl<_Tp, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_nothrow_copy_constructible_impl<_Tp, true> 12329: : public __is_nothrow_constructible_impl<_Tp, const _Tp&> 12329: { }; 12329: 12329: 12329: 12329: template 12329: struct is_nothrow_copy_constructible 12329: : public __is_nothrow_copy_constructible_impl<_Tp>::type 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template::value> 12329: struct __is_nothrow_move_constructible_impl; 12329: 12329: template 12329: struct __is_nothrow_move_constructible_impl<_Tp, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_nothrow_move_constructible_impl<_Tp, true> 12329: : public __is_nothrow_constructible_impl<_Tp, _Tp&&> 12329: { }; 12329: 12329: 12329: 12329: template 12329: struct is_nothrow_move_constructible 12329: : public __is_nothrow_move_constructible_impl<_Tp>::type 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: struct is_assignable 12329: : public __bool_constant<__is_assignable(_Tp, _Up)> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: template::value> 12329: struct __is_copy_assignable_impl; 12329: 12329: template 12329: struct __is_copy_assignable_impl<_Tp, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_copy_assignable_impl<_Tp, true> 12329: : public __bool_constant<__is_assignable(_Tp&, const _Tp&)> 12329: { }; 12329: 12329: 12329: template 12329: struct is_copy_assignable 12329: : public __is_copy_assignable_impl<_Tp>::type 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: template::value> 12329: struct __is_move_assignable_impl; 12329: 12329: template 12329: struct __is_move_assignable_impl<_Tp, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_move_assignable_impl<_Tp, true> 12329: : public __bool_constant<__is_assignable(_Tp&, _Tp&&)> 12329: { }; 12329: 12329: 12329: template 12329: struct is_move_assignable 12329: : public __is_move_assignable_impl<_Tp>::type 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: template 12329: using __is_nothrow_assignable_impl 12329: = __bool_constant<__is_nothrow_assignable(_Tp, _Up)>; 12329: 12329: 12329: template 12329: struct is_nothrow_assignable 12329: : public __is_nothrow_assignable_impl<_Tp, _Up> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: template::value> 12329: struct __is_nt_copy_assignable_impl; 12329: 12329: template 12329: struct __is_nt_copy_assignable_impl<_Tp, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_nt_copy_assignable_impl<_Tp, true> 12329: : public __is_nothrow_assignable_impl<_Tp&, const _Tp&> 12329: { }; 12329: 12329: 12329: template 12329: struct is_nothrow_copy_assignable 12329: : public __is_nt_copy_assignable_impl<_Tp> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: template::value> 12329: struct __is_nt_move_assignable_impl; 12329: 12329: template 12329: struct __is_nt_move_assignable_impl<_Tp, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_nt_move_assignable_impl<_Tp, true> 12329: : public __is_nothrow_assignable_impl<_Tp&, _Tp&&> 12329: { }; 12329: 12329: 12329: template 12329: struct is_nothrow_move_assignable 12329: : public __is_nt_move_assignable_impl<_Tp> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: struct is_trivially_constructible 12329: : public __bool_constant<__is_trivially_constructible(_Tp, _Args...)> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: struct is_trivially_default_constructible 12329: : public __bool_constant<__is_trivially_constructible(_Tp)> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: struct __do_is_implicitly_default_constructible_impl 12329: { 12329: template 12329: static void __helper(const _Tp&); 12329: 12329: template 12329: static true_type __test(const _Tp&, 12329: decltype(__helper({}))* = 0); 12329: 12329: static false_type __test(...); 12329: }; 12329: 12329: template 12329: struct __is_implicitly_default_constructible_impl 12329: : public __do_is_implicitly_default_constructible_impl 12329: { 12329: typedef decltype(__test(declval<_Tp>())) type; 12329: }; 12329: 12329: template 12329: struct __is_implicitly_default_constructible_safe 12329: : public __is_implicitly_default_constructible_impl<_Tp>::type 12329: { }; 12329: 12329: template 12329: struct __is_implicitly_default_constructible 12329: : public __and_<__is_constructible_impl<_Tp>, 12329: __is_implicitly_default_constructible_safe<_Tp>> 12329: { }; 12329: 12329: template::value> 12329: struct __is_trivially_copy_constructible_impl; 12329: 12329: template 12329: struct __is_trivially_copy_constructible_impl<_Tp, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_trivially_copy_constructible_impl<_Tp, true> 12329: : public __and_<__is_copy_constructible_impl<_Tp>, 12329: integral_constant> 12329: { }; 12329: 12329: 12329: template 12329: struct is_trivially_copy_constructible 12329: : public __is_trivially_copy_constructible_impl<_Tp> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: template::value> 12329: struct __is_trivially_move_constructible_impl; 12329: 12329: template 12329: struct __is_trivially_move_constructible_impl<_Tp, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_trivially_move_constructible_impl<_Tp, true> 12329: : public __and_<__is_move_constructible_impl<_Tp>, 12329: integral_constant> 12329: { }; 12329: 12329: 12329: template 12329: struct is_trivially_move_constructible 12329: : public __is_trivially_move_constructible_impl<_Tp> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: struct is_trivially_assignable 12329: : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: template::value> 12329: struct __is_trivially_copy_assignable_impl; 12329: 12329: template 12329: struct __is_trivially_copy_assignable_impl<_Tp, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_trivially_copy_assignable_impl<_Tp, true> 12329: : public __bool_constant<__is_trivially_assignable(_Tp&, const _Tp&)> 12329: { }; 12329: 12329: 12329: template 12329: struct is_trivially_copy_assignable 12329: : public __is_trivially_copy_assignable_impl<_Tp> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: template::value> 12329: struct __is_trivially_move_assignable_impl; 12329: 12329: template 12329: struct __is_trivially_move_assignable_impl<_Tp, false> 12329: : public false_type { }; 12329: 12329: template 12329: struct __is_trivially_move_assignable_impl<_Tp, true> 12329: : public __bool_constant<__is_trivially_assignable(_Tp&, _Tp&&)> 12329: { }; 12329: 12329: 12329: template 12329: struct is_trivially_move_assignable 12329: : public __is_trivially_move_assignable_impl<_Tp> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: struct is_trivially_destructible 12329: : public __and_<__is_destructible_safe<_Tp>, 12329: __bool_constant<__has_trivial_destructor(_Tp)>> 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: 12329: template 12329: struct has_virtual_destructor 12329: : public integral_constant 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct alignment_of 12329: : public integral_constant 12329: { 12329: static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), 12329: "template argument must be a complete class or an unbounded array"); 12329: }; 12329: 12329: 12329: template 12329: struct rank 12329: : public integral_constant { }; 12329: 12329: template 12329: struct rank<_Tp[_Size]> 12329: : public integral_constant::value> { }; 12329: 12329: template 12329: struct rank<_Tp[]> 12329: : public integral_constant::value> { }; 12329: 12329: 12329: template 12329: struct extent 12329: : public integral_constant { }; 12329: 12329: template 12329: struct extent<_Tp[_Size], _Uint> 12329: : public integral_constant::value> 12329: { }; 12329: 12329: template 12329: struct extent<_Tp[], _Uint> 12329: : public integral_constant::value> 12329: { }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_same 12329: 12329: : public integral_constant 12329: 12329: 12329: 12329: { }; 12329: # 1445 "/usr/include/c++/12/type_traits" 3 12329: template 12329: struct is_base_of 12329: : public integral_constant 12329: { }; 12329: 12329: template, is_function<_To>, 12329: is_array<_To>>::value> 12329: struct __is_convertible_helper 12329: { 12329: typedef typename is_void<_To>::type type; 12329: }; 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 12329: template 12329: class __is_convertible_helper<_From, _To, false> 12329: { 12329: template 12329: static void __test_aux(_To1) noexcept; 12329: 12329: template(std::declval<_From1>()))> 12329: static true_type 12329: __test(int); 12329: 12329: template 12329: static false_type 12329: __test(...); 12329: 12329: public: 12329: typedef decltype(__test<_From, _To>(0)) type; 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: template 12329: struct is_convertible 12329: : public __is_convertible_helper<_From, _To>::type 12329: { }; 12329: 12329: 12329: template 12329: using __is_array_convertible 12329: = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; 12329: 12329: template, is_function<_To>, 12329: is_array<_To>>::value> 12329: struct __is_nt_convertible_helper 12329: : is_void<_To> 12329: { }; 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 12329: template 12329: class __is_nt_convertible_helper<_From, _To, false> 12329: { 12329: template 12329: static void __test_aux(_To1) noexcept; 12329: 12329: template 12329: static 12329: __bool_constant(std::declval<_From1>()))> 12329: __test(int); 12329: 12329: template 12329: static false_type 12329: __test(...); 12329: 12329: public: 12329: using type = decltype(__test<_From, _To>(0)); 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: template 12329: struct __is_nothrow_convertible 12329: : public __is_nt_convertible_helper<_From, _To>::type 12329: { }; 12329: # 1543 "/usr/include/c++/12/type_traits" 3 12329: template 12329: struct remove_const 12329: { typedef _Tp type; }; 12329: 12329: template 12329: struct remove_const<_Tp const> 12329: { typedef _Tp type; }; 12329: 12329: 12329: template 12329: struct remove_volatile 12329: { typedef _Tp type; }; 12329: 12329: template 12329: struct remove_volatile<_Tp volatile> 12329: { typedef _Tp type; }; 12329: 12329: 12329: template 12329: struct remove_cv 12329: { using type = _Tp; }; 12329: 12329: template 12329: struct remove_cv 12329: { using type = _Tp; }; 12329: 12329: template 12329: struct remove_cv 12329: { using type = _Tp; }; 12329: 12329: template 12329: struct remove_cv 12329: { using type = _Tp; }; 12329: 12329: 12329: template 12329: struct add_const 12329: { typedef _Tp const type; }; 12329: 12329: 12329: template 12329: struct add_volatile 12329: { typedef _Tp volatile type; }; 12329: 12329: 12329: template 12329: struct add_cv 12329: { 12329: typedef typename 12329: add_const::type>::type type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: using remove_const_t = typename remove_const<_Tp>::type; 12329: 12329: 12329: template 12329: using remove_volatile_t = typename remove_volatile<_Tp>::type; 12329: 12329: 12329: template 12329: using remove_cv_t = typename remove_cv<_Tp>::type; 12329: 12329: 12329: template 12329: using add_const_t = typename add_const<_Tp>::type; 12329: 12329: 12329: template 12329: using add_volatile_t = typename add_volatile<_Tp>::type; 12329: 12329: 12329: template 12329: using add_cv_t = typename add_cv<_Tp>::type; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct remove_reference 12329: { typedef _Tp type; }; 12329: 12329: template 12329: struct remove_reference<_Tp&> 12329: { typedef _Tp type; }; 12329: 12329: template 12329: struct remove_reference<_Tp&&> 12329: { typedef _Tp type; }; 12329: 12329: template::value> 12329: struct __add_lvalue_reference_helper 12329: { typedef _Tp type; }; 12329: 12329: template 12329: struct __add_lvalue_reference_helper<_Tp, true> 12329: { typedef _Tp& type; }; 12329: 12329: 12329: template 12329: struct add_lvalue_reference 12329: : public __add_lvalue_reference_helper<_Tp> 12329: { }; 12329: 12329: template::value> 12329: struct __add_rvalue_reference_helper 12329: { typedef _Tp type; }; 12329: 12329: template 12329: struct __add_rvalue_reference_helper<_Tp, true> 12329: { typedef _Tp&& type; }; 12329: 12329: 12329: template 12329: struct add_rvalue_reference 12329: : public __add_rvalue_reference_helper<_Tp> 12329: { }; 12329: 12329: 12329: 12329: template 12329: using remove_reference_t = typename remove_reference<_Tp>::type; 12329: 12329: 12329: template 12329: using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; 12329: 12329: 12329: template 12329: using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct __cv_selector; 12329: 12329: template 12329: struct __cv_selector<_Unqualified, false, false> 12329: { typedef _Unqualified __type; }; 12329: 12329: template 12329: struct __cv_selector<_Unqualified, false, true> 12329: { typedef volatile _Unqualified __type; }; 12329: 12329: template 12329: struct __cv_selector<_Unqualified, true, false> 12329: { typedef const _Unqualified __type; }; 12329: 12329: template 12329: struct __cv_selector<_Unqualified, true, true> 12329: { typedef const volatile _Unqualified __type; }; 12329: 12329: template::value, 12329: bool _IsVol = is_volatile<_Qualified>::value> 12329: class __match_cv_qualifiers 12329: { 12329: typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; 12329: 12329: public: 12329: typedef typename __match::__type __type; 12329: }; 12329: 12329: 12329: template 12329: struct __make_unsigned 12329: { typedef _Tp __type; }; 12329: 12329: template<> 12329: struct __make_unsigned 12329: { typedef unsigned char __type; }; 12329: 12329: template<> 12329: struct __make_unsigned 12329: { typedef unsigned char __type; }; 12329: 12329: template<> 12329: struct __make_unsigned 12329: { typedef unsigned short __type; }; 12329: 12329: template<> 12329: struct __make_unsigned 12329: { typedef unsigned int __type; }; 12329: 12329: template<> 12329: struct __make_unsigned 12329: { typedef unsigned long __type; }; 12329: 12329: template<> 12329: struct __make_unsigned 12329: { typedef unsigned long long __type; }; 12329: # 1771 "/usr/include/c++/12/type_traits" 3 12329: template::value, 12329: bool _IsEnum = is_enum<_Tp>::value> 12329: class __make_unsigned_selector; 12329: 12329: template 12329: class __make_unsigned_selector<_Tp, true, false> 12329: { 12329: using __unsigned_type 12329: = typename __make_unsigned<__remove_cv_t<_Tp>>::__type; 12329: 12329: public: 12329: using __type 12329: = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; 12329: }; 12329: 12329: class __make_unsigned_selector_base 12329: { 12329: protected: 12329: template struct _List { }; 12329: 12329: template 12329: struct _List<_Tp, _Up...> : _List<_Up...> 12329: { static constexpr size_t __size = sizeof(_Tp); }; 12329: 12329: template 12329: struct __select; 12329: 12329: template 12329: struct __select<_Sz, _List<_Uint, _UInts...>, true> 12329: { using __type = _Uint; }; 12329: 12329: template 12329: struct __select<_Sz, _List<_Uint, _UInts...>, false> 12329: : __select<_Sz, _List<_UInts...>> 12329: { }; 12329: }; 12329: 12329: 12329: template 12329: class __make_unsigned_selector<_Tp, false, true> 12329: : __make_unsigned_selector_base 12329: { 12329: 12329: using _UInts = _List; 12329: 12329: using __unsigned_type = typename __select::__type; 12329: 12329: public: 12329: using __type 12329: = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: struct __make_unsigned 12329: { 12329: using __type 12329: = typename __make_unsigned_selector::__type; 12329: }; 12329: # 1845 "/usr/include/c++/12/type_traits" 3 12329: template<> 12329: struct __make_unsigned 12329: { 12329: using __type 12329: = typename __make_unsigned_selector::__type; 12329: }; 12329: 12329: template<> 12329: struct __make_unsigned 12329: { 12329: using __type 12329: = typename __make_unsigned_selector::__type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct make_unsigned 12329: { typedef typename __make_unsigned_selector<_Tp>::__type type; }; 12329: 12329: 12329: template<> 12329: struct make_unsigned; 12329: 12329: 12329: 12329: 12329: template 12329: struct __make_signed 12329: { typedef _Tp __type; }; 12329: 12329: template<> 12329: struct __make_signed 12329: { typedef signed char __type; }; 12329: 12329: template<> 12329: struct __make_signed 12329: { typedef signed char __type; }; 12329: 12329: template<> 12329: struct __make_signed 12329: { typedef signed short __type; }; 12329: 12329: template<> 12329: struct __make_signed 12329: { typedef signed int __type; }; 12329: 12329: template<> 12329: struct __make_signed 12329: { typedef signed long __type; }; 12329: 12329: template<> 12329: struct __make_signed 12329: { typedef signed long long __type; }; 12329: # 1929 "/usr/include/c++/12/type_traits" 3 12329: template::value, 12329: bool _IsEnum = is_enum<_Tp>::value> 12329: class __make_signed_selector; 12329: 12329: template 12329: class __make_signed_selector<_Tp, true, false> 12329: { 12329: using __signed_type 12329: = typename __make_signed<__remove_cv_t<_Tp>>::__type; 12329: 12329: public: 12329: using __type 12329: = typename __match_cv_qualifiers<_Tp, __signed_type>::__type; 12329: }; 12329: 12329: 12329: template 12329: class __make_signed_selector<_Tp, false, true> 12329: { 12329: typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; 12329: 12329: public: 12329: typedef typename __make_signed_selector<__unsigned_type>::__type __type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: struct __make_signed 12329: { 12329: using __type 12329: = typename __make_signed_selector::__type; 12329: }; 12329: # 1975 "/usr/include/c++/12/type_traits" 3 12329: template<> 12329: struct __make_signed 12329: { 12329: using __type 12329: = typename __make_signed_selector::__type; 12329: }; 12329: 12329: template<> 12329: struct __make_signed 12329: { 12329: using __type 12329: = typename __make_signed_selector::__type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct make_signed 12329: { typedef typename __make_signed_selector<_Tp>::__type type; }; 12329: 12329: 12329: template<> 12329: struct make_signed; 12329: 12329: 12329: 12329: template 12329: using make_signed_t = typename make_signed<_Tp>::type; 12329: 12329: 12329: template 12329: using make_unsigned_t = typename make_unsigned<_Tp>::type; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct remove_extent 12329: { typedef _Tp type; }; 12329: 12329: template 12329: struct remove_extent<_Tp[_Size]> 12329: { typedef _Tp type; }; 12329: 12329: template 12329: struct remove_extent<_Tp[]> 12329: { typedef _Tp type; }; 12329: 12329: 12329: template 12329: struct remove_all_extents 12329: { typedef _Tp type; }; 12329: 12329: template 12329: struct remove_all_extents<_Tp[_Size]> 12329: { typedef typename remove_all_extents<_Tp>::type type; }; 12329: 12329: template 12329: struct remove_all_extents<_Tp[]> 12329: { typedef typename remove_all_extents<_Tp>::type type; }; 12329: 12329: 12329: 12329: template 12329: using remove_extent_t = typename remove_extent<_Tp>::type; 12329: 12329: 12329: template 12329: using remove_all_extents_t = typename remove_all_extents<_Tp>::type; 12329: 12329: 12329: 12329: 12329: template 12329: struct __remove_pointer_helper 12329: { typedef _Tp type; }; 12329: 12329: template 12329: struct __remove_pointer_helper<_Tp, _Up*> 12329: { typedef _Up type; }; 12329: 12329: 12329: template 12329: struct remove_pointer 12329: : public __remove_pointer_helper<_Tp, __remove_cv_t<_Tp>> 12329: { }; 12329: 12329: template, 12329: is_void<_Tp>>::value> 12329: struct __add_pointer_helper 12329: { typedef _Tp type; }; 12329: 12329: template 12329: struct __add_pointer_helper<_Tp, true> 12329: { typedef typename remove_reference<_Tp>::type* type; }; 12329: 12329: 12329: template 12329: struct add_pointer 12329: : public __add_pointer_helper<_Tp> 12329: { }; 12329: 12329: 12329: 12329: template 12329: using remove_pointer_t = typename remove_pointer<_Tp>::type; 12329: 12329: 12329: template 12329: using add_pointer_t = typename add_pointer<_Tp>::type; 12329: 12329: 12329: template 12329: struct __aligned_storage_msa 12329: { 12329: union __type 12329: { 12329: unsigned char __data[_Len]; 12329: struct __attribute__((__aligned__)) { } __align; 12329: }; 12329: }; 12329: # 2111 "/usr/include/c++/12/type_traits" 3 12329: template::__type)> 12329: struct aligned_storage 12329: { 12329: union type 12329: { 12329: unsigned char __data[_Len]; 12329: struct __attribute__((__aligned__((_Align)))) { } __align; 12329: }; 12329: }; 12329: 12329: template 12329: struct __strictest_alignment 12329: { 12329: static const size_t _S_alignment = 0; 12329: static const size_t _S_size = 0; 12329: }; 12329: 12329: template 12329: struct __strictest_alignment<_Tp, _Types...> 12329: { 12329: static const size_t _S_alignment = 12329: alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment 12329: ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; 12329: static const size_t _S_size = 12329: sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size 12329: ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; 12329: }; 12329: # 2150 "/usr/include/c++/12/type_traits" 3 12329: template 12329: struct aligned_union 12329: { 12329: private: 12329: static_assert(sizeof...(_Types) != 0, "At least one type is required"); 12329: 12329: using __strictest = __strictest_alignment<_Types...>; 12329: static const size_t _S_len = _Len > __strictest::_S_size 12329: ? _Len : __strictest::_S_size; 12329: public: 12329: 12329: static const size_t alignment_value = __strictest::_S_alignment; 12329: 12329: typedef typename aligned_storage<_S_len, alignment_value>::type type; 12329: }; 12329: 12329: template 12329: const size_t aligned_union<_Len, _Types...>::alignment_value; 12329: 12329: 12329: 12329: 12329: 12329: template::value, 12329: bool _IsFunction = is_function<_Up>::value> 12329: struct __decay_selector; 12329: 12329: 12329: template 12329: struct __decay_selector<_Up, false, false> 12329: { typedef __remove_cv_t<_Up> __type; }; 12329: 12329: template 12329: struct __decay_selector<_Up, true, false> 12329: { typedef typename remove_extent<_Up>::type* __type; }; 12329: 12329: template 12329: struct __decay_selector<_Up, false, true> 12329: { typedef typename add_pointer<_Up>::type __type; }; 12329: 12329: 12329: 12329: template 12329: class decay 12329: { 12329: typedef typename remove_reference<_Tp>::type __remove_type; 12329: 12329: public: 12329: typedef typename __decay_selector<__remove_type>::__type type; 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: struct __strip_reference_wrapper 12329: { 12329: typedef _Tp __type; 12329: }; 12329: 12329: template 12329: struct __strip_reference_wrapper > 12329: { 12329: typedef _Tp& __type; 12329: }; 12329: 12329: 12329: template 12329: using __decay_t = typename decay<_Tp>::type; 12329: 12329: template 12329: using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>; 12329: 12329: 12329: 12329: 12329: template 12329: struct enable_if 12329: { }; 12329: 12329: 12329: template 12329: struct enable_if 12329: { typedef _Tp type; }; 12329: 12329: 12329: 12329: 12329: template 12329: using __enable_if_t = typename enable_if<_Cond, _Tp>::type; 12329: 12329: 12329: template 12329: using _Require = __enable_if_t<__and_<_Cond...>::value>; 12329: 12329: 12329: template 12329: using __remove_cvref_t 12329: = typename remove_cv::type>::type; 12329: 12329: 12329: 12329: 12329: template 12329: struct conditional 12329: { typedef _Iftrue type; }; 12329: 12329: 12329: template 12329: struct conditional 12329: { typedef _Iffalse type; }; 12329: 12329: 12329: template 12329: struct common_type; 12329: 12329: 12329: 12329: 12329: struct __do_common_type_impl 12329: { 12329: template 12329: using __cond_t 12329: = decltype(true ? std::declval<_Tp>() : std::declval<_Up>()); 12329: 12329: 12329: 12329: template 12329: static __success_type<__decay_t<__cond_t<_Tp, _Up>>> 12329: _S_test(int); 12329: # 2290 "/usr/include/c++/12/type_traits" 3 12329: template 12329: static __failure_type 12329: _S_test_2(...); 12329: 12329: template 12329: static decltype(_S_test_2<_Tp, _Up>(0)) 12329: _S_test(...); 12329: }; 12329: 12329: 12329: template<> 12329: struct common_type<> 12329: { }; 12329: 12329: 12329: template 12329: struct common_type<_Tp0> 12329: : public common_type<_Tp0, _Tp0> 12329: { }; 12329: 12329: 12329: template, typename _Dp2 = __decay_t<_Tp2>> 12329: struct __common_type_impl 12329: { 12329: 12329: 12329: using type = common_type<_Dp1, _Dp2>; 12329: }; 12329: 12329: template 12329: struct __common_type_impl<_Tp1, _Tp2, _Tp1, _Tp2> 12329: : private __do_common_type_impl 12329: { 12329: 12329: 12329: using type = decltype(_S_test<_Tp1, _Tp2>(0)); 12329: }; 12329: 12329: 12329: template 12329: struct common_type<_Tp1, _Tp2> 12329: : public __common_type_impl<_Tp1, _Tp2>::type 12329: { }; 12329: 12329: template 12329: struct __common_type_pack 12329: { }; 12329: 12329: template 12329: struct __common_type_fold; 12329: 12329: 12329: template 12329: struct common_type<_Tp1, _Tp2, _Rp...> 12329: : public __common_type_fold, 12329: __common_type_pack<_Rp...>> 12329: { }; 12329: 12329: 12329: 12329: 12329: template 12329: struct __common_type_fold<_CTp, __common_type_pack<_Rp...>, 12329: __void_t> 12329: : public common_type 12329: { }; 12329: 12329: 12329: template 12329: struct __common_type_fold<_CTp, _Rp, void> 12329: { }; 12329: 12329: template::value> 12329: struct __underlying_type_impl 12329: { 12329: using type = __underlying_type(_Tp); 12329: }; 12329: 12329: template 12329: struct __underlying_type_impl<_Tp, false> 12329: { }; 12329: 12329: 12329: 12329: template 12329: struct underlying_type 12329: : public __underlying_type_impl<_Tp> 12329: { }; 12329: 12329: 12329: template 12329: struct __declval_protector 12329: { 12329: static const bool __stop = false; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: auto declval() noexcept -> decltype(__declval<_Tp>(0)) 12329: { 12329: static_assert(__declval_protector<_Tp>::__stop, 12329: "declval() must not be used!"); 12329: return __declval<_Tp>(0); 12329: } 12329: 12329: 12329: template 12329: struct result_of; 12329: 12329: 12329: 12329: 12329: 12329: 12329: struct __invoke_memfun_ref { }; 12329: struct __invoke_memfun_deref { }; 12329: struct __invoke_memobj_ref { }; 12329: struct __invoke_memobj_deref { }; 12329: struct __invoke_other { }; 12329: 12329: 12329: template 12329: struct __result_of_success : __success_type<_Tp> 12329: { using __invoke_type = _Tag; }; 12329: 12329: 12329: struct __result_of_memfun_ref_impl 12329: { 12329: template 12329: static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) 12329: ), __invoke_memfun_ref> _S_test(int); 12329: 12329: template 12329: static __failure_type _S_test(...); 12329: }; 12329: 12329: template 12329: struct __result_of_memfun_ref 12329: : private __result_of_memfun_ref_impl 12329: { 12329: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 12329: }; 12329: 12329: 12329: struct __result_of_memfun_deref_impl 12329: { 12329: template 12329: static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) 12329: ), __invoke_memfun_deref> _S_test(int); 12329: 12329: template 12329: static __failure_type _S_test(...); 12329: }; 12329: 12329: template 12329: struct __result_of_memfun_deref 12329: : private __result_of_memfun_deref_impl 12329: { 12329: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 12329: }; 12329: 12329: 12329: struct __result_of_memobj_ref_impl 12329: { 12329: template 12329: static __result_of_success().*std::declval<_Fp>() 12329: ), __invoke_memobj_ref> _S_test(int); 12329: 12329: template 12329: static __failure_type _S_test(...); 12329: }; 12329: 12329: template 12329: struct __result_of_memobj_ref 12329: : private __result_of_memobj_ref_impl 12329: { 12329: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 12329: }; 12329: 12329: 12329: struct __result_of_memobj_deref_impl 12329: { 12329: template 12329: static __result_of_success()).*std::declval<_Fp>() 12329: ), __invoke_memobj_deref> _S_test(int); 12329: 12329: template 12329: static __failure_type _S_test(...); 12329: }; 12329: 12329: template 12329: struct __result_of_memobj_deref 12329: : private __result_of_memobj_deref_impl 12329: { 12329: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 12329: }; 12329: 12329: template 12329: struct __result_of_memobj; 12329: 12329: template 12329: struct __result_of_memobj<_Res _Class::*, _Arg> 12329: { 12329: typedef __remove_cvref_t<_Arg> _Argval; 12329: typedef _Res _Class::* _MemPtr; 12329: typedef typename __conditional_t<__or_, 12329: is_base_of<_Class, _Argval>>::value, 12329: __result_of_memobj_ref<_MemPtr, _Arg>, 12329: __result_of_memobj_deref<_MemPtr, _Arg> 12329: >::type type; 12329: }; 12329: 12329: template 12329: struct __result_of_memfun; 12329: 12329: template 12329: struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> 12329: { 12329: typedef typename remove_reference<_Arg>::type _Argval; 12329: typedef _Res _Class::* _MemPtr; 12329: typedef typename __conditional_t::value, 12329: __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, 12329: __result_of_memfun_deref<_MemPtr, _Arg, _Args...> 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template> 12329: struct __inv_unwrap 12329: { 12329: using type = _Tp; 12329: }; 12329: 12329: template 12329: struct __inv_unwrap<_Tp, reference_wrapper<_Up>> 12329: { 12329: using type = _Up&; 12329: }; 12329: 12329: template 12329: struct __result_of_impl 12329: { 12329: typedef __failure_type type; 12329: }; 12329: 12329: template 12329: struct __result_of_impl 12329: : public __result_of_memobj<__decay_t<_MemPtr>, 12329: typename __inv_unwrap<_Arg>::type> 12329: { }; 12329: 12329: template 12329: struct __result_of_impl 12329: : public __result_of_memfun<__decay_t<_MemPtr>, 12329: typename __inv_unwrap<_Arg>::type, _Args...> 12329: { }; 12329: 12329: 12329: struct __result_of_other_impl 12329: { 12329: template 12329: static __result_of_success()(std::declval<_Args>()...) 12329: ), __invoke_other> _S_test(int); 12329: 12329: template 12329: static __failure_type _S_test(...); 12329: }; 12329: 12329: template 12329: struct __result_of_impl 12329: : private __result_of_other_impl 12329: { 12329: typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; 12329: }; 12329: 12329: 12329: template 12329: struct __invoke_result 12329: : public __result_of_impl< 12329: is_member_object_pointer< 12329: typename remove_reference<_Functor>::type 12329: >::value, 12329: is_member_function_pointer< 12329: typename remove_reference<_Functor>::type 12329: >::value, 12329: _Functor, _ArgTypes... 12329: >::type 12329: { }; 12329: 12329: 12329: template 12329: struct result_of<_Functor(_ArgTypes...)> 12329: : public __invoke_result<_Functor, _ArgTypes...> 12329: { } ; 12329: 12329: 12329: 12329: template::__type)> 12329: using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; 12329: 12329: template 12329: using aligned_union_t = typename aligned_union<_Len, _Types...>::type; 12329: 12329: 12329: template 12329: using decay_t = typename decay<_Tp>::type; 12329: 12329: 12329: template 12329: using enable_if_t = typename enable_if<_Cond, _Tp>::type; 12329: 12329: 12329: template 12329: using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type; 12329: 12329: 12329: template 12329: using common_type_t = typename common_type<_Tp...>::type; 12329: 12329: 12329: template 12329: using underlying_type_t = typename underlying_type<_Tp>::type; 12329: 12329: 12329: template 12329: using result_of_t = typename result_of<_Tp>::type; 12329: # 2642 "/usr/include/c++/12/type_traits" 3 12329: template class _Op, typename... _Args> 12329: struct __detector 12329: { 12329: using value_t = false_type; 12329: using type = _Default; 12329: }; 12329: 12329: 12329: template class _Op, 12329: typename... _Args> 12329: struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> 12329: { 12329: using value_t = true_type; 12329: using type = _Op<_Args...>; 12329: }; 12329: 12329: 12329: template class _Op, 12329: typename... _Args> 12329: using __detected_or = __detector<_Default, void, _Op, _Args...>; 12329: 12329: 12329: template class _Op, 12329: typename... _Args> 12329: using __detected_or_t 12329: = typename __detected_or<_Default, _Op, _Args...>::type; 12329: # 2684 "/usr/include/c++/12/type_traits" 3 12329: template 12329: struct __is_swappable; 12329: 12329: template 12329: struct __is_nothrow_swappable; 12329: 12329: template 12329: struct __is_tuple_like_impl : false_type 12329: { }; 12329: 12329: 12329: template 12329: struct __is_tuple_like 12329: : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type 12329: { }; 12329: 12329: 12329: template 12329: 12329: inline 12329: _Require<__not_<__is_tuple_like<_Tp>>, 12329: is_move_constructible<_Tp>, 12329: is_move_assignable<_Tp>> 12329: swap(_Tp&, _Tp&) 12329: noexcept(__and_, 12329: is_nothrow_move_assignable<_Tp>>::value); 12329: 12329: template 12329: 12329: inline 12329: __enable_if_t<__is_swappable<_Tp>::value> 12329: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 12329: noexcept(__is_nothrow_swappable<_Tp>::value); 12329: 12329: 12329: namespace __swappable_details { 12329: using std::swap; 12329: 12329: struct __do_is_swappable_impl 12329: { 12329: template(), std::declval<_Tp&>()))> 12329: static true_type __test(int); 12329: 12329: template 12329: static false_type __test(...); 12329: }; 12329: 12329: struct __do_is_nothrow_swappable_impl 12329: { 12329: template 12329: static __bool_constant< 12329: noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) 12329: > __test(int); 12329: 12329: template 12329: static false_type __test(...); 12329: }; 12329: 12329: } 12329: 12329: template 12329: struct __is_swappable_impl 12329: : public __swappable_details::__do_is_swappable_impl 12329: { 12329: typedef decltype(__test<_Tp>(0)) type; 12329: }; 12329: 12329: template 12329: struct __is_nothrow_swappable_impl 12329: : public __swappable_details::__do_is_nothrow_swappable_impl 12329: { 12329: typedef decltype(__test<_Tp>(0)) type; 12329: }; 12329: 12329: template 12329: struct __is_swappable 12329: : public __is_swappable_impl<_Tp>::type 12329: { }; 12329: 12329: template 12329: struct __is_nothrow_swappable 12329: : public __is_nothrow_swappable_impl<_Tp>::type 12329: { }; 12329: # 2907 "/usr/include/c++/12/type_traits" 3 12329: template::value, typename = void> 12329: struct __is_invocable_impl : false_type { }; 12329: 12329: 12329: template 12329: struct __is_invocable_impl<_Result, _Ret, 12329: true, 12329: __void_t> 12329: : true_type 12329: { }; 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 12329: 12329: template 12329: struct __is_invocable_impl<_Result, _Ret, 12329: false, 12329: __void_t> 12329: { 12329: private: 12329: 12329: 12329: static typename _Result::type _S_get(); 12329: 12329: template 12329: static void _S_conv(_Tp); 12329: 12329: 12329: template(_S_get()))> 12329: static true_type 12329: _S_test(int); 12329: 12329: template 12329: static false_type 12329: _S_test(...); 12329: 12329: public: 12329: using type = decltype(_S_test<_Ret>(1)); 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: template 12329: struct __is_invocable 12329: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type 12329: { }; 12329: 12329: template 12329: constexpr bool __call_is_nt(__invoke_memfun_ref) 12329: { 12329: using _Up = typename __inv_unwrap<_Tp>::type; 12329: return noexcept((std::declval<_Up>().*std::declval<_Fn>())( 12329: std::declval<_Args>()...)); 12329: } 12329: 12329: template 12329: constexpr bool __call_is_nt(__invoke_memfun_deref) 12329: { 12329: return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( 12329: std::declval<_Args>()...)); 12329: } 12329: 12329: template 12329: constexpr bool __call_is_nt(__invoke_memobj_ref) 12329: { 12329: using _Up = typename __inv_unwrap<_Tp>::type; 12329: return noexcept(std::declval<_Up>().*std::declval<_Fn>()); 12329: } 12329: 12329: template 12329: constexpr bool __call_is_nt(__invoke_memobj_deref) 12329: { 12329: return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); 12329: } 12329: 12329: template 12329: constexpr bool __call_is_nt(__invoke_other) 12329: { 12329: return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); 12329: } 12329: 12329: template 12329: struct __call_is_nothrow 12329: : __bool_constant< 12329: std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) 12329: > 12329: { }; 12329: 12329: template 12329: using __call_is_nothrow_ 12329: = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; 12329: 12329: 12329: template 12329: struct __is_nothrow_invocable 12329: : __and_<__is_invocable<_Fn, _Args...>, 12329: __call_is_nothrow_<_Fn, _Args...>>::type 12329: { }; 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 12329: struct __nonesuchbase {}; 12329: struct __nonesuch : private __nonesuchbase { 12329: ~__nonesuch() = delete; 12329: __nonesuch(__nonesuch const&) = delete; 12329: void operator=(__nonesuch const&) = delete; 12329: }; 12329: #pragma GCC diagnostic pop 12329: # 3703 "/usr/include/c++/12/type_traits" 3 12329: 12329: } 12329: # 43 "/usr/include/c++/12/bits/char_traits.h" 2 3 12329: # 53 "/usr/include/c++/12/bits/char_traits.h" 3 12329: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wstringop-overflow" 12329: #pragma GCC diagnostic ignored "-Wstringop-overread" 12329: #pragma GCC diagnostic ignored "-Warray-bounds" 12329: # 72 "/usr/include/c++/12/bits/char_traits.h" 3 12329: template 12329: struct _Char_types 12329: { 12329: typedef unsigned long int_type; 12329: typedef std::streampos pos_type; 12329: typedef std::streamoff off_type; 12329: typedef std::mbstate_t state_type; 12329: }; 12329: # 97 "/usr/include/c++/12/bits/char_traits.h" 3 12329: template 12329: struct char_traits 12329: { 12329: typedef _CharT char_type; 12329: typedef typename _Char_types<_CharT>::int_type int_type; 12329: typedef typename _Char_types<_CharT>::pos_type pos_type; 12329: typedef typename _Char_types<_CharT>::off_type off_type; 12329: typedef typename _Char_types<_CharT>::state_type state_type; 12329: 12329: 12329: 12329: 12329: static constexpr void 12329: assign(char_type& __c1, const char_type& __c2) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: __c1 = __c2; 12329: } 12329: 12329: static constexpr bool 12329: eq(const char_type& __c1, const char_type& __c2) 12329: { return __c1 == __c2; } 12329: 12329: static constexpr bool 12329: lt(const char_type& __c1, const char_type& __c2) 12329: { return __c1 < __c2; } 12329: 12329: static constexpr int 12329: compare(const char_type* __s1, const char_type* __s2, std::size_t __n); 12329: 12329: static constexpr std::size_t 12329: length(const char_type* __s); 12329: 12329: static constexpr const char_type* 12329: find(const char_type* __s, std::size_t __n, const char_type& __a); 12329: 12329: static char_type* 12329: move(char_type* __s1, const char_type* __s2, std::size_t __n); 12329: 12329: static char_type* 12329: copy(char_type* __s1, const char_type* __s2, std::size_t __n); 12329: 12329: static char_type* 12329: assign(char_type* __s, std::size_t __n, char_type __a); 12329: 12329: static constexpr char_type 12329: to_char_type(const int_type& __c) 12329: { return static_cast(__c); } 12329: 12329: static constexpr int_type 12329: to_int_type(const char_type& __c) 12329: { return static_cast(__c); } 12329: 12329: static constexpr bool 12329: eq_int_type(const int_type& __c1, const int_type& __c2) 12329: { return __c1 == __c2; } 12329: 12329: static constexpr int_type 12329: eof() 12329: { return static_cast(-1); } 12329: 12329: static constexpr int_type 12329: not_eof(const int_type& __c) 12329: { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } 12329: }; 12329: 12329: template 12329: constexpr int 12329: char_traits<_CharT>:: 12329: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) 12329: { 12329: for (std::size_t __i = 0; __i < __n; ++__i) 12329: if (lt(__s1[__i], __s2[__i])) 12329: return -1; 12329: else if (lt(__s2[__i], __s1[__i])) 12329: return 1; 12329: return 0; 12329: } 12329: 12329: template 12329: constexpr std::size_t 12329: char_traits<_CharT>:: 12329: length(const char_type* __p) 12329: { 12329: std::size_t __i = 0; 12329: while (!eq(__p[__i], char_type())) 12329: ++__i; 12329: return __i; 12329: } 12329: 12329: template 12329: constexpr const typename char_traits<_CharT>::char_type* 12329: char_traits<_CharT>:: 12329: find(const char_type* __s, std::size_t __n, const char_type& __a) 12329: { 12329: for (std::size_t __i = 0; __i < __n; ++__i) 12329: if (eq(__s[__i], __a)) 12329: return __s + __i; 12329: return 0; 12329: } 12329: 12329: template 12329: 12329: typename char_traits<_CharT>::char_type* 12329: char_traits<_CharT>:: 12329: move(char_type* __s1, const char_type* __s2, std::size_t __n) 12329: { 12329: if (__n == 0) 12329: return __s1; 12329: # 248 "/usr/include/c++/12/bits/char_traits.h" 3 12329: __builtin_memmove(__s1, __s2, __n * sizeof(char_type)); 12329: return __s1; 12329: } 12329: 12329: template 12329: 12329: typename char_traits<_CharT>::char_type* 12329: char_traits<_CharT>:: 12329: copy(char_type* __s1, const char_type* __s2, std::size_t __n) 12329: { 12329: # 267 "/usr/include/c++/12/bits/char_traits.h" 3 12329: __builtin_memcpy(__s1, __s2, __n * sizeof(char_type)); 12329: return __s1; 12329: } 12329: 12329: template 12329: 12329: typename char_traits<_CharT>::char_type* 12329: char_traits<_CharT>:: 12329: assign(char_type* __s, std::size_t __n, char_type __a) 12329: { 12329: # 286 "/usr/include/c++/12/bits/char_traits.h" 3 12329: if (sizeof(_CharT) == 1 && __is_trivial(_CharT)) 12329: { 12329: unsigned char __c; 12329: __builtin_memcpy(&__c, __builtin_addressof(__a), 1); 12329: __builtin_memset(__s, __c, __n); 12329: } 12329: else 12329: { 12329: for (std::size_t __i = 0; __i < __n; ++__i) 12329: __s[__i] = __a; 12329: } 12329: return __s; 12329: } 12329: 12329: 12329: } 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 328 "/usr/include/c++/12/bits/char_traits.h" 3 12329: template 12329: struct char_traits : public __gnu_cxx::char_traits<_CharT> 12329: { }; 12329: 12329: 12329: 12329: template<> 12329: struct char_traits 12329: { 12329: typedef char char_type; 12329: typedef int int_type; 12329: typedef streampos pos_type; 12329: typedef streamoff off_type; 12329: typedef mbstate_t state_type; 12329: 12329: 12329: 12329: 12329: static void 12329: assign(char_type& __c1, const char_type& __c2) noexcept 12329: { 12329: 12329: 12329: 12329: 12329: 12329: __c1 = __c2; 12329: } 12329: 12329: static constexpr bool 12329: eq(const char_type& __c1, const char_type& __c2) noexcept 12329: { return __c1 == __c2; } 12329: 12329: static constexpr bool 12329: lt(const char_type& __c1, const char_type& __c2) noexcept 12329: { 12329: 12329: return (static_cast(__c1) 12329: < static_cast(__c2)); 12329: } 12329: 12329: static int 12329: compare(const char_type* __s1, const char_type* __s2, size_t __n) 12329: { 12329: if (__n == 0) 12329: return 0; 12329: # 385 "/usr/include/c++/12/bits/char_traits.h" 3 12329: return __builtin_memcmp(__s1, __s2, __n); 12329: } 12329: 12329: static size_t 12329: length(const char_type* __s) 12329: { 12329: 12329: 12329: 12329: 12329: return __builtin_strlen(__s); 12329: } 12329: 12329: static const char_type* 12329: find(const char_type* __s, size_t __n, const char_type& __a) 12329: { 12329: if (__n == 0) 12329: return 0; 12329: 12329: 12329: 12329: 12329: return static_cast(__builtin_memchr(__s, __a, __n)); 12329: } 12329: 12329: static char_type* 12329: move(char_type* __s1, const char_type* __s2, size_t __n) 12329: { 12329: if (__n == 0) 12329: return __s1; 12329: 12329: 12329: 12329: 12329: return static_cast(__builtin_memmove(__s1, __s2, __n)); 12329: } 12329: 12329: static char_type* 12329: copy(char_type* __s1, const char_type* __s2, size_t __n) 12329: { 12329: if (__n == 0) 12329: return __s1; 12329: 12329: 12329: 12329: 12329: return static_cast(__builtin_memcpy(__s1, __s2, __n)); 12329: } 12329: 12329: static char_type* 12329: assign(char_type* __s, size_t __n, char_type __a) 12329: { 12329: if (__n == 0) 12329: return __s; 12329: 12329: 12329: 12329: 12329: return static_cast(__builtin_memset(__s, __a, __n)); 12329: } 12329: 12329: static constexpr char_type 12329: to_char_type(const int_type& __c) noexcept 12329: { return static_cast(__c); } 12329: 12329: 12329: 12329: static constexpr int_type 12329: to_int_type(const char_type& __c) noexcept 12329: { return static_cast(static_cast(__c)); } 12329: 12329: static constexpr bool 12329: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 12329: { return __c1 == __c2; } 12329: 12329: static constexpr int_type 12329: eof() noexcept 12329: { return static_cast(-1); } 12329: 12329: static constexpr int_type 12329: not_eof(const int_type& __c) noexcept 12329: { return (__c == eof()) ? 0 : __c; } 12329: }; 12329: 12329: 12329: 12329: 12329: template<> 12329: struct char_traits 12329: { 12329: typedef wchar_t char_type; 12329: typedef wint_t int_type; 12329: typedef streamoff off_type; 12329: typedef wstreampos pos_type; 12329: typedef mbstate_t state_type; 12329: 12329: 12329: 12329: 12329: static void 12329: assign(char_type& __c1, const char_type& __c2) noexcept 12329: { 12329: 12329: 12329: 12329: 12329: 12329: __c1 = __c2; 12329: } 12329: 12329: static constexpr bool 12329: eq(const char_type& __c1, const char_type& __c2) noexcept 12329: { return __c1 == __c2; } 12329: 12329: static constexpr bool 12329: lt(const char_type& __c1, const char_type& __c2) noexcept 12329: { return __c1 < __c2; } 12329: 12329: static int 12329: compare(const char_type* __s1, const char_type* __s2, size_t __n) 12329: { 12329: if (__n == 0) 12329: return 0; 12329: 12329: 12329: 12329: 12329: return wmemcmp(__s1, __s2, __n); 12329: } 12329: 12329: static size_t 12329: length(const char_type* __s) 12329: { 12329: 12329: 12329: 12329: 12329: return wcslen(__s); 12329: } 12329: 12329: static const char_type* 12329: find(const char_type* __s, size_t __n, const char_type& __a) 12329: { 12329: if (__n == 0) 12329: return 0; 12329: 12329: 12329: 12329: 12329: return wmemchr(__s, __a, __n); 12329: } 12329: 12329: static char_type* 12329: move(char_type* __s1, const char_type* __s2, size_t __n) 12329: { 12329: if (__n == 0) 12329: return __s1; 12329: 12329: 12329: 12329: 12329: return wmemmove(__s1, __s2, __n); 12329: } 12329: 12329: static char_type* 12329: copy(char_type* __s1, const char_type* __s2, size_t __n) 12329: { 12329: if (__n == 0) 12329: return __s1; 12329: 12329: 12329: 12329: 12329: return wmemcpy(__s1, __s2, __n); 12329: } 12329: 12329: static char_type* 12329: assign(char_type* __s, size_t __n, char_type __a) 12329: { 12329: if (__n == 0) 12329: return __s; 12329: 12329: 12329: 12329: 12329: return wmemset(__s, __a, __n); 12329: } 12329: 12329: static constexpr char_type 12329: to_char_type(const int_type& __c) noexcept 12329: { return char_type(__c); } 12329: 12329: static constexpr int_type 12329: to_int_type(const char_type& __c) noexcept 12329: { return int_type(__c); } 12329: 12329: static constexpr bool 12329: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 12329: { return __c1 == __c2; } 12329: 12329: static constexpr int_type 12329: eof() noexcept 12329: { return static_cast((0xffffffffu)); } 12329: 12329: static constexpr int_type 12329: not_eof(const int_type& __c) noexcept 12329: { return eq_int_type(__c, eof()) ? 0 : __c; } 12329: }; 12329: # 726 "/usr/include/c++/12/bits/char_traits.h" 3 12329: 12329: } 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/cstdint" 1 3 12329: # 32 "/usr/include/c++/12/cstdint" 3 12329: 12329: # 33 "/usr/include/c++/12/cstdint" 3 12329: # 41 "/usr/include/c++/12/cstdint" 3 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stdint.h" 1 3 4 12329: # 9 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stdint.h" 3 4 12329: # 1 "/usr/include/stdint.h" 1 3 4 12329: # 26 "/usr/include/stdint.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/libc-header-start.h" 1 3 4 12329: # 27 "/usr/include/stdint.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types.h" 1 3 4 12329: # 27 "/usr/include/aarch64-linux-gnu/bits/types.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4 12329: # 28 "/usr/include/aarch64-linux-gnu/bits/types.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/timesize.h" 1 3 4 12329: # 29 "/usr/include/aarch64-linux-gnu/bits/types.h" 2 3 4 12329: 12329: 12329: typedef unsigned char __u_char; 12329: typedef unsigned short int __u_short; 12329: typedef unsigned int __u_int; 12329: typedef unsigned long int __u_long; 12329: 12329: 12329: typedef signed char __int8_t; 12329: typedef unsigned char __uint8_t; 12329: typedef signed short int __int16_t; 12329: typedef unsigned short int __uint16_t; 12329: typedef signed int __int32_t; 12329: typedef unsigned int __uint32_t; 12329: 12329: typedef signed long int __int64_t; 12329: typedef unsigned long int __uint64_t; 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef __int8_t __int_least8_t; 12329: typedef __uint8_t __uint_least8_t; 12329: typedef __int16_t __int_least16_t; 12329: typedef __uint16_t __uint_least16_t; 12329: typedef __int32_t __int_least32_t; 12329: typedef __uint32_t __uint_least32_t; 12329: typedef __int64_t __int_least64_t; 12329: typedef __uint64_t __uint_least64_t; 12329: 12329: 12329: 12329: typedef long int __quad_t; 12329: typedef unsigned long int __u_quad_t; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef long int __intmax_t; 12329: typedef unsigned long int __uintmax_t; 12329: # 141 "/usr/include/aarch64-linux-gnu/bits/types.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/typesizes.h" 1 3 4 12329: # 142 "/usr/include/aarch64-linux-gnu/bits/types.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/time64.h" 1 3 4 12329: # 143 "/usr/include/aarch64-linux-gnu/bits/types.h" 2 3 4 12329: 12329: 12329: typedef unsigned long int __dev_t; 12329: typedef unsigned int __uid_t; 12329: typedef unsigned int __gid_t; 12329: typedef unsigned long int __ino_t; 12329: typedef unsigned long int __ino64_t; 12329: typedef unsigned int __mode_t; 12329: typedef unsigned int __nlink_t; 12329: typedef long int __off_t; 12329: typedef long int __off64_t; 12329: typedef int __pid_t; 12329: typedef struct { int __val[2]; } __fsid_t; 12329: typedef long int __clock_t; 12329: typedef unsigned long int __rlim_t; 12329: typedef unsigned long int __rlim64_t; 12329: typedef unsigned int __id_t; 12329: typedef long int __time_t; 12329: typedef unsigned int __useconds_t; 12329: typedef long int __suseconds_t; 12329: typedef long int __suseconds64_t; 12329: 12329: typedef int __daddr_t; 12329: typedef int __key_t; 12329: 12329: 12329: typedef int __clockid_t; 12329: 12329: 12329: typedef void * __timer_t; 12329: 12329: 12329: typedef int __blksize_t; 12329: 12329: 12329: 12329: 12329: typedef long int __blkcnt_t; 12329: typedef long int __blkcnt64_t; 12329: 12329: 12329: typedef unsigned long int __fsblkcnt_t; 12329: typedef unsigned long int __fsblkcnt64_t; 12329: 12329: 12329: typedef unsigned long int __fsfilcnt_t; 12329: typedef unsigned long int __fsfilcnt64_t; 12329: 12329: 12329: typedef long int __fsword_t; 12329: 12329: typedef long int __ssize_t; 12329: 12329: 12329: typedef long int __syscall_slong_t; 12329: 12329: typedef unsigned long int __syscall_ulong_t; 12329: 12329: 12329: 12329: typedef __off64_t __loff_t; 12329: typedef char *__caddr_t; 12329: 12329: 12329: typedef long int __intptr_t; 12329: 12329: 12329: typedef unsigned int __socklen_t; 12329: 12329: 12329: 12329: 12329: typedef int __sig_atomic_t; 12329: # 28 "/usr/include/stdint.h" 2 3 4 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4 12329: # 30 "/usr/include/stdint.h" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/stdint-intn.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/stdint-intn.h" 3 4 12329: typedef __int8_t int8_t; 12329: typedef __int16_t int16_t; 12329: typedef __int32_t int32_t; 12329: typedef __int64_t int64_t; 12329: # 35 "/usr/include/stdint.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h" 3 4 12329: typedef __uint8_t uint8_t; 12329: typedef __uint16_t uint16_t; 12329: typedef __uint32_t uint32_t; 12329: typedef __uint64_t uint64_t; 12329: # 38 "/usr/include/stdint.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: typedef __int_least8_t int_least8_t; 12329: typedef __int_least16_t int_least16_t; 12329: typedef __int_least32_t int_least32_t; 12329: typedef __int_least64_t int_least64_t; 12329: 12329: 12329: typedef __uint_least8_t uint_least8_t; 12329: typedef __uint_least16_t uint_least16_t; 12329: typedef __uint_least32_t uint_least32_t; 12329: typedef __uint_least64_t uint_least64_t; 12329: 12329: 12329: 12329: 12329: 12329: typedef signed char int_fast8_t; 12329: 12329: typedef long int int_fast16_t; 12329: typedef long int int_fast32_t; 12329: typedef long int int_fast64_t; 12329: # 71 "/usr/include/stdint.h" 3 4 12329: typedef unsigned char uint_fast8_t; 12329: 12329: typedef unsigned long int uint_fast16_t; 12329: typedef unsigned long int uint_fast32_t; 12329: typedef unsigned long int uint_fast64_t; 12329: # 87 "/usr/include/stdint.h" 3 4 12329: typedef long int intptr_t; 12329: 12329: 12329: typedef unsigned long int uintptr_t; 12329: # 101 "/usr/include/stdint.h" 3 4 12329: typedef __intmax_t intmax_t; 12329: typedef __uintmax_t uintmax_t; 12329: # 10 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stdint.h" 2 3 4 12329: # 42 "/usr/include/c++/12/cstdint" 2 3 12329: 12329: 12329: namespace std 12329: { 12329: 12329: using ::int8_t; 12329: using ::int16_t; 12329: using ::int32_t; 12329: using ::int64_t; 12329: 12329: using ::int_fast8_t; 12329: using ::int_fast16_t; 12329: using ::int_fast32_t; 12329: using ::int_fast64_t; 12329: 12329: using ::int_least8_t; 12329: using ::int_least16_t; 12329: using ::int_least32_t; 12329: using ::int_least64_t; 12329: 12329: using ::intmax_t; 12329: using ::intptr_t; 12329: 12329: using ::uint8_t; 12329: using ::uint16_t; 12329: using ::uint32_t; 12329: using ::uint64_t; 12329: 12329: using ::uint_fast8_t; 12329: using ::uint_fast16_t; 12329: using ::uint_fast32_t; 12329: using ::uint_fast64_t; 12329: 12329: using ::uint_least8_t; 12329: using ::uint_least16_t; 12329: using ::uint_least32_t; 12329: using ::uint_least64_t; 12329: 12329: using ::uintmax_t; 12329: using ::uintptr_t; 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 732 "/usr/include/c++/12/bits/char_traits.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template<> 12329: struct char_traits 12329: { 12329: typedef char16_t char_type; 12329: 12329: typedef uint_least16_t int_type; 12329: 12329: 12329: 12329: 12329: 12329: typedef streamoff off_type; 12329: typedef u16streampos pos_type; 12329: typedef mbstate_t state_type; 12329: 12329: 12329: 12329: 12329: static void 12329: assign(char_type& __c1, const char_type& __c2) noexcept 12329: { 12329: 12329: 12329: 12329: 12329: 12329: __c1 = __c2; 12329: } 12329: 12329: static constexpr bool 12329: eq(const char_type& __c1, const char_type& __c2) noexcept 12329: { return __c1 == __c2; } 12329: 12329: static constexpr bool 12329: lt(const char_type& __c1, const char_type& __c2) noexcept 12329: { return __c1 < __c2; } 12329: 12329: static int 12329: compare(const char_type* __s1, const char_type* __s2, size_t __n) 12329: { 12329: for (size_t __i = 0; __i < __n; ++__i) 12329: if (lt(__s1[__i], __s2[__i])) 12329: return -1; 12329: else if (lt(__s2[__i], __s1[__i])) 12329: return 1; 12329: return 0; 12329: } 12329: 12329: static size_t 12329: length(const char_type* __s) 12329: { 12329: size_t __i = 0; 12329: while (!eq(__s[__i], char_type())) 12329: ++__i; 12329: return __i; 12329: } 12329: 12329: static const char_type* 12329: find(const char_type* __s, size_t __n, const char_type& __a) 12329: { 12329: for (size_t __i = 0; __i < __n; ++__i) 12329: if (eq(__s[__i], __a)) 12329: return __s + __i; 12329: return 0; 12329: } 12329: 12329: static char_type* 12329: move(char_type* __s1, const char_type* __s2, size_t __n) 12329: { 12329: if (__n == 0) 12329: return __s1; 12329: 12329: 12329: 12329: 12329: return (static_cast 12329: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 12329: } 12329: 12329: static char_type* 12329: copy(char_type* __s1, const char_type* __s2, size_t __n) 12329: { 12329: if (__n == 0) 12329: return __s1; 12329: 12329: 12329: 12329: 12329: return (static_cast 12329: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 12329: } 12329: 12329: static char_type* 12329: assign(char_type* __s, size_t __n, char_type __a) 12329: { 12329: for (size_t __i = 0; __i < __n; ++__i) 12329: assign(__s[__i], __a); 12329: return __s; 12329: } 12329: 12329: static constexpr char_type 12329: to_char_type(const int_type& __c) noexcept 12329: { return char_type(__c); } 12329: 12329: static constexpr int_type 12329: to_int_type(const char_type& __c) noexcept 12329: { return __c == eof() ? int_type(0xfffd) : int_type(__c); } 12329: 12329: static constexpr bool 12329: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 12329: { return __c1 == __c2; } 12329: 12329: static constexpr int_type 12329: eof() noexcept 12329: { return static_cast(-1); } 12329: 12329: static constexpr int_type 12329: not_eof(const int_type& __c) noexcept 12329: { return eq_int_type(__c, eof()) ? 0 : __c; } 12329: }; 12329: 12329: template<> 12329: struct char_traits 12329: { 12329: typedef char32_t char_type; 12329: 12329: typedef uint_least32_t int_type; 12329: 12329: 12329: 12329: 12329: 12329: typedef streamoff off_type; 12329: typedef u32streampos pos_type; 12329: typedef mbstate_t state_type; 12329: 12329: 12329: 12329: 12329: static void 12329: assign(char_type& __c1, const char_type& __c2) noexcept 12329: { 12329: 12329: 12329: 12329: 12329: 12329: __c1 = __c2; 12329: } 12329: 12329: static constexpr bool 12329: eq(const char_type& __c1, const char_type& __c2) noexcept 12329: { return __c1 == __c2; } 12329: 12329: static constexpr bool 12329: lt(const char_type& __c1, const char_type& __c2) noexcept 12329: { return __c1 < __c2; } 12329: 12329: static int 12329: compare(const char_type* __s1, const char_type* __s2, size_t __n) 12329: { 12329: for (size_t __i = 0; __i < __n; ++__i) 12329: if (lt(__s1[__i], __s2[__i])) 12329: return -1; 12329: else if (lt(__s2[__i], __s1[__i])) 12329: return 1; 12329: return 0; 12329: } 12329: 12329: static size_t 12329: length(const char_type* __s) 12329: { 12329: size_t __i = 0; 12329: while (!eq(__s[__i], char_type())) 12329: ++__i; 12329: return __i; 12329: } 12329: 12329: static const char_type* 12329: find(const char_type* __s, size_t __n, const char_type& __a) 12329: { 12329: for (size_t __i = 0; __i < __n; ++__i) 12329: if (eq(__s[__i], __a)) 12329: return __s + __i; 12329: return 0; 12329: } 12329: 12329: static char_type* 12329: move(char_type* __s1, const char_type* __s2, size_t __n) 12329: { 12329: if (__n == 0) 12329: return __s1; 12329: 12329: 12329: 12329: 12329: return (static_cast 12329: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 12329: } 12329: 12329: static char_type* 12329: copy(char_type* __s1, const char_type* __s2, size_t __n) 12329: { 12329: if (__n == 0) 12329: return __s1; 12329: 12329: 12329: 12329: 12329: return (static_cast 12329: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 12329: } 12329: 12329: static char_type* 12329: assign(char_type* __s, size_t __n, char_type __a) 12329: { 12329: for (size_t __i = 0; __i < __n; ++__i) 12329: assign(__s[__i], __a); 12329: return __s; 12329: } 12329: 12329: static constexpr char_type 12329: to_char_type(const int_type& __c) noexcept 12329: { return char_type(__c); } 12329: 12329: static constexpr int_type 12329: to_int_type(const char_type& __c) noexcept 12329: { return int_type(__c); } 12329: 12329: static constexpr bool 12329: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 12329: { return __c1 == __c2; } 12329: 12329: static constexpr int_type 12329: eof() noexcept 12329: { return static_cast(-1); } 12329: 12329: static constexpr int_type 12329: not_eof(const int_type& __c) noexcept 12329: { return eq_int_type(__c, eof()) ? 0 : __c; } 12329: }; 12329: # 998 "/usr/include/c++/12/bits/char_traits.h" 3 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: } 12329: # 41 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/allocator.h" 1 3 12329: # 46 "/usr/include/c++/12/bits/allocator.h" 3 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++allocator.h" 1 3 12329: # 33 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++allocator.h" 3 12329: # 1 "/usr/include/c++/12/bits/new_allocator.h" 1 3 12329: # 34 "/usr/include/c++/12/bits/new_allocator.h" 3 12329: # 1 "/usr/include/c++/12/new" 1 3 12329: # 38 "/usr/include/c++/12/new" 3 12329: 12329: # 39 "/usr/include/c++/12/new" 3 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/exception.h" 1 3 12329: # 34 "/usr/include/c++/12/bits/exception.h" 3 12329: 12329: # 35 "/usr/include/c++/12/bits/exception.h" 3 12329: 12329: #pragma GCC visibility push(default) 12329: 12329: 12329: 12329: extern "C++" { 12329: 12329: namespace std 12329: { 12329: # 61 "/usr/include/c++/12/bits/exception.h" 3 12329: class exception 12329: { 12329: public: 12329: exception() noexcept { } 12329: virtual ~exception() noexcept; 12329: 12329: exception(const exception&) = default; 12329: exception& operator=(const exception&) = default; 12329: exception(exception&&) = default; 12329: exception& operator=(exception&&) = default; 12329: 12329: 12329: 12329: 12329: virtual const char* 12329: what() const noexcept; 12329: }; 12329: 12329: 12329: 12329: } 12329: 12329: } 12329: 12329: #pragma GCC visibility pop 12329: # 42 "/usr/include/c++/12/new" 2 3 12329: 12329: #pragma GCC visibility push(default) 12329: 12329: extern "C++" { 12329: 12329: namespace std 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: class bad_alloc : public exception 12329: { 12329: public: 12329: bad_alloc() throw() { } 12329: 12329: 12329: bad_alloc(const bad_alloc&) = default; 12329: bad_alloc& operator=(const bad_alloc&) = default; 12329: 12329: 12329: 12329: 12329: virtual ~bad_alloc() throw(); 12329: 12329: 12329: virtual const char* what() const throw(); 12329: }; 12329: 12329: 12329: class bad_array_new_length : public bad_alloc 12329: { 12329: public: 12329: bad_array_new_length() throw() { } 12329: 12329: 12329: 12329: virtual ~bad_array_new_length() throw(); 12329: 12329: 12329: virtual const char* what() const throw(); 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: struct nothrow_t 12329: { 12329: 12329: explicit nothrow_t() = default; 12329: 12329: }; 12329: 12329: extern const nothrow_t nothrow; 12329: 12329: 12329: 12329: typedef void (*new_handler)(); 12329: 12329: 12329: 12329: new_handler set_new_handler(new_handler) throw(); 12329: 12329: 12329: 12329: new_handler get_new_handler() noexcept; 12329: 12329: } 12329: # 126 "/usr/include/c++/12/new" 3 12329: void* operator new(std::size_t) 12329: __attribute__((__externally_visible__)); 12329: void* operator new[](std::size_t) 12329: __attribute__((__externally_visible__)); 12329: void operator delete(void*) noexcept 12329: __attribute__((__externally_visible__)); 12329: void operator delete[](void*) noexcept 12329: __attribute__((__externally_visible__)); 12329: 12329: void operator delete(void*, std::size_t) noexcept 12329: __attribute__((__externally_visible__)); 12329: void operator delete[](void*, std::size_t) noexcept 12329: __attribute__((__externally_visible__)); 12329: 12329: void* operator new(std::size_t, const std::nothrow_t&) noexcept 12329: __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); 12329: void* operator new[](std::size_t, const std::nothrow_t&) noexcept 12329: __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); 12329: void operator delete(void*, const std::nothrow_t&) noexcept 12329: __attribute__((__externally_visible__)); 12329: void operator delete[](void*, const std::nothrow_t&) noexcept 12329: __attribute__((__externally_visible__)); 12329: # 174 "/usr/include/c++/12/new" 3 12329: inline void* operator new(std::size_t, void* __p) noexcept 12329: { return __p; } 12329: inline void* operator new[](std::size_t, void* __p) noexcept 12329: { return __p; } 12329: 12329: 12329: inline void operator delete (void*, void*) noexcept { } 12329: inline void operator delete[](void*, void*) noexcept { } 12329: 12329: } 12329: # 236 "/usr/include/c++/12/new" 3 12329: #pragma GCC visibility pop 12329: # 35 "/usr/include/c++/12/bits/new_allocator.h" 2 3 12329: # 1 "/usr/include/c++/12/bits/functexcept.h" 1 3 12329: # 40 "/usr/include/c++/12/bits/functexcept.h" 3 12329: # 1 "/usr/include/c++/12/bits/exception_defines.h" 1 3 12329: # 41 "/usr/include/c++/12/bits/functexcept.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: void 12329: __throw_bad_exception(void) __attribute__((__noreturn__)); 12329: 12329: 12329: void 12329: __throw_bad_alloc(void) __attribute__((__noreturn__)); 12329: 12329: void 12329: __throw_bad_array_new_length(void) __attribute__((__noreturn__)); 12329: 12329: 12329: void 12329: __throw_bad_cast(void) __attribute__((__noreturn__)); 12329: 12329: void 12329: __throw_bad_typeid(void) __attribute__((__noreturn__)); 12329: 12329: 12329: void 12329: __throw_logic_error(const char*) __attribute__((__noreturn__)); 12329: 12329: void 12329: __throw_domain_error(const char*) __attribute__((__noreturn__)); 12329: 12329: void 12329: __throw_invalid_argument(const char*) __attribute__((__noreturn__)); 12329: 12329: void 12329: __throw_length_error(const char*) __attribute__((__noreturn__)); 12329: 12329: void 12329: __throw_out_of_range(const char*) __attribute__((__noreturn__)); 12329: 12329: void 12329: __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) 12329: __attribute__((__format__(__gnu_printf__, 1, 2))); 12329: 12329: void 12329: __throw_runtime_error(const char*) __attribute__((__noreturn__)); 12329: 12329: void 12329: __throw_range_error(const char*) __attribute__((__noreturn__)); 12329: 12329: void 12329: __throw_overflow_error(const char*) __attribute__((__noreturn__)); 12329: 12329: void 12329: __throw_underflow_error(const char*) __attribute__((__noreturn__)); 12329: 12329: 12329: void 12329: __throw_ios_failure(const char*) __attribute__((__noreturn__)); 12329: 12329: void 12329: __throw_ios_failure(const char*, int) __attribute__((__noreturn__)); 12329: 12329: 12329: void 12329: __throw_system_error(int) __attribute__((__noreturn__)); 12329: 12329: 12329: void 12329: __throw_future_error(int) __attribute__((__noreturn__)); 12329: 12329: 12329: void 12329: __throw_bad_function_call() __attribute__((__noreturn__)); 12329: 12329: 12329: } 12329: # 36 "/usr/include/c++/12/bits/new_allocator.h" 2 3 12329: # 1 "/usr/include/c++/12/bits/move.h" 1 3 12329: # 38 "/usr/include/c++/12/bits/move.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline constexpr _Tp* 12329: __addressof(_Tp& __r) noexcept 12329: { return __builtin_addressof(__r); } 12329: 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 74 "/usr/include/c++/12/bits/move.h" 3 12329: template 12329: 12329: constexpr _Tp&& 12329: forward(typename std::remove_reference<_Tp>::type& __t) noexcept 12329: { return static_cast<_Tp&&>(__t); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: constexpr _Tp&& 12329: forward(typename std::remove_reference<_Tp>::type&& __t) noexcept 12329: { 12329: static_assert(!std::is_lvalue_reference<_Tp>::value, 12329: "std::forward must not be used to convert an rvalue to an lvalue"); 12329: return static_cast<_Tp&&>(__t); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: constexpr typename std::remove_reference<_Tp>::type&& 12329: move(_Tp&& __t) noexcept 12329: { return static_cast::type&&>(__t); } 12329: 12329: 12329: template 12329: struct __move_if_noexcept_cond 12329: : public __and_<__not_>, 12329: is_copy_constructible<_Tp>>::type { }; 12329: # 121 "/usr/include/c++/12/bits/move.h" 3 12329: template 12329: 12329: constexpr 12329: __conditional_t<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&> 12329: move_if_noexcept(_Tp& __x) noexcept 12329: { return std::move(__x); } 12329: # 142 "/usr/include/c++/12/bits/move.h" 3 12329: template 12329: 12329: inline _Tp* 12329: addressof(_Tp& __r) noexcept 12329: { return std::__addressof(__r); } 12329: 12329: 12329: 12329: template 12329: const _Tp* addressof(const _Tp&&) = delete; 12329: 12329: 12329: template 12329: 12329: inline _Tp 12329: __exchange(_Tp& __obj, _Up&& __new_val) 12329: { 12329: _Tp __old_val = std::move(__obj); 12329: __obj = std::forward<_Up>(__new_val); 12329: return __old_val; 12329: } 12329: # 186 "/usr/include/c++/12/bits/move.h" 3 12329: template 12329: 12329: inline 12329: 12329: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 12329: is_move_constructible<_Tp>, 12329: is_move_assignable<_Tp>>::value>::type 12329: 12329: 12329: 12329: swap(_Tp& __a, _Tp& __b) 12329: noexcept(__and_, is_nothrow_move_assignable<_Tp>>::value) 12329: 12329: { 12329: 12329: 12329: 12329: 12329: _Tp __tmp = std::move(__a); 12329: __a = std::move(__b); 12329: __b = std::move(__tmp); 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: 12329: inline 12329: 12329: typename enable_if<__is_swappable<_Tp>::value>::type 12329: 12329: 12329: 12329: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 12329: noexcept(__is_nothrow_swappable<_Tp>::value) 12329: { 12329: for (size_t __n = 0; __n < _Nm; ++__n) 12329: swap(__a[__n], __b[__n]); 12329: } 12329: 12329: 12329: 12329: } 12329: # 37 "/usr/include/c++/12/bits/new_allocator.h" 2 3 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 55 "/usr/include/c++/12/bits/new_allocator.h" 3 12329: template 12329: class __new_allocator 12329: { 12329: public: 12329: typedef _Tp value_type; 12329: typedef std::size_t size_type; 12329: typedef std::ptrdiff_t difference_type; 12329: 12329: typedef _Tp* pointer; 12329: typedef const _Tp* const_pointer; 12329: typedef _Tp& reference; 12329: typedef const _Tp& const_reference; 12329: 12329: template 12329: struct rebind 12329: { typedef __new_allocator<_Tp1> other; }; 12329: 12329: 12329: 12329: 12329: 12329: typedef std::true_type propagate_on_container_move_assignment; 12329: 12329: 12329: 12329: __new_allocator() noexcept { } 12329: 12329: 12329: __new_allocator(const __new_allocator&) noexcept { } 12329: 12329: template 12329: 12329: __new_allocator(const __new_allocator<_Tp1>&) noexcept { } 12329: 12329: 12329: ~__new_allocator() noexcept { } 12329: 12329: pointer 12329: address(reference __x) const noexcept 12329: { return std::__addressof(__x); } 12329: 12329: const_pointer 12329: address(const_reference __x) const noexcept 12329: { return std::__addressof(__x); } 12329: # 111 "/usr/include/c++/12/bits/new_allocator.h" 3 12329: _Tp* 12329: allocate(size_type __n, const void* = static_cast(0)) 12329: { 12329: 12329: 12329: 12329: static_assert(sizeof(_Tp) != 0, "cannot allocate incomplete types"); 12329: 12329: 12329: if (__builtin_expect(__n > this->_M_max_size(), false)) 12329: { 12329: 12329: 12329: if (__n > (std::size_t(-1) / sizeof(_Tp))) 12329: std::__throw_bad_array_new_length(); 12329: std::__throw_bad_alloc(); 12329: } 12329: # 137 "/usr/include/c++/12/bits/new_allocator.h" 3 12329: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 12329: } 12329: 12329: 12329: void 12329: deallocate(_Tp* __p, size_type __n __attribute__ ((__unused__))) 12329: { 12329: # 158 "/usr/include/c++/12/bits/new_allocator.h" 3 12329: ::operator delete((__p), (__n) * sizeof(_Tp)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: size_type 12329: max_size() const noexcept 12329: { return _M_max_size(); } 12329: 12329: 12329: template 12329: void 12329: construct(_Up* __p, _Args&&... __args) 12329: noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) 12329: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 12329: 12329: template 12329: void 12329: destroy(_Up* __p) 12329: noexcept(std::is_nothrow_destructible<_Up>::value) 12329: { __p->~_Up(); } 12329: # 194 "/usr/include/c++/12/bits/new_allocator.h" 3 12329: template 12329: friend bool 12329: operator==(const __new_allocator&, const __new_allocator<_Up>&) 12329: noexcept 12329: { return true; } 12329: 12329: 12329: template 12329: friend bool 12329: operator!=(const __new_allocator&, const __new_allocator<_Up>&) 12329: noexcept 12329: { return false; } 12329: 12329: 12329: private: 12329: constexpr size_type 12329: _M_max_size() const noexcept 12329: { 12329: 12329: return std::size_t(0x7fffffffffffffffL) / sizeof(_Tp); 12329: 12329: 12329: 12329: } 12329: }; 12329: 12329: 12329: } 12329: # 34 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++allocator.h" 2 3 12329: 12329: 12329: namespace std 12329: { 12329: # 46 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++allocator.h" 3 12329: template 12329: using __allocator_base = __new_allocator<_Tp>; 12329: } 12329: # 47 "/usr/include/c++/12/bits/allocator.h" 2 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 71 "/usr/include/c++/12/bits/allocator.h" 3 12329: template<> 12329: class allocator 12329: { 12329: public: 12329: typedef void value_type; 12329: typedef size_t size_type; 12329: typedef ptrdiff_t difference_type; 12329: 12329: 12329: 12329: typedef void* pointer; 12329: typedef const void* const_pointer; 12329: 12329: template 12329: struct rebind 12329: { typedef allocator<_Tp1> other; }; 12329: 12329: 12329: 12329: 12329: 12329: using propagate_on_container_move_assignment = true_type; 12329: 12329: using is_always_equal 12329: 12329: = true_type; 12329: # 113 "/usr/include/c++/12/bits/allocator.h" 3 12329: }; 12329: # 123 "/usr/include/c++/12/bits/allocator.h" 3 12329: template 12329: class allocator : public __allocator_base<_Tp> 12329: { 12329: public: 12329: typedef _Tp value_type; 12329: typedef size_t size_type; 12329: typedef ptrdiff_t difference_type; 12329: 12329: 12329: 12329: typedef _Tp* pointer; 12329: typedef const _Tp* const_pointer; 12329: typedef _Tp& reference; 12329: typedef const _Tp& const_reference; 12329: 12329: template 12329: struct rebind 12329: { typedef allocator<_Tp1> other; }; 12329: 12329: 12329: 12329: 12329: 12329: using propagate_on_container_move_assignment = true_type; 12329: 12329: using is_always_equal 12329: 12329: = true_type; 12329: 12329: 12329: 12329: 12329: 12329: allocator() noexcept { } 12329: 12329: 12329: allocator(const allocator& __a) noexcept 12329: : __allocator_base<_Tp>(__a) { } 12329: 12329: 12329: 12329: allocator& operator=(const allocator&) = default; 12329: 12329: 12329: template 12329: 12329: allocator(const allocator<_Tp1>&) noexcept { } 12329: 12329: 12329: 12329: 12329: ~allocator() noexcept { } 12329: # 204 "/usr/include/c++/12/bits/allocator.h" 3 12329: friend bool 12329: operator==(const allocator&, const allocator&) noexcept 12329: { return true; } 12329: 12329: 12329: friend bool 12329: operator!=(const allocator&, const allocator&) noexcept 12329: { return false; } 12329: 12329: 12329: 12329: }; 12329: 12329: template 12329: inline bool 12329: operator==(const allocator<_T1>&, const allocator<_T2>&) 12329: noexcept 12329: { return true; } 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(const allocator<_T1>&, const allocator<_T2>&) 12329: noexcept 12329: { return false; } 12329: 12329: 12329: 12329: 12329: template 12329: class allocator 12329: { 12329: public: 12329: typedef _Tp value_type; 12329: template allocator(const allocator<_Up>&) { } 12329: }; 12329: 12329: template 12329: class allocator 12329: { 12329: public: 12329: typedef _Tp value_type; 12329: template allocator(const allocator<_Up>&) { } 12329: }; 12329: 12329: template 12329: class allocator 12329: { 12329: public: 12329: typedef _Tp value_type; 12329: template allocator(const allocator<_Up>&) { } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern template class allocator; 12329: extern template class allocator; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct __alloc_swap 12329: { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; 12329: 12329: template 12329: struct __alloc_swap<_Alloc, false> 12329: { 12329: static void 12329: _S_do_it(_Alloc& __one, _Alloc& __two) noexcept 12329: { 12329: 12329: if (__one != __two) 12329: swap(__one, __two); 12329: } 12329: }; 12329: 12329: 12329: template 12329: struct __alloc_neq 12329: { 12329: static bool 12329: _S_do_it(const _Alloc&, const _Alloc&) 12329: { return false; } 12329: }; 12329: 12329: template 12329: struct __alloc_neq<_Alloc, false> 12329: { 12329: static bool 12329: _S_do_it(const _Alloc& __one, const _Alloc& __two) 12329: { return __one != __two; } 12329: }; 12329: 12329: 12329: template, 12329: is_nothrow_move_constructible>::value> 12329: struct __shrink_to_fit_aux 12329: { static bool _S_do_it(_Tp&) noexcept { return false; } }; 12329: 12329: template 12329: struct __shrink_to_fit_aux<_Tp, true> 12329: { 12329: 12329: static bool 12329: _S_do_it(_Tp& __c) noexcept 12329: { 12329: 12329: try 12329: { 12329: _Tp(__make_move_if_noexcept_iterator(__c.begin()), 12329: __make_move_if_noexcept_iterator(__c.end()), 12329: __c.get_allocator()).swap(__c); 12329: return true; 12329: } 12329: catch(...) 12329: { return false; } 12329: 12329: 12329: 12329: } 12329: }; 12329: 12329: 12329: 12329: } 12329: # 42 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/cpp_type_traits.h" 1 3 12329: # 35 "/usr/include/c++/12/bits/cpp_type_traits.h" 3 12329: 12329: # 36 "/usr/include/c++/12/bits/cpp_type_traits.h" 3 12329: # 67 "/usr/include/c++/12/bits/cpp_type_traits.h" 3 12329: extern "C++" { 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: struct __true_type { }; 12329: struct __false_type { }; 12329: 12329: template 12329: struct __truth_type 12329: { typedef __false_type __type; }; 12329: 12329: template<> 12329: struct __truth_type 12329: { typedef __true_type __type; }; 12329: 12329: 12329: 12329: template 12329: struct __traitor 12329: { 12329: enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; 12329: typedef typename __truth_type<__value>::__type __type; 12329: }; 12329: 12329: 12329: template 12329: struct __are_same 12329: { 12329: enum { __value = 0 }; 12329: typedef __false_type __type; 12329: }; 12329: 12329: template 12329: struct __are_same<_Tp, _Tp> 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: 12329: template 12329: struct __is_void 12329: { 12329: enum { __value = 0 }; 12329: typedef __false_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_void 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: struct __is_integer 12329: { 12329: enum { __value = 0 }; 12329: typedef __false_type __type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: # 184 "/usr/include/c++/12/bits/cpp_type_traits.h" 3 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_integer 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: # 289 "/usr/include/c++/12/bits/cpp_type_traits.h" 3 12329: template 12329: struct __is_floating 12329: { 12329: enum { __value = 0 }; 12329: typedef __false_type __type; 12329: }; 12329: 12329: 12329: template<> 12329: struct __is_floating 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_floating 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_floating 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: struct __is_pointer 12329: { 12329: enum { __value = 0 }; 12329: typedef __false_type __type; 12329: }; 12329: 12329: template 12329: struct __is_pointer<_Tp*> 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: struct __is_arithmetic 12329: : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > 12329: { }; 12329: 12329: 12329: 12329: 12329: template 12329: struct __is_scalar 12329: : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > 12329: { }; 12329: 12329: 12329: 12329: 12329: template 12329: struct __is_char 12329: { 12329: enum { __value = 0 }; 12329: typedef __false_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_char 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: 12329: template<> 12329: struct __is_char 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: 12329: template 12329: struct __is_byte 12329: { 12329: enum { __value = 0 }; 12329: typedef __false_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_byte 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_byte 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template<> 12329: struct __is_byte 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: # 425 "/usr/include/c++/12/bits/cpp_type_traits.h" 3 12329: template struct iterator_traits; 12329: 12329: 12329: template 12329: struct __is_nonvolatile_trivially_copyable 12329: { 12329: enum { __value = __is_trivially_copyable(_Tp) }; 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: struct __is_nonvolatile_trivially_copyable 12329: { 12329: enum { __value = 0 }; 12329: }; 12329: 12329: 12329: template 12329: struct __memcpyable 12329: { 12329: enum { __value = 0 }; 12329: }; 12329: 12329: template 12329: struct __memcpyable<_Tp*, _Tp*> 12329: : __is_nonvolatile_trivially_copyable<_Tp> 12329: { }; 12329: 12329: template 12329: struct __memcpyable<_Tp*, const _Tp*> 12329: : __is_nonvolatile_trivially_copyable<_Tp> 12329: { }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct __memcmpable 12329: { 12329: enum { __value = 0 }; 12329: }; 12329: 12329: 12329: template 12329: struct __memcmpable<_Tp*, _Tp*> 12329: : __is_nonvolatile_trivially_copyable<_Tp> 12329: { }; 12329: 12329: template 12329: struct __memcmpable 12329: : __is_nonvolatile_trivially_copyable<_Tp> 12329: { }; 12329: 12329: template 12329: struct __memcmpable<_Tp*, const _Tp*> 12329: : __is_nonvolatile_trivially_copyable<_Tp> 12329: { }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template::__value 12329: 12329: > 12329: struct __is_memcmp_ordered 12329: { 12329: static const bool __value = _Tp(-1) > _Tp(1); 12329: }; 12329: 12329: template 12329: struct __is_memcmp_ordered<_Tp, false> 12329: { 12329: static const bool __value = false; 12329: }; 12329: 12329: 12329: template 12329: struct __is_memcmp_ordered_with 12329: { 12329: static const bool __value = __is_memcmp_ordered<_Tp>::__value 12329: && __is_memcmp_ordered<_Up>::__value; 12329: }; 12329: 12329: template 12329: struct __is_memcmp_ordered_with<_Tp, _Up, false> 12329: { 12329: static const bool __value = false; 12329: }; 12329: # 550 "/usr/include/c++/12/bits/cpp_type_traits.h" 3 12329: template 12329: struct __is_move_iterator 12329: { 12329: enum { __value = 0 }; 12329: typedef __false_type __type; 12329: }; 12329: 12329: 12329: 12329: template 12329: 12329: inline _Iterator 12329: __miter_base(_Iterator __it) 12329: { return __it; } 12329: 12329: 12329: } 12329: } 12329: # 43 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/localefwd.h" 1 3 12329: # 37 "/usr/include/c++/12/bits/localefwd.h" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/localefwd.h" 3 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++locale.h" 1 3 12329: # 39 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++locale.h" 3 12329: 12329: # 40 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++locale.h" 3 12329: 12329: # 1 "/usr/include/c++/12/clocale" 1 3 12329: # 39 "/usr/include/c++/12/clocale" 3 12329: 12329: # 40 "/usr/include/c++/12/clocale" 3 12329: 12329: 12329: # 1 "/usr/include/locale.h" 1 3 4 12329: # 28 "/usr/include/locale.h" 3 4 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 29 "/usr/include/locale.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/locale.h" 1 3 4 12329: # 30 "/usr/include/locale.h" 2 3 4 12329: 12329: extern "C" { 12329: # 51 "/usr/include/locale.h" 3 4 12329: struct lconv 12329: { 12329: 12329: 12329: char *decimal_point; 12329: char *thousands_sep; 12329: 12329: 12329: 12329: 12329: 12329: char *grouping; 12329: 12329: 12329: 12329: 12329: 12329: char *int_curr_symbol; 12329: char *currency_symbol; 12329: char *mon_decimal_point; 12329: char *mon_thousands_sep; 12329: char *mon_grouping; 12329: char *positive_sign; 12329: char *negative_sign; 12329: char int_frac_digits; 12329: char frac_digits; 12329: 12329: char p_cs_precedes; 12329: 12329: char p_sep_by_space; 12329: 12329: char n_cs_precedes; 12329: 12329: char n_sep_by_space; 12329: 12329: 12329: 12329: 12329: 12329: 12329: char p_sign_posn; 12329: char n_sign_posn; 12329: 12329: 12329: char int_p_cs_precedes; 12329: 12329: char int_p_sep_by_space; 12329: 12329: char int_n_cs_precedes; 12329: 12329: char int_n_sep_by_space; 12329: 12329: 12329: 12329: 12329: 12329: 12329: char int_p_sign_posn; 12329: char int_n_sign_posn; 12329: # 118 "/usr/include/locale.h" 3 4 12329: }; 12329: 12329: 12329: 12329: extern char *setlocale (int __category, const char *__locale) noexcept (true); 12329: 12329: 12329: extern struct lconv *localeconv (void) noexcept (true); 12329: # 141 "/usr/include/locale.h" 3 4 12329: extern locale_t newlocale (int __category_mask, const char *__locale, 12329: locale_t __base) noexcept (true); 12329: # 176 "/usr/include/locale.h" 3 4 12329: extern locale_t duplocale (locale_t __dataset) noexcept (true); 12329: 12329: 12329: 12329: extern void freelocale (locale_t __dataset) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern locale_t uselocale (locale_t __dataset) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 43 "/usr/include/c++/12/clocale" 2 3 12329: # 51 "/usr/include/c++/12/clocale" 3 12329: namespace std 12329: { 12329: using ::lconv; 12329: using ::setlocale; 12329: using ::localeconv; 12329: } 12329: # 42 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++locale.h" 2 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: extern "C" __typeof(uselocale) __uselocale; 12329: 12329: 12329: } 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: typedef __locale_t __c_locale; 12329: # 73 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++locale.h" 3 12329: inline int 12329: __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), 12329: char* __out, 12329: const int __size __attribute__ ((__unused__)), 12329: const char* __fmt, ...) 12329: { 12329: 12329: __c_locale __old = __gnu_cxx::__uselocale(__cloc); 12329: # 93 "/usr/include/aarch64-linux-gnu/c++/12/bits/c++locale.h" 3 12329: __builtin_va_list __args; 12329: __builtin_va_start(__args, __fmt); 12329: 12329: 12329: const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); 12329: 12329: 12329: 12329: 12329: __builtin_va_end(__args); 12329: 12329: 12329: __gnu_cxx::__uselocale(__old); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: return __ret; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 41 "/usr/include/c++/12/bits/localefwd.h" 2 3 12329: # 1 "/usr/include/c++/12/iosfwd" 1 3 12329: # 36 "/usr/include/c++/12/iosfwd" 3 12329: 12329: # 37 "/usr/include/c++/12/iosfwd" 3 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 74 "/usr/include/c++/12/iosfwd" 3 12329: class ios_base; 12329: 12329: template > 12329: class basic_ios; 12329: 12329: template > 12329: class basic_streambuf; 12329: 12329: template > 12329: class basic_istream; 12329: 12329: template > 12329: class basic_ostream; 12329: 12329: template > 12329: class basic_iostream; 12329: 12329: 12329: namespace __cxx11 { 12329: 12329: template, 12329: typename _Alloc = allocator<_CharT> > 12329: class basic_stringbuf; 12329: 12329: template, 12329: typename _Alloc = allocator<_CharT> > 12329: class basic_istringstream; 12329: 12329: template, 12329: typename _Alloc = allocator<_CharT> > 12329: class basic_ostringstream; 12329: 12329: template, 12329: typename _Alloc = allocator<_CharT> > 12329: class basic_stringstream; 12329: 12329: } 12329: 12329: template > 12329: class basic_filebuf; 12329: 12329: template > 12329: class basic_ifstream; 12329: 12329: template > 12329: class basic_ofstream; 12329: 12329: template > 12329: class basic_fstream; 12329: 12329: template > 12329: class istreambuf_iterator; 12329: 12329: template > 12329: class ostreambuf_iterator; 12329: 12329: 12329: 12329: typedef basic_ios ios; 12329: 12329: 12329: typedef basic_streambuf streambuf; 12329: 12329: 12329: typedef basic_istream istream; 12329: 12329: 12329: typedef basic_ostream ostream; 12329: 12329: 12329: typedef basic_iostream iostream; 12329: 12329: 12329: typedef basic_stringbuf stringbuf; 12329: 12329: 12329: typedef basic_istringstream istringstream; 12329: 12329: 12329: typedef basic_ostringstream ostringstream; 12329: 12329: 12329: typedef basic_stringstream stringstream; 12329: 12329: 12329: typedef basic_filebuf filebuf; 12329: 12329: 12329: typedef basic_ifstream ifstream; 12329: 12329: 12329: typedef basic_ofstream ofstream; 12329: 12329: 12329: typedef basic_fstream fstream; 12329: 12329: 12329: 12329: typedef basic_ios wios; 12329: 12329: 12329: typedef basic_streambuf wstreambuf; 12329: 12329: 12329: typedef basic_istream wistream; 12329: 12329: 12329: typedef basic_ostream wostream; 12329: 12329: 12329: typedef basic_iostream wiostream; 12329: 12329: 12329: typedef basic_stringbuf wstringbuf; 12329: 12329: 12329: typedef basic_istringstream wistringstream; 12329: 12329: 12329: typedef basic_ostringstream wostringstream; 12329: 12329: 12329: typedef basic_stringstream wstringstream; 12329: 12329: 12329: typedef basic_filebuf wfilebuf; 12329: 12329: 12329: typedef basic_ifstream wifstream; 12329: 12329: 12329: typedef basic_ofstream wofstream; 12329: 12329: 12329: typedef basic_fstream wfstream; 12329: # 253 "/usr/include/c++/12/iosfwd" 3 12329: 12329: } 12329: # 42 "/usr/include/c++/12/bits/localefwd.h" 2 3 12329: # 1 "/usr/include/c++/12/cctype" 1 3 12329: # 39 "/usr/include/c++/12/cctype" 3 12329: 12329: # 40 "/usr/include/c++/12/cctype" 3 12329: 12329: 12329: # 1 "/usr/include/ctype.h" 1 3 4 12329: # 28 "/usr/include/ctype.h" 3 4 12329: extern "C" { 12329: # 39 "/usr/include/ctype.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/endian.h" 1 3 4 12329: # 35 "/usr/include/aarch64-linux-gnu/bits/endian.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/endianness.h" 1 3 4 12329: # 36 "/usr/include/aarch64-linux-gnu/bits/endian.h" 2 3 4 12329: # 40 "/usr/include/ctype.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: enum 12329: { 12329: _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 12329: _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 12329: _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 12329: _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 12329: _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 12329: _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 12329: _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 12329: _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 12329: _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 12329: _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 12329: _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 12329: _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 12329: }; 12329: # 79 "/usr/include/ctype.h" 3 4 12329: extern const unsigned short int **__ctype_b_loc (void) 12329: noexcept (true) __attribute__ ((__const__)); 12329: extern const __int32_t **__ctype_tolower_loc (void) 12329: noexcept (true) __attribute__ ((__const__)); 12329: extern const __int32_t **__ctype_toupper_loc (void) 12329: noexcept (true) __attribute__ ((__const__)); 12329: # 108 "/usr/include/ctype.h" 3 4 12329: extern int isalnum (int) noexcept (true); 12329: extern int isalpha (int) noexcept (true); 12329: extern int iscntrl (int) noexcept (true); 12329: extern int isdigit (int) noexcept (true); 12329: extern int islower (int) noexcept (true); 12329: extern int isgraph (int) noexcept (true); 12329: extern int isprint (int) noexcept (true); 12329: extern int ispunct (int) noexcept (true); 12329: extern int isspace (int) noexcept (true); 12329: extern int isupper (int) noexcept (true); 12329: extern int isxdigit (int) noexcept (true); 12329: 12329: 12329: 12329: extern int tolower (int __c) noexcept (true); 12329: 12329: 12329: extern int toupper (int __c) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int isblank (int) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int isctype (int __c, int __mask) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int isascii (int __c) noexcept (true); 12329: 12329: 12329: 12329: extern int toascii (int __c) noexcept (true); 12329: 12329: 12329: 12329: extern int _toupper (int) noexcept (true); 12329: extern int _tolower (int) noexcept (true); 12329: # 251 "/usr/include/ctype.h" 3 4 12329: extern int isalnum_l (int, locale_t) noexcept (true); 12329: extern int isalpha_l (int, locale_t) noexcept (true); 12329: extern int iscntrl_l (int, locale_t) noexcept (true); 12329: extern int isdigit_l (int, locale_t) noexcept (true); 12329: extern int islower_l (int, locale_t) noexcept (true); 12329: extern int isgraph_l (int, locale_t) noexcept (true); 12329: extern int isprint_l (int, locale_t) noexcept (true); 12329: extern int ispunct_l (int, locale_t) noexcept (true); 12329: extern int isspace_l (int, locale_t) noexcept (true); 12329: extern int isupper_l (int, locale_t) noexcept (true); 12329: extern int isxdigit_l (int, locale_t) noexcept (true); 12329: 12329: extern int isblank_l (int, locale_t) noexcept (true); 12329: 12329: 12329: 12329: extern int __tolower_l (int __c, locale_t __l) noexcept (true); 12329: extern int tolower_l (int __c, locale_t __l) noexcept (true); 12329: 12329: 12329: extern int __toupper_l (int __c, locale_t __l) noexcept (true); 12329: extern int toupper_l (int __c, locale_t __l) noexcept (true); 12329: # 327 "/usr/include/ctype.h" 3 4 12329: } 12329: # 43 "/usr/include/c++/12/cctype" 2 3 12329: # 62 "/usr/include/c++/12/cctype" 3 12329: namespace std 12329: { 12329: using ::isalnum; 12329: using ::isalpha; 12329: using ::iscntrl; 12329: using ::isdigit; 12329: using ::isgraph; 12329: using ::islower; 12329: using ::isprint; 12329: using ::ispunct; 12329: using ::isspace; 12329: using ::isupper; 12329: using ::isxdigit; 12329: using ::tolower; 12329: using ::toupper; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace std 12329: { 12329: using ::isblank; 12329: } 12329: # 43 "/usr/include/c++/12/bits/localefwd.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 55 "/usr/include/c++/12/bits/localefwd.h" 3 12329: class locale; 12329: 12329: template 12329: bool 12329: has_facet(const locale&) throw(); 12329: 12329: template 12329: const _Facet& 12329: use_facet(const locale&); 12329: 12329: 12329: template 12329: bool 12329: isspace(_CharT, const locale&); 12329: 12329: template 12329: bool 12329: isprint(_CharT, const locale&); 12329: 12329: template 12329: bool 12329: iscntrl(_CharT, const locale&); 12329: 12329: template 12329: bool 12329: isupper(_CharT, const locale&); 12329: 12329: template 12329: bool 12329: islower(_CharT, const locale&); 12329: 12329: template 12329: bool 12329: isalpha(_CharT, const locale&); 12329: 12329: template 12329: bool 12329: isdigit(_CharT, const locale&); 12329: 12329: template 12329: bool 12329: ispunct(_CharT, const locale&); 12329: 12329: template 12329: bool 12329: isxdigit(_CharT, const locale&); 12329: 12329: template 12329: bool 12329: isalnum(_CharT, const locale&); 12329: 12329: template 12329: bool 12329: isgraph(_CharT, const locale&); 12329: 12329: 12329: template 12329: bool 12329: isblank(_CharT, const locale&); 12329: 12329: 12329: template 12329: _CharT 12329: toupper(_CharT, const locale&); 12329: 12329: template 12329: _CharT 12329: tolower(_CharT, const locale&); 12329: 12329: 12329: struct ctype_base; 12329: template 12329: class ctype; 12329: template<> class ctype; 12329: 12329: template<> class ctype; 12329: 12329: template 12329: class ctype_byname; 12329: 12329: 12329: class codecvt_base; 12329: template 12329: class codecvt; 12329: template<> class codecvt; 12329: 12329: template<> class codecvt; 12329: 12329: 12329: template<> class codecvt; 12329: template<> class codecvt; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class codecvt_byname; 12329: 12329: 12329: 12329: template > 12329: class num_get; 12329: template > 12329: class num_put; 12329: 12329: namespace __cxx11 { 12329: template class numpunct; 12329: template class numpunct_byname; 12329: } 12329: 12329: namespace __cxx11 { 12329: 12329: template 12329: class collate; 12329: template 12329: class collate_byname; 12329: } 12329: 12329: 12329: class time_base; 12329: namespace __cxx11 { 12329: template > 12329: class time_get; 12329: template > 12329: class time_get_byname; 12329: } 12329: template > 12329: class time_put; 12329: template > 12329: class time_put_byname; 12329: 12329: 12329: class money_base; 12329: namespace __cxx11 { 12329: template > 12329: class money_get; 12329: template > 12329: class money_put; 12329: } 12329: namespace __cxx11 { 12329: template 12329: class moneypunct; 12329: template 12329: class moneypunct_byname; 12329: } 12329: 12329: 12329: struct messages_base; 12329: namespace __cxx11 { 12329: template 12329: class messages; 12329: template 12329: class messages_byname; 12329: } 12329: 12329: 12329: } 12329: # 44 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/ostream_insert.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/ostream_insert.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/ostream_insert.h" 3 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/cxxabi_forced.h" 1 3 12329: # 34 "/usr/include/c++/12/bits/cxxabi_forced.h" 3 12329: 12329: # 35 "/usr/include/c++/12/bits/cxxabi_forced.h" 3 12329: 12329: #pragma GCC visibility push(default) 12329: 12329: 12329: namespace __cxxabiv1 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: class __forced_unwind 12329: { 12329: virtual ~__forced_unwind() throw(); 12329: 12329: 12329: virtual void __pure_dummy() = 0; 12329: }; 12329: } 12329: 12329: 12329: #pragma GCC visibility pop 12329: # 37 "/usr/include/c++/12/bits/ostream_insert.h" 2 3 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: inline void 12329: __ostream_write(basic_ostream<_CharT, _Traits>& __out, 12329: const _CharT* __s, streamsize __n) 12329: { 12329: typedef basic_ostream<_CharT, _Traits> __ostream_type; 12329: typedef typename __ostream_type::ios_base __ios_base; 12329: 12329: const streamsize __put = __out.rdbuf()->sputn(__s, __n); 12329: if (__put != __n) 12329: __out.setstate(__ios_base::badbit); 12329: } 12329: 12329: template 12329: inline void 12329: __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) 12329: { 12329: typedef basic_ostream<_CharT, _Traits> __ostream_type; 12329: typedef typename __ostream_type::ios_base __ios_base; 12329: 12329: const _CharT __c = __out.fill(); 12329: for (; __n > 0; --__n) 12329: { 12329: const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); 12329: if (_Traits::eq_int_type(__put, _Traits::eof())) 12329: { 12329: __out.setstate(__ios_base::badbit); 12329: break; 12329: } 12329: } 12329: } 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: __ostream_insert(basic_ostream<_CharT, _Traits>& __out, 12329: const _CharT* __s, streamsize __n) 12329: { 12329: typedef basic_ostream<_CharT, _Traits> __ostream_type; 12329: typedef typename __ostream_type::ios_base __ios_base; 12329: 12329: typename __ostream_type::sentry __cerb(__out); 12329: if (__cerb) 12329: { 12329: try 12329: { 12329: const streamsize __w = __out.width(); 12329: if (__w > __n) 12329: { 12329: const bool __left = ((__out.flags() 12329: & __ios_base::adjustfield) 12329: == __ios_base::left); 12329: if (!__left) 12329: __ostream_fill(__out, __w - __n); 12329: if (__out.good()) 12329: __ostream_write(__out, __s, __n); 12329: if (__left && __out.good()) 12329: __ostream_fill(__out, __w - __n); 12329: } 12329: else 12329: __ostream_write(__out, __s, __n); 12329: __out.width(0); 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: __out._M_setstate(__ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { __out._M_setstate(__ios_base::badbit); } 12329: } 12329: return __out; 12329: } 12329: 12329: 12329: 12329: 12329: extern template ostream& __ostream_insert(ostream&, const char*, streamsize); 12329: 12329: 12329: extern template wostream& __ostream_insert(wostream&, const wchar_t*, 12329: streamsize); 12329: 12329: 12329: 12329: 12329: } 12329: # 45 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/stl_iterator_base_types.h" 1 3 12329: # 62 "/usr/include/c++/12/bits/stl_iterator_base_types.h" 3 12329: 12329: # 63 "/usr/include/c++/12/bits/stl_iterator_base_types.h" 3 12329: # 74 "/usr/include/c++/12/bits/stl_iterator_base_types.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 93 "/usr/include/c++/12/bits/stl_iterator_base_types.h" 3 12329: struct input_iterator_tag { }; 12329: 12329: 12329: struct output_iterator_tag { }; 12329: 12329: 12329: struct forward_iterator_tag : public input_iterator_tag { }; 12329: 12329: 12329: 12329: struct bidirectional_iterator_tag : public forward_iterator_tag { }; 12329: 12329: 12329: 12329: struct random_access_iterator_tag : public bidirectional_iterator_tag { }; 12329: # 125 "/usr/include/c++/12/bits/stl_iterator_base_types.h" 3 12329: template 12329: struct iterator 12329: { 12329: 12329: typedef _Category iterator_category; 12329: 12329: typedef _Tp value_type; 12329: 12329: typedef _Distance difference_type; 12329: 12329: typedef _Pointer pointer; 12329: 12329: typedef _Reference reference; 12329: }; 12329: # 149 "/usr/include/c++/12/bits/stl_iterator_base_types.h" 3 12329: template 12329: struct iterator_traits; 12329: 12329: 12329: 12329: 12329: template> 12329: struct __iterator_traits { }; 12329: 12329: 12329: 12329: template 12329: struct __iterator_traits<_Iterator, 12329: __void_t> 12329: { 12329: typedef typename _Iterator::iterator_category iterator_category; 12329: typedef typename _Iterator::value_type value_type; 12329: typedef typename _Iterator::difference_type difference_type; 12329: typedef typename _Iterator::pointer pointer; 12329: typedef typename _Iterator::reference reference; 12329: }; 12329: 12329: 12329: template 12329: struct iterator_traits 12329: : public __iterator_traits<_Iterator> { }; 12329: # 209 "/usr/include/c++/12/bits/stl_iterator_base_types.h" 3 12329: template 12329: struct iterator_traits<_Tp*> 12329: { 12329: typedef random_access_iterator_tag iterator_category; 12329: typedef _Tp value_type; 12329: typedef ptrdiff_t difference_type; 12329: typedef _Tp* pointer; 12329: typedef _Tp& reference; 12329: }; 12329: 12329: 12329: template 12329: struct iterator_traits 12329: { 12329: typedef random_access_iterator_tag iterator_category; 12329: typedef _Tp value_type; 12329: typedef ptrdiff_t difference_type; 12329: typedef const _Tp* pointer; 12329: typedef const _Tp& reference; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline constexpr 12329: typename iterator_traits<_Iter>::iterator_category 12329: __iterator_category(const _Iter&) 12329: { return typename iterator_traits<_Iter>::iterator_category(); } 12329: 12329: 12329: 12329: 12329: template 12329: using __iterator_category_t 12329: = typename iterator_traits<_Iter>::iterator_category; 12329: 12329: template 12329: using _RequireInputIter = 12329: __enable_if_t, 12329: input_iterator_tag>::value>; 12329: 12329: template> 12329: struct __is_random_access_iter 12329: : is_base_of 12329: { 12329: typedef is_base_of _Base; 12329: enum { __value = _Base::value }; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 46 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/stl_iterator_base_funcs.h" 1 3 12329: # 62 "/usr/include/c++/12/bits/stl_iterator_base_funcs.h" 3 12329: 12329: # 63 "/usr/include/c++/12/bits/stl_iterator_base_funcs.h" 3 12329: 12329: # 1 "/usr/include/c++/12/bits/concept_check.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/concept_check.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/concept_check.h" 3 12329: # 65 "/usr/include/c++/12/bits/stl_iterator_base_funcs.h" 2 3 12329: # 1 "/usr/include/c++/12/debug/assertions.h" 1 3 12329: # 66 "/usr/include/c++/12/bits/stl_iterator_base_funcs.h" 2 3 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: template struct _List_iterator; 12329: template struct _List_const_iterator; 12329: 12329: 12329: template 12329: inline constexpr 12329: typename iterator_traits<_InputIterator>::difference_type 12329: __distance(_InputIterator __first, _InputIterator __last, 12329: input_iterator_tag) 12329: { 12329: 12329: 12329: 12329: typename iterator_traits<_InputIterator>::difference_type __n = 0; 12329: while (__first != __last) 12329: { 12329: ++__first; 12329: ++__n; 12329: } 12329: return __n; 12329: } 12329: 12329: template 12329: inline constexpr 12329: typename iterator_traits<_RandomAccessIterator>::difference_type 12329: __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: random_access_iterator_tag) 12329: { 12329: 12329: 12329: 12329: return __last - __first; 12329: } 12329: 12329: 12329: 12329: template 12329: ptrdiff_t 12329: __distance(std::_List_iterator<_Tp>, 12329: std::_List_iterator<_Tp>, 12329: input_iterator_tag); 12329: 12329: template 12329: ptrdiff_t 12329: __distance(std::_List_const_iterator<_Tp>, 12329: std::_List_const_iterator<_Tp>, 12329: input_iterator_tag); 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: __distance(_OutputIterator, _OutputIterator, output_iterator_tag) = delete; 12329: # 143 "/usr/include/c++/12/bits/stl_iterator_base_funcs.h" 3 12329: template 12329: 12329: inline 12329: typename iterator_traits<_InputIterator>::difference_type 12329: distance(_InputIterator __first, _InputIterator __last) 12329: { 12329: 12329: return std::__distance(__first, __last, 12329: std::__iterator_category(__first)); 12329: } 12329: 12329: template 12329: inline constexpr void 12329: __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) 12329: { 12329: 12329: 12329: do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) __builtin_unreachable(); } while (false); 12329: while (__n--) 12329: ++__i; 12329: } 12329: 12329: template 12329: inline constexpr void 12329: __advance(_BidirectionalIterator& __i, _Distance __n, 12329: bidirectional_iterator_tag) 12329: { 12329: 12329: 12329: 12329: if (__n > 0) 12329: while (__n--) 12329: ++__i; 12329: else 12329: while (__n++) 12329: --__i; 12329: } 12329: 12329: template 12329: inline constexpr void 12329: __advance(_RandomAccessIterator& __i, _Distance __n, 12329: random_access_iterator_tag) 12329: { 12329: 12329: 12329: 12329: if (__builtin_constant_p(__n) && __n == 1) 12329: ++__i; 12329: else if (__builtin_constant_p(__n) && __n == -1) 12329: --__i; 12329: else 12329: __i += __n; 12329: } 12329: 12329: 12329: 12329: template 12329: void 12329: __advance(_OutputIterator&, _Distance, output_iterator_tag) = delete; 12329: # 216 "/usr/include/c++/12/bits/stl_iterator_base_funcs.h" 3 12329: template 12329: inline void 12329: advance(_InputIterator& __i, _Distance __n) 12329: { 12329: 12329: typename iterator_traits<_InputIterator>::difference_type __d = __n; 12329: std::__advance(__i, __d, std::__iterator_category(__i)); 12329: } 12329: 12329: 12329: 12329: template 12329: 12329: inline _InputIterator 12329: next(_InputIterator __x, typename 12329: iterator_traits<_InputIterator>::difference_type __n = 1) 12329: { 12329: 12329: 12329: std::advance(__x, __n); 12329: return __x; 12329: } 12329: 12329: template 12329: 12329: inline _BidirectionalIterator 12329: prev(_BidirectionalIterator __x, typename 12329: iterator_traits<_BidirectionalIterator>::difference_type __n = 1) 12329: { 12329: 12329: 12329: 12329: std::advance(__x, -__n); 12329: return __x; 12329: } 12329: 12329: 12329: 12329: 12329: } 12329: # 47 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/stl_iterator.h" 1 3 12329: # 65 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: # 1 "/usr/include/c++/12/ext/type_traits.h" 1 3 12329: # 32 "/usr/include/c++/12/ext/type_traits.h" 3 12329: 12329: # 33 "/usr/include/c++/12/ext/type_traits.h" 3 12329: 12329: 12329: 12329: 12329: extern "C++" { 12329: 12329: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: template 12329: struct __enable_if 12329: { }; 12329: 12329: template 12329: struct __enable_if 12329: { typedef _Tp __type; }; 12329: 12329: 12329: 12329: template 12329: struct __conditional_type 12329: { typedef _Iftrue __type; }; 12329: 12329: template 12329: struct __conditional_type 12329: { typedef _Iffalse __type; }; 12329: 12329: 12329: 12329: template 12329: struct __add_unsigned 12329: { 12329: private: 12329: typedef __enable_if::__value, _Tp> __if_type; 12329: 12329: public: 12329: typedef typename __if_type::__type __type; 12329: }; 12329: 12329: template<> 12329: struct __add_unsigned 12329: { typedef unsigned char __type; }; 12329: 12329: template<> 12329: struct __add_unsigned 12329: { typedef unsigned char __type; }; 12329: 12329: template<> 12329: struct __add_unsigned 12329: { typedef unsigned short __type; }; 12329: 12329: template<> 12329: struct __add_unsigned 12329: { typedef unsigned int __type; }; 12329: 12329: template<> 12329: struct __add_unsigned 12329: { typedef unsigned long __type; }; 12329: 12329: template<> 12329: struct __add_unsigned 12329: { typedef unsigned long long __type; }; 12329: 12329: 12329: template<> 12329: struct __add_unsigned; 12329: 12329: template<> 12329: struct __add_unsigned; 12329: 12329: 12329: 12329: template 12329: struct __remove_unsigned 12329: { 12329: private: 12329: typedef __enable_if::__value, _Tp> __if_type; 12329: 12329: public: 12329: typedef typename __if_type::__type __type; 12329: }; 12329: 12329: template<> 12329: struct __remove_unsigned 12329: { typedef signed char __type; }; 12329: 12329: template<> 12329: struct __remove_unsigned 12329: { typedef signed char __type; }; 12329: 12329: template<> 12329: struct __remove_unsigned 12329: { typedef short __type; }; 12329: 12329: template<> 12329: struct __remove_unsigned 12329: { typedef int __type; }; 12329: 12329: template<> 12329: struct __remove_unsigned 12329: { typedef long __type; }; 12329: 12329: template<> 12329: struct __remove_unsigned 12329: { typedef long long __type; }; 12329: 12329: 12329: template<> 12329: struct __remove_unsigned; 12329: 12329: template<> 12329: struct __remove_unsigned; 12329: 12329: 12329: 12329: template 12329: constexpr 12329: inline bool 12329: __is_null_pointer(_Type* __ptr) 12329: { return __ptr == 0; } 12329: 12329: template 12329: constexpr 12329: inline bool 12329: __is_null_pointer(_Type) 12329: { return false; } 12329: 12329: 12329: constexpr bool 12329: __is_null_pointer(std::nullptr_t) 12329: { return true; } 12329: 12329: 12329: 12329: 12329: template::__value> 12329: struct __promote 12329: { typedef double __type; }; 12329: 12329: 12329: 12329: 12329: template 12329: struct __promote<_Tp, false> 12329: { }; 12329: 12329: template<> 12329: struct __promote 12329: { typedef long double __type; }; 12329: 12329: template<> 12329: struct __promote 12329: { typedef double __type; }; 12329: 12329: template<> 12329: struct __promote 12329: { typedef float __type; }; 12329: # 211 "/usr/include/c++/12/ext/type_traits.h" 3 12329: template::__type, 12329: typename _Up2 = typename __promote<_Up>::__type> 12329: struct __promote_2 12329: { 12329: typedef __typeof__(_Tp2() + _Up2()) __type; 12329: }; 12329: 12329: template::__type, 12329: typename _Up2 = typename __promote<_Up>::__type, 12329: typename _Vp2 = typename __promote<_Vp>::__type> 12329: struct __promote_3 12329: { 12329: typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; 12329: }; 12329: 12329: template::__type, 12329: typename _Up2 = typename __promote<_Up>::__type, 12329: typename _Vp2 = typename __promote<_Vp>::__type, 12329: typename _Wp2 = typename __promote<_Wp>::__type> 12329: struct __promote_4 12329: { 12329: typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; 12329: }; 12329: 12329: 12329: 12329: } 12329: } 12329: # 66 "/usr/include/c++/12/bits/stl_iterator.h" 2 3 12329: 12329: # 1 "/usr/include/c++/12/bits/ptr_traits.h" 1 3 12329: # 46 "/usr/include/c++/12/bits/ptr_traits.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: class __undefined; 12329: 12329: 12329: 12329: template 12329: struct __get_first_arg 12329: { using type = __undefined; }; 12329: 12329: template class _SomeTemplate, typename _Tp, 12329: typename... _Types> 12329: struct __get_first_arg<_SomeTemplate<_Tp, _Types...>> 12329: { using type = _Tp; }; 12329: 12329: 12329: 12329: template 12329: struct __replace_first_arg 12329: { }; 12329: 12329: template class _SomeTemplate, typename _Up, 12329: typename _Tp, typename... _Types> 12329: struct __replace_first_arg<_SomeTemplate<_Tp, _Types...>, _Up> 12329: { using type = _SomeTemplate<_Up, _Types...>; }; 12329: # 81 "/usr/include/c++/12/bits/ptr_traits.h" 3 12329: template 12329: struct __ptr_traits_elem : __get_first_arg<_Ptr> 12329: { }; 12329: 12329: 12329: template 12329: struct __ptr_traits_elem<_Ptr, __void_t> 12329: { using type = typename _Ptr::element_type; }; 12329: 12329: template 12329: using __ptr_traits_elem_t = typename __ptr_traits_elem<_Ptr>::type; 12329: 12329: 12329: 12329: template::value> 12329: struct __ptr_traits_ptr_to 12329: { 12329: using pointer = _Ptr; 12329: using element_type = _Elt; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: static pointer 12329: pointer_to(element_type& __e) 12329: 12329: 12329: 12329: 12329: 12329: { return pointer::pointer_to(__e); } 12329: }; 12329: 12329: 12329: template 12329: struct __ptr_traits_ptr_to<_Ptr, _Elt, true> 12329: { }; 12329: 12329: 12329: template 12329: struct __ptr_traits_ptr_to<_Tp*, _Tp, false> 12329: { 12329: using pointer = _Tp*; 12329: using element_type = _Tp; 12329: 12329: 12329: 12329: 12329: 12329: 12329: static pointer 12329: pointer_to(element_type& __r) noexcept 12329: { return std::addressof(__r); } 12329: }; 12329: 12329: template 12329: struct __ptr_traits_impl : __ptr_traits_ptr_to<_Ptr, _Elt> 12329: { 12329: private: 12329: template 12329: struct __difference { using type = ptrdiff_t; }; 12329: 12329: template 12329: 12329: 12329: 12329: 12329: struct __difference<_Tp, __void_t> 12329: 12329: { using type = typename _Tp::difference_type; }; 12329: 12329: template 12329: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 12329: 12329: template 12329: 12329: 12329: 12329: 12329: struct __rebind<_Tp, _Up, __void_t>> 12329: 12329: { using type = typename _Tp::template rebind<_Up>; }; 12329: 12329: public: 12329: 12329: using pointer = _Ptr; 12329: 12329: 12329: using element_type = _Elt; 12329: 12329: 12329: using difference_type = typename __difference<_Ptr>::type; 12329: 12329: 12329: template 12329: using rebind = typename __rebind<_Ptr, _Up>::type; 12329: }; 12329: 12329: 12329: 12329: template 12329: struct __ptr_traits_impl<_Ptr, __undefined> 12329: { }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct pointer_traits : __ptr_traits_impl<_Ptr, __ptr_traits_elem_t<_Ptr>> 12329: { }; 12329: # 209 "/usr/include/c++/12/bits/ptr_traits.h" 3 12329: template 12329: struct pointer_traits<_Tp*> : __ptr_traits_ptr_to<_Tp*, _Tp> 12329: { 12329: 12329: typedef _Tp* pointer; 12329: 12329: typedef _Tp element_type; 12329: 12329: typedef ptrdiff_t difference_type; 12329: 12329: template using rebind = _Up*; 12329: }; 12329: 12329: 12329: template 12329: using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; 12329: 12329: template 12329: constexpr _Tp* 12329: __to_address(_Tp* __ptr) noexcept 12329: { 12329: static_assert(!std::is_function<_Tp>::value, "not a function pointer"); 12329: return __ptr; 12329: } 12329: 12329: 12329: template 12329: constexpr typename std::pointer_traits<_Ptr>::element_type* 12329: __to_address(const _Ptr& __ptr) 12329: { return std::__to_address(__ptr.operator->()); } 12329: # 282 "/usr/include/c++/12/bits/ptr_traits.h" 3 12329: 12329: } 12329: # 68 "/usr/include/c++/12/bits/stl_iterator.h" 2 3 12329: # 88 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 109 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: # 131 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: class reverse_iterator 12329: : public iterator::iterator_category, 12329: typename iterator_traits<_Iterator>::value_type, 12329: typename iterator_traits<_Iterator>::difference_type, 12329: typename iterator_traits<_Iterator>::pointer, 12329: typename iterator_traits<_Iterator>::reference> 12329: { 12329: template 12329: friend class reverse_iterator; 12329: # 150 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: protected: 12329: _Iterator current; 12329: 12329: typedef iterator_traits<_Iterator> __traits_type; 12329: 12329: public: 12329: typedef _Iterator iterator_type; 12329: typedef typename __traits_type::pointer pointer; 12329: 12329: typedef typename __traits_type::difference_type difference_type; 12329: typedef typename __traits_type::reference reference; 12329: # 181 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: 12329: reverse_iterator() 12329: noexcept(noexcept(_Iterator())) 12329: : current() 12329: { } 12329: 12329: 12329: 12329: 12329: explicit 12329: reverse_iterator(iterator_type __x) 12329: noexcept(noexcept(_Iterator(__x))) 12329: : current(__x) 12329: { } 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator(const reverse_iterator& __x) 12329: noexcept(noexcept(_Iterator(__x.current))) 12329: : current(__x.current) 12329: { } 12329: 12329: 12329: reverse_iterator& operator=(const reverse_iterator&) = default; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: 12329: 12329: 12329: reverse_iterator(const reverse_iterator<_Iter>& __x) 12329: noexcept(noexcept(_Iterator(__x.current))) 12329: : current(__x.current) 12329: { } 12329: 12329: 12329: template 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator& 12329: operator=(const reverse_iterator<_Iter>& __x) 12329: noexcept(noexcept(current = __x.current)) 12329: { 12329: current = __x.current; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator_type 12329: base() const 12329: noexcept(noexcept(_Iterator(current))) 12329: { return current; } 12329: # 258 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: 12329: reference 12329: operator*() const 12329: { 12329: _Iterator __tmp = current; 12329: return *--__tmp; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: pointer 12329: operator->() const 12329: 12329: 12329: 12329: 12329: { 12329: 12329: 12329: _Iterator __tmp = current; 12329: --__tmp; 12329: return _S_to_pointer(__tmp); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator& 12329: operator++() 12329: { 12329: --current; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: operator++(int) 12329: { 12329: reverse_iterator __tmp = *this; 12329: --current; 12329: return __tmp; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator& 12329: operator--() 12329: { 12329: ++current; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: operator--(int) 12329: { 12329: reverse_iterator __tmp = *this; 12329: ++current; 12329: return __tmp; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: operator+(difference_type __n) const 12329: { return reverse_iterator(current - __n); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator& 12329: operator+=(difference_type __n) 12329: { 12329: current -= __n; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: operator-(difference_type __n) const 12329: { return reverse_iterator(current + __n); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator& 12329: operator-=(difference_type __n) 12329: { 12329: current += __n; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: reference 12329: operator[](difference_type __n) const 12329: { return *(*this + __n); } 12329: # 418 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: private: 12329: template 12329: static _Tp* 12329: _S_to_pointer(_Tp* __p) 12329: { return __p; } 12329: 12329: template 12329: static pointer 12329: _S_to_pointer(_Tp __t) 12329: { return __t.operator->(); } 12329: }; 12329: # 441 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: 12329: inline bool 12329: operator==(const reverse_iterator<_Iterator>& __x, 12329: const reverse_iterator<_Iterator>& __y) 12329: { return __x.base() == __y.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator<(const reverse_iterator<_Iterator>& __x, 12329: const reverse_iterator<_Iterator>& __y) 12329: { return __y.base() < __x.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator!=(const reverse_iterator<_Iterator>& __x, 12329: const reverse_iterator<_Iterator>& __y) 12329: { return !(__x == __y); } 12329: 12329: template 12329: 12329: inline bool 12329: operator>(const reverse_iterator<_Iterator>& __x, 12329: const reverse_iterator<_Iterator>& __y) 12329: { return __y < __x; } 12329: 12329: template 12329: 12329: inline bool 12329: operator<=(const reverse_iterator<_Iterator>& __x, 12329: const reverse_iterator<_Iterator>& __y) 12329: { return !(__y < __x); } 12329: 12329: template 12329: 12329: inline bool 12329: operator>=(const reverse_iterator<_Iterator>& __x, 12329: const reverse_iterator<_Iterator>& __y) 12329: { return !(__x < __y); } 12329: 12329: 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator==(const reverse_iterator<_IteratorL>& __x, 12329: const reverse_iterator<_IteratorR>& __y) 12329: { return __x.base() == __y.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator<(const reverse_iterator<_IteratorL>& __x, 12329: const reverse_iterator<_IteratorR>& __y) 12329: { return __x.base() > __y.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator!=(const reverse_iterator<_IteratorL>& __x, 12329: const reverse_iterator<_IteratorR>& __y) 12329: { return __x.base() != __y.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator>(const reverse_iterator<_IteratorL>& __x, 12329: const reverse_iterator<_IteratorR>& __y) 12329: { return __x.base() < __y.base(); } 12329: 12329: template 12329: inline bool 12329: operator<=(const reverse_iterator<_IteratorL>& __x, 12329: const reverse_iterator<_IteratorR>& __y) 12329: { return __x.base() >= __y.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator>=(const reverse_iterator<_IteratorL>& __x, 12329: const reverse_iterator<_IteratorR>& __y) 12329: { return __x.base() <= __y.base(); } 12329: # 618 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: [[__nodiscard__]] 12329: inline auto 12329: operator-(const reverse_iterator<_IteratorL>& __x, 12329: const reverse_iterator<_IteratorR>& __y) 12329: -> decltype(__y.base() - __x.base()) 12329: { return __y.base() - __x.base(); } 12329: 12329: 12329: template 12329: 12329: inline reverse_iterator<_Iterator> 12329: operator+(typename reverse_iterator<_Iterator>::difference_type __n, 12329: const reverse_iterator<_Iterator>& __x) 12329: { return reverse_iterator<_Iterator>(__x.base() - __n); } 12329: 12329: 12329: 12329: template 12329: inline reverse_iterator<_Iterator> 12329: __make_reverse_iterator(_Iterator __i) 12329: { return reverse_iterator<_Iterator>(__i); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline reverse_iterator<_Iterator> 12329: make_reverse_iterator(_Iterator __i) 12329: { return reverse_iterator<_Iterator>(__i); } 12329: # 662 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: 12329: auto 12329: __niter_base(reverse_iterator<_Iterator> __it) 12329: -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) 12329: { return __make_reverse_iterator(__niter_base(__it.base())); } 12329: 12329: template 12329: struct __is_move_iterator > 12329: : __is_move_iterator<_Iterator> 12329: { }; 12329: 12329: template 12329: 12329: auto 12329: __miter_base(reverse_iterator<_Iterator> __it) 12329: -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) 12329: { return __make_reverse_iterator(__miter_base(__it.base())); } 12329: # 693 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: class back_insert_iterator 12329: : public iterator 12329: { 12329: protected: 12329: _Container* container; 12329: 12329: public: 12329: 12329: typedef _Container container_type; 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: back_insert_iterator(_Container& __x) 12329: : container(std::__addressof(__x)) { } 12329: # 731 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: 12329: back_insert_iterator& 12329: operator=(const typename _Container::value_type& __value) 12329: { 12329: container->push_back(__value); 12329: return *this; 12329: } 12329: 12329: 12329: back_insert_iterator& 12329: operator=(typename _Container::value_type&& __value) 12329: { 12329: container->push_back(std::move(__value)); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: back_insert_iterator& 12329: operator*() 12329: { return *this; } 12329: 12329: 12329: 12329: back_insert_iterator& 12329: operator++() 12329: { return *this; } 12329: 12329: 12329: 12329: back_insert_iterator 12329: operator++(int) 12329: { return *this; } 12329: }; 12329: # 778 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: 12329: inline back_insert_iterator<_Container> 12329: back_inserter(_Container& __x) 12329: { return back_insert_iterator<_Container>(__x); } 12329: # 794 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: class front_insert_iterator 12329: : public iterator 12329: { 12329: protected: 12329: _Container* container; 12329: 12329: public: 12329: 12329: typedef _Container container_type; 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: front_insert_iterator(_Container& __x) 12329: : container(std::__addressof(__x)) { } 12329: # 832 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: 12329: front_insert_iterator& 12329: operator=(const typename _Container::value_type& __value) 12329: { 12329: container->push_front(__value); 12329: return *this; 12329: } 12329: 12329: 12329: front_insert_iterator& 12329: operator=(typename _Container::value_type&& __value) 12329: { 12329: container->push_front(std::move(__value)); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: front_insert_iterator& 12329: operator*() 12329: { return *this; } 12329: 12329: 12329: 12329: front_insert_iterator& 12329: operator++() 12329: { return *this; } 12329: 12329: 12329: 12329: front_insert_iterator 12329: operator++(int) 12329: { return *this; } 12329: }; 12329: # 879 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: 12329: inline front_insert_iterator<_Container> 12329: front_inserter(_Container& __x) 12329: { return front_insert_iterator<_Container>(__x); } 12329: # 899 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: class insert_iterator 12329: : public iterator 12329: { 12329: 12329: 12329: 12329: typedef typename _Container::iterator _Iter; 12329: 12329: protected: 12329: _Container* container; 12329: _Iter iter; 12329: 12329: public: 12329: 12329: typedef _Container container_type; 12329: # 924 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: 12329: insert_iterator(_Container& __x, _Iter __i) 12329: : container(std::__addressof(__x)), iter(__i) {} 12329: # 960 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: 12329: insert_iterator& 12329: operator=(const typename _Container::value_type& __value) 12329: { 12329: iter = container->insert(iter, __value); 12329: ++iter; 12329: return *this; 12329: } 12329: 12329: 12329: insert_iterator& 12329: operator=(typename _Container::value_type&& __value) 12329: { 12329: iter = container->insert(iter, std::move(__value)); 12329: ++iter; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: insert_iterator& 12329: operator*() 12329: { return *this; } 12329: 12329: 12329: 12329: insert_iterator& 12329: operator++() 12329: { return *this; } 12329: 12329: 12329: 12329: insert_iterator& 12329: operator++(int) 12329: { return *this; } 12329: }; 12329: 12329: #pragma GCC diagnostic pop 12329: # 1019 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: 12329: inline insert_iterator<_Container> 12329: inserter(_Container& __x, typename _Container::iterator __i) 12329: { return insert_iterator<_Container>(__x, __i); } 12329: 12329: 12329: 12329: 12329: 12329: } 12329: 12329: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 1042 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: class __normal_iterator 12329: { 12329: protected: 12329: _Iterator _M_current; 12329: 12329: typedef std::iterator_traits<_Iterator> __traits_type; 12329: 12329: 12329: template 12329: using __convertible_from 12329: = std::__enable_if_t::value>; 12329: 12329: 12329: public: 12329: typedef _Iterator iterator_type; 12329: typedef typename __traits_type::iterator_category iterator_category; 12329: typedef typename __traits_type::value_type value_type; 12329: typedef typename __traits_type::difference_type difference_type; 12329: typedef typename __traits_type::reference reference; 12329: typedef typename __traits_type::pointer pointer; 12329: 12329: 12329: 12329: 12329: 12329: constexpr __normal_iterator() noexcept 12329: : _M_current(_Iterator()) { } 12329: 12329: explicit 12329: __normal_iterator(const _Iterator& __i) noexcept 12329: : _M_current(__i) { } 12329: 12329: 12329: 12329: template> 12329: 12329: __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) 12329: noexcept 12329: # 1090 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: : _M_current(__i.base()) { } 12329: 12329: 12329: 12329: reference 12329: operator*() const noexcept 12329: { return *_M_current; } 12329: 12329: 12329: pointer 12329: operator->() const noexcept 12329: { return _M_current; } 12329: 12329: 12329: __normal_iterator& 12329: operator++() noexcept 12329: { 12329: ++_M_current; 12329: return *this; 12329: } 12329: 12329: 12329: __normal_iterator 12329: operator++(int) noexcept 12329: { return __normal_iterator(_M_current++); } 12329: 12329: 12329: 12329: __normal_iterator& 12329: operator--() noexcept 12329: { 12329: --_M_current; 12329: return *this; 12329: } 12329: 12329: 12329: __normal_iterator 12329: operator--(int) noexcept 12329: { return __normal_iterator(_M_current--); } 12329: 12329: 12329: 12329: reference 12329: operator[](difference_type __n) const noexcept 12329: { return _M_current[__n]; } 12329: 12329: 12329: __normal_iterator& 12329: operator+=(difference_type __n) noexcept 12329: { _M_current += __n; return *this; } 12329: 12329: 12329: __normal_iterator 12329: operator+(difference_type __n) const noexcept 12329: { return __normal_iterator(_M_current + __n); } 12329: 12329: 12329: __normal_iterator& 12329: operator-=(difference_type __n) noexcept 12329: { _M_current -= __n; return *this; } 12329: 12329: 12329: __normal_iterator 12329: operator-(difference_type __n) const noexcept 12329: { return __normal_iterator(_M_current - __n); } 12329: 12329: 12329: const _Iterator& 12329: base() const noexcept 12329: { return _M_current; } 12329: }; 12329: # 1210 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: 12329: inline bool 12329: operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, 12329: const __normal_iterator<_IteratorR, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() == __rhs.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator==(const __normal_iterator<_Iterator, _Container>& __lhs, 12329: const __normal_iterator<_Iterator, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() == __rhs.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, 12329: const __normal_iterator<_IteratorR, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() != __rhs.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 12329: const __normal_iterator<_Iterator, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() != __rhs.base(); } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, 12329: const __normal_iterator<_IteratorR, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() < __rhs.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator<(const __normal_iterator<_Iterator, _Container>& __lhs, 12329: const __normal_iterator<_Iterator, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() < __rhs.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, 12329: const __normal_iterator<_IteratorR, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() > __rhs.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator>(const __normal_iterator<_Iterator, _Container>& __lhs, 12329: const __normal_iterator<_Iterator, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() > __rhs.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, 12329: const __normal_iterator<_IteratorR, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() <= __rhs.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, 12329: const __normal_iterator<_Iterator, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() <= __rhs.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, 12329: const __normal_iterator<_IteratorR, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() >= __rhs.base(); } 12329: 12329: template 12329: 12329: inline bool 12329: operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, 12329: const __normal_iterator<_Iterator, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() >= __rhs.base(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: 12329: [[__nodiscard__]] 12329: inline auto 12329: operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, 12329: const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept 12329: -> decltype(__lhs.base() - __rhs.base()) 12329: 12329: 12329: 12329: 12329: 12329: { return __lhs.base() - __rhs.base(); } 12329: 12329: template 12329: 12329: inline typename __normal_iterator<_Iterator, _Container>::difference_type 12329: operator-(const __normal_iterator<_Iterator, _Container>& __lhs, 12329: const __normal_iterator<_Iterator, _Container>& __rhs) 12329: noexcept 12329: { return __lhs.base() - __rhs.base(); } 12329: 12329: template 12329: 12329: inline __normal_iterator<_Iterator, _Container> 12329: operator+(typename __normal_iterator<_Iterator, _Container>::difference_type 12329: __n, const __normal_iterator<_Iterator, _Container>& __i) 12329: noexcept 12329: { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } 12329: 12329: 12329: } 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: 12329: _Iterator 12329: __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) 12329: noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) 12329: { return __it.base(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: constexpr auto 12329: __to_address(const __gnu_cxx::__normal_iterator<_Iterator, 12329: _Container>& __it) noexcept 12329: -> decltype(std::__to_address(__it.base())) 12329: { return std::__to_address(__it.base()); } 12329: # 1417 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: namespace __detail 12329: { 12329: # 1433 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: } 12329: # 1444 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: class move_iterator 12329: 12329: 12329: 12329: { 12329: _Iterator _M_current; 12329: 12329: using __traits_type = iterator_traits<_Iterator>; 12329: 12329: using __base_ref = typename __traits_type::reference; 12329: 12329: 12329: template 12329: friend class move_iterator; 12329: # 1468 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: public: 12329: using iterator_type = _Iterator; 12329: # 1479 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: typedef typename __traits_type::iterator_category iterator_category; 12329: typedef typename __traits_type::value_type value_type; 12329: typedef typename __traits_type::difference_type difference_type; 12329: 12329: typedef _Iterator pointer; 12329: 12329: 12329: using reference 12329: = __conditional_t::value, 12329: typename remove_reference<__base_ref>::type&&, 12329: __base_ref>; 12329: 12329: 12329: 12329: move_iterator() 12329: : _M_current() { } 12329: 12329: explicit 12329: move_iterator(iterator_type __i) 12329: : _M_current(std::move(__i)) { } 12329: 12329: template 12329: 12329: 12329: 12329: 12329: move_iterator(const move_iterator<_Iter>& __i) 12329: : _M_current(__i._M_current) { } 12329: 12329: template 12329: 12329: 12329: 12329: 12329: 12329: move_iterator& operator=(const move_iterator<_Iter>& __i) 12329: { 12329: _M_current = __i._M_current; 12329: return *this; 12329: } 12329: 12329: 12329: [[__nodiscard__]] 12329: iterator_type 12329: base() const 12329: { return _M_current; } 12329: # 1537 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: [[__nodiscard__]] 12329: reference 12329: operator*() const 12329: 12329: 12329: 12329: { return static_cast(*_M_current); } 12329: 12329: 12329: [[__nodiscard__]] 12329: pointer 12329: operator->() const 12329: { return _M_current; } 12329: 12329: move_iterator& 12329: operator++() 12329: { 12329: ++_M_current; 12329: return *this; 12329: } 12329: 12329: move_iterator 12329: operator++(int) 12329: { 12329: move_iterator __tmp = *this; 12329: ++_M_current; 12329: return __tmp; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: move_iterator& 12329: operator--() 12329: { 12329: --_M_current; 12329: return *this; 12329: } 12329: 12329: move_iterator 12329: operator--(int) 12329: { 12329: move_iterator __tmp = *this; 12329: --_M_current; 12329: return __tmp; 12329: } 12329: 12329: [[__nodiscard__]] 12329: move_iterator 12329: operator+(difference_type __n) const 12329: { return move_iterator(_M_current + __n); } 12329: 12329: move_iterator& 12329: operator+=(difference_type __n) 12329: { 12329: _M_current += __n; 12329: return *this; 12329: } 12329: 12329: [[__nodiscard__]] 12329: move_iterator 12329: operator-(difference_type __n) const 12329: { return move_iterator(_M_current - __n); } 12329: 12329: move_iterator& 12329: operator-=(difference_type __n) 12329: { 12329: _M_current -= __n; 12329: return *this; 12329: } 12329: 12329: [[__nodiscard__]] 12329: reference 12329: operator[](difference_type __n) const 12329: 12329: 12329: 12329: { return std::move(_M_current[__n]); } 12329: # 1651 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: }; 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline bool 12329: operator==(const move_iterator<_IteratorL>& __x, 12329: const move_iterator<_IteratorR>& __y) 12329: 12329: 12329: 12329: { return __x.base() == __y.base(); } 12329: # 1672 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: [[__nodiscard__]] 12329: inline bool 12329: operator!=(const move_iterator<_IteratorL>& __x, 12329: const move_iterator<_IteratorR>& __y) 12329: { return !(__x == __y); } 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline bool 12329: operator<(const move_iterator<_IteratorL>& __x, 12329: const move_iterator<_IteratorR>& __y) 12329: 12329: 12329: 12329: { return __x.base() < __y.base(); } 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline bool 12329: operator<=(const move_iterator<_IteratorL>& __x, 12329: const move_iterator<_IteratorR>& __y) 12329: 12329: 12329: 12329: { return !(__y < __x); } 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline bool 12329: operator>(const move_iterator<_IteratorL>& __x, 12329: const move_iterator<_IteratorR>& __y) 12329: 12329: 12329: 12329: { return __y < __x; } 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline bool 12329: operator>=(const move_iterator<_IteratorL>& __x, 12329: const move_iterator<_IteratorR>& __y) 12329: 12329: 12329: 12329: { return !(__x < __y); } 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline bool 12329: operator==(const move_iterator<_Iterator>& __x, 12329: const move_iterator<_Iterator>& __y) 12329: { return __x.base() == __y.base(); } 12329: # 1738 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: [[__nodiscard__]] 12329: inline bool 12329: operator!=(const move_iterator<_Iterator>& __x, 12329: const move_iterator<_Iterator>& __y) 12329: { return !(__x == __y); } 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline bool 12329: operator<(const move_iterator<_Iterator>& __x, 12329: const move_iterator<_Iterator>& __y) 12329: { return __x.base() < __y.base(); } 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline bool 12329: operator<=(const move_iterator<_Iterator>& __x, 12329: const move_iterator<_Iterator>& __y) 12329: { return !(__y < __x); } 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline bool 12329: operator>(const move_iterator<_Iterator>& __x, 12329: const move_iterator<_Iterator>& __y) 12329: { return __y < __x; } 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline bool 12329: operator>=(const move_iterator<_Iterator>& __x, 12329: const move_iterator<_Iterator>& __y) 12329: { return !(__x < __y); } 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline auto 12329: operator-(const move_iterator<_IteratorL>& __x, 12329: const move_iterator<_IteratorR>& __y) 12329: -> decltype(__x.base() - __y.base()) 12329: { return __x.base() - __y.base(); } 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline move_iterator<_Iterator> 12329: operator+(typename move_iterator<_Iterator>::difference_type __n, 12329: const move_iterator<_Iterator>& __x) 12329: { return __x + __n; } 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline move_iterator<_Iterator> 12329: make_move_iterator(_Iterator __i) 12329: { return move_iterator<_Iterator>(std::move(__i)); } 12329: 12329: template::value_type>::value, 12329: _Iterator, move_iterator<_Iterator>>> 12329: inline _ReturnType 12329: __make_move_if_noexcept_iterator(_Iterator __i) 12329: { return _ReturnType(__i); } 12329: 12329: 12329: 12329: template::value, 12329: const _Tp*, move_iterator<_Tp*>>> 12329: inline _ReturnType 12329: __make_move_if_noexcept_iterator(_Tp* __i) 12329: { return _ReturnType(__i); } 12329: # 2552 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: template 12329: 12329: auto 12329: __niter_base(move_iterator<_Iterator> __it) 12329: -> decltype(make_move_iterator(__niter_base(__it.base()))) 12329: { return make_move_iterator(__niter_base(__it.base())); } 12329: 12329: template 12329: struct __is_move_iterator > 12329: { 12329: enum { __value = 1 }; 12329: typedef __true_type __type; 12329: }; 12329: 12329: template 12329: 12329: auto 12329: __miter_base(move_iterator<_Iterator> __it) 12329: -> decltype(__miter_base(__it.base())) 12329: { return __miter_base(__it.base()); } 12329: # 2601 "/usr/include/c++/12/bits/stl_iterator.h" 3 12329: 12329: } 12329: # 48 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/stl_function.h" 1 3 12329: # 63 "/usr/include/c++/12/bits/stl_function.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 116 "/usr/include/c++/12/bits/stl_function.h" 3 12329: template 12329: struct unary_function 12329: { 12329: 12329: typedef _Arg argument_type; 12329: 12329: 12329: typedef _Result result_type; 12329: } __attribute__ ((__deprecated__)); 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct binary_function 12329: { 12329: 12329: typedef _Arg1 first_argument_type; 12329: 12329: 12329: typedef _Arg2 second_argument_type; 12329: 12329: 12329: typedef _Result result_type; 12329: } __attribute__ ((__deprecated__)); 12329: # 157 "/usr/include/c++/12/bits/stl_function.h" 3 12329: struct __is_transparent; 12329: 12329: template 12329: struct plus; 12329: 12329: template 12329: struct minus; 12329: 12329: template 12329: struct multiplies; 12329: 12329: template 12329: struct divides; 12329: 12329: template 12329: struct modulus; 12329: 12329: template 12329: struct negate; 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: template 12329: struct plus : public binary_function<_Tp, _Tp, _Tp> 12329: { 12329: 12329: constexpr 12329: _Tp 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x + __y; } 12329: }; 12329: 12329: 12329: template 12329: struct minus : public binary_function<_Tp, _Tp, _Tp> 12329: { 12329: constexpr 12329: _Tp 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x - __y; } 12329: }; 12329: 12329: 12329: template 12329: struct multiplies : public binary_function<_Tp, _Tp, _Tp> 12329: { 12329: constexpr 12329: _Tp 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x * __y; } 12329: }; 12329: 12329: 12329: template 12329: struct divides : public binary_function<_Tp, _Tp, _Tp> 12329: { 12329: constexpr 12329: _Tp 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x / __y; } 12329: }; 12329: 12329: 12329: template 12329: struct modulus : public binary_function<_Tp, _Tp, _Tp> 12329: { 12329: constexpr 12329: _Tp 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x % __y; } 12329: }; 12329: 12329: 12329: template 12329: struct negate : public unary_function<_Tp, _Tp> 12329: { 12329: constexpr 12329: _Tp 12329: operator()(const _Tp& __x) const 12329: { return -__x; } 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: struct plus 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) + std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) + std::forward<_Up>(__u)) 12329: { return std::forward<_Tp>(__t) + std::forward<_Up>(__u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: 12329: template<> 12329: struct minus 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) - std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) - std::forward<_Up>(__u)) 12329: { return std::forward<_Tp>(__t) - std::forward<_Up>(__u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: 12329: template<> 12329: struct multiplies 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) * std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) * std::forward<_Up>(__u)) 12329: { return std::forward<_Tp>(__t) * std::forward<_Up>(__u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: 12329: template<> 12329: struct divides 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) / std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) / std::forward<_Up>(__u)) 12329: { return std::forward<_Tp>(__t) / std::forward<_Up>(__u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: 12329: template<> 12329: struct modulus 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) % std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) % std::forward<_Up>(__u)) 12329: { return std::forward<_Tp>(__t) % std::forward<_Up>(__u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: 12329: template<> 12329: struct negate 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t) const 12329: noexcept(noexcept(-std::forward<_Tp>(__t))) 12329: -> decltype(-std::forward<_Tp>(__t)) 12329: { return -std::forward<_Tp>(__t); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: # 349 "/usr/include/c++/12/bits/stl_function.h" 3 12329: template 12329: struct equal_to; 12329: 12329: template 12329: struct not_equal_to; 12329: 12329: template 12329: struct greater; 12329: 12329: template 12329: struct less; 12329: 12329: template 12329: struct greater_equal; 12329: 12329: template 12329: struct less_equal; 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: template 12329: struct equal_to : public binary_function<_Tp, _Tp, bool> 12329: { 12329: constexpr 12329: bool 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x == __y; } 12329: }; 12329: 12329: 12329: template 12329: struct not_equal_to : public binary_function<_Tp, _Tp, bool> 12329: { 12329: constexpr 12329: bool 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x != __y; } 12329: }; 12329: 12329: 12329: template 12329: struct greater : public binary_function<_Tp, _Tp, bool> 12329: { 12329: constexpr 12329: bool 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x > __y; } 12329: }; 12329: 12329: 12329: template 12329: struct less : public binary_function<_Tp, _Tp, bool> 12329: { 12329: constexpr 12329: bool 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x < __y; } 12329: }; 12329: 12329: 12329: template 12329: struct greater_equal : public binary_function<_Tp, _Tp, bool> 12329: { 12329: constexpr 12329: bool 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x >= __y; } 12329: }; 12329: 12329: 12329: template 12329: struct less_equal : public binary_function<_Tp, _Tp, bool> 12329: { 12329: constexpr 12329: bool 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x <= __y; } 12329: }; 12329: 12329: 12329: template 12329: struct greater<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 12329: { 12329: constexpr bool 12329: operator()(_Tp* __x, _Tp* __y) const noexcept 12329: { 12329: 12329: if (std::__is_constant_evaluated()) 12329: return __x > __y; 12329: 12329: return (long unsigned int)__x > (long unsigned int)__y; 12329: } 12329: }; 12329: 12329: 12329: template 12329: struct less<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 12329: { 12329: constexpr bool 12329: operator()(_Tp* __x, _Tp* __y) const noexcept 12329: { 12329: 12329: if (std::__is_constant_evaluated()) 12329: return __x < __y; 12329: 12329: return (long unsigned int)__x < (long unsigned int)__y; 12329: } 12329: }; 12329: 12329: 12329: template 12329: struct greater_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 12329: { 12329: constexpr bool 12329: operator()(_Tp* __x, _Tp* __y) const noexcept 12329: { 12329: 12329: if (std::__is_constant_evaluated()) 12329: return __x >= __y; 12329: 12329: return (long unsigned int)__x >= (long unsigned int)__y; 12329: } 12329: }; 12329: 12329: 12329: template 12329: struct less_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 12329: { 12329: constexpr bool 12329: operator()(_Tp* __x, _Tp* __y) const noexcept 12329: { 12329: 12329: if (std::__is_constant_evaluated()) 12329: return __x <= __y; 12329: 12329: return (long unsigned int)__x <= (long unsigned int)__y; 12329: } 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: 12329: template<> 12329: struct equal_to 12329: { 12329: template 12329: constexpr auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) == std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) == std::forward<_Up>(__u)) 12329: { return std::forward<_Tp>(__t) == std::forward<_Up>(__u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: 12329: template<> 12329: struct not_equal_to 12329: { 12329: template 12329: constexpr auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) != std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) != std::forward<_Up>(__u)) 12329: { return std::forward<_Tp>(__t) != std::forward<_Up>(__u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: 12329: template<> 12329: struct greater 12329: { 12329: template 12329: constexpr auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) > std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) > std::forward<_Up>(__u)) 12329: { 12329: return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), 12329: __ptr_cmp<_Tp, _Up>{}); 12329: } 12329: 12329: template 12329: constexpr bool 12329: operator()(_Tp* __t, _Up* __u) const noexcept 12329: { return greater>{}(__t, __u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: 12329: private: 12329: template 12329: static constexpr decltype(auto) 12329: _S_cmp(_Tp&& __t, _Up&& __u, false_type) 12329: { return std::forward<_Tp>(__t) > std::forward<_Up>(__u); } 12329: 12329: template 12329: static constexpr bool 12329: _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept 12329: { 12329: return greater{}( 12329: static_cast(std::forward<_Tp>(__t)), 12329: static_cast(std::forward<_Up>(__u))); 12329: } 12329: 12329: 12329: template 12329: struct __not_overloaded2 : true_type { }; 12329: 12329: 12329: template 12329: struct __not_overloaded2<_Tp, _Up, __void_t< 12329: decltype(std::declval<_Tp>().operator>(std::declval<_Up>()))>> 12329: : false_type { }; 12329: 12329: 12329: template 12329: struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; 12329: 12329: 12329: template 12329: struct __not_overloaded<_Tp, _Up, __void_t< 12329: decltype(operator>(std::declval<_Tp>(), std::declval<_Up>()))>> 12329: : false_type { }; 12329: 12329: template 12329: using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, 12329: is_convertible<_Tp, const volatile void*>, 12329: is_convertible<_Up, const volatile void*>>; 12329: }; 12329: 12329: 12329: template<> 12329: struct less 12329: { 12329: template 12329: constexpr auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) < std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) < std::forward<_Up>(__u)) 12329: { 12329: return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), 12329: __ptr_cmp<_Tp, _Up>{}); 12329: } 12329: 12329: template 12329: constexpr bool 12329: operator()(_Tp* __t, _Up* __u) const noexcept 12329: { return less>{}(__t, __u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: 12329: private: 12329: template 12329: static constexpr decltype(auto) 12329: _S_cmp(_Tp&& __t, _Up&& __u, false_type) 12329: { return std::forward<_Tp>(__t) < std::forward<_Up>(__u); } 12329: 12329: template 12329: static constexpr bool 12329: _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept 12329: { 12329: return less{}( 12329: static_cast(std::forward<_Tp>(__t)), 12329: static_cast(std::forward<_Up>(__u))); 12329: } 12329: 12329: 12329: template 12329: struct __not_overloaded2 : true_type { }; 12329: 12329: 12329: template 12329: struct __not_overloaded2<_Tp, _Up, __void_t< 12329: decltype(std::declval<_Tp>().operator<(std::declval<_Up>()))>> 12329: : false_type { }; 12329: 12329: 12329: template 12329: struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; 12329: 12329: 12329: template 12329: struct __not_overloaded<_Tp, _Up, __void_t< 12329: decltype(operator<(std::declval<_Tp>(), std::declval<_Up>()))>> 12329: : false_type { }; 12329: 12329: template 12329: using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, 12329: is_convertible<_Tp, const volatile void*>, 12329: is_convertible<_Up, const volatile void*>>; 12329: }; 12329: 12329: 12329: template<> 12329: struct greater_equal 12329: { 12329: template 12329: constexpr auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) >= std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) >= std::forward<_Up>(__u)) 12329: { 12329: return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), 12329: __ptr_cmp<_Tp, _Up>{}); 12329: } 12329: 12329: template 12329: constexpr bool 12329: operator()(_Tp* __t, _Up* __u) const noexcept 12329: { return greater_equal>{}(__t, __u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: 12329: private: 12329: template 12329: static constexpr decltype(auto) 12329: _S_cmp(_Tp&& __t, _Up&& __u, false_type) 12329: { return std::forward<_Tp>(__t) >= std::forward<_Up>(__u); } 12329: 12329: template 12329: static constexpr bool 12329: _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept 12329: { 12329: return greater_equal{}( 12329: static_cast(std::forward<_Tp>(__t)), 12329: static_cast(std::forward<_Up>(__u))); 12329: } 12329: 12329: 12329: template 12329: struct __not_overloaded2 : true_type { }; 12329: 12329: 12329: template 12329: struct __not_overloaded2<_Tp, _Up, __void_t< 12329: decltype(std::declval<_Tp>().operator>=(std::declval<_Up>()))>> 12329: : false_type { }; 12329: 12329: 12329: template 12329: struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; 12329: 12329: 12329: template 12329: struct __not_overloaded<_Tp, _Up, __void_t< 12329: decltype(operator>=(std::declval<_Tp>(), std::declval<_Up>()))>> 12329: : false_type { }; 12329: 12329: template 12329: using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, 12329: is_convertible<_Tp, const volatile void*>, 12329: is_convertible<_Up, const volatile void*>>; 12329: }; 12329: 12329: 12329: template<> 12329: struct less_equal 12329: { 12329: template 12329: constexpr auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) <= std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) <= std::forward<_Up>(__u)) 12329: { 12329: return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), 12329: __ptr_cmp<_Tp, _Up>{}); 12329: } 12329: 12329: template 12329: constexpr bool 12329: operator()(_Tp* __t, _Up* __u) const noexcept 12329: { return less_equal>{}(__t, __u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: 12329: private: 12329: template 12329: static constexpr decltype(auto) 12329: _S_cmp(_Tp&& __t, _Up&& __u, false_type) 12329: { return std::forward<_Tp>(__t) <= std::forward<_Up>(__u); } 12329: 12329: template 12329: static constexpr bool 12329: _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept 12329: { 12329: return less_equal{}( 12329: static_cast(std::forward<_Tp>(__t)), 12329: static_cast(std::forward<_Up>(__u))); 12329: } 12329: 12329: 12329: template 12329: struct __not_overloaded2 : true_type { }; 12329: 12329: 12329: template 12329: struct __not_overloaded2<_Tp, _Up, __void_t< 12329: decltype(std::declval<_Tp>().operator<=(std::declval<_Up>()))>> 12329: : false_type { }; 12329: 12329: 12329: template 12329: struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; 12329: 12329: 12329: template 12329: struct __not_overloaded<_Tp, _Up, __void_t< 12329: decltype(operator<=(std::declval<_Tp>(), std::declval<_Up>()))>> 12329: : false_type { }; 12329: 12329: template 12329: using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, 12329: is_convertible<_Tp, const volatile void*>, 12329: is_convertible<_Up, const volatile void*>>; 12329: }; 12329: # 781 "/usr/include/c++/12/bits/stl_function.h" 3 12329: template 12329: struct logical_and; 12329: 12329: template 12329: struct logical_or; 12329: 12329: template 12329: struct logical_not; 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: template 12329: struct logical_and : public binary_function<_Tp, _Tp, bool> 12329: { 12329: constexpr 12329: bool 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x && __y; } 12329: }; 12329: 12329: 12329: template 12329: struct logical_or : public binary_function<_Tp, _Tp, bool> 12329: { 12329: constexpr 12329: bool 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x || __y; } 12329: }; 12329: 12329: 12329: template 12329: struct logical_not : public unary_function<_Tp, bool> 12329: { 12329: constexpr 12329: bool 12329: operator()(const _Tp& __x) const 12329: { return !__x; } 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: 12329: template<> 12329: struct logical_and 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) && std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) && std::forward<_Up>(__u)) 12329: { return std::forward<_Tp>(__t) && std::forward<_Up>(__u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: 12329: template<> 12329: struct logical_or 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) || std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) || std::forward<_Up>(__u)) 12329: { return std::forward<_Tp>(__t) || std::forward<_Up>(__u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: 12329: template<> 12329: struct logical_not 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t) const 12329: noexcept(noexcept(!std::forward<_Tp>(__t))) 12329: -> decltype(!std::forward<_Tp>(__t)) 12329: { return !std::forward<_Tp>(__t); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: struct bit_and; 12329: 12329: template 12329: struct bit_or; 12329: 12329: template 12329: struct bit_xor; 12329: 12329: template 12329: struct bit_not; 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: 12329: template 12329: struct bit_and : public binary_function<_Tp, _Tp, _Tp> 12329: { 12329: constexpr 12329: _Tp 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x & __y; } 12329: }; 12329: 12329: template 12329: struct bit_or : public binary_function<_Tp, _Tp, _Tp> 12329: { 12329: constexpr 12329: _Tp 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x | __y; } 12329: }; 12329: 12329: template 12329: struct bit_xor : public binary_function<_Tp, _Tp, _Tp> 12329: { 12329: constexpr 12329: _Tp 12329: operator()(const _Tp& __x, const _Tp& __y) const 12329: { return __x ^ __y; } 12329: }; 12329: 12329: template 12329: struct bit_not : public unary_function<_Tp, _Tp> 12329: { 12329: constexpr 12329: _Tp 12329: operator()(const _Tp& __x) const 12329: { return ~__x; } 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: template <> 12329: struct bit_and 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) & std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) & std::forward<_Up>(__u)) 12329: { return std::forward<_Tp>(__t) & std::forward<_Up>(__u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: template <> 12329: struct bit_or 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) | std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) | std::forward<_Up>(__u)) 12329: { return std::forward<_Tp>(__t) | std::forward<_Up>(__u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: template <> 12329: struct bit_xor 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t, _Up&& __u) const 12329: noexcept(noexcept(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u))) 12329: -> decltype(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u)) 12329: { return std::forward<_Tp>(__t) ^ std::forward<_Up>(__u); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: template <> 12329: struct bit_not 12329: { 12329: template 12329: constexpr 12329: auto 12329: operator()(_Tp&& __t) const 12329: noexcept(noexcept(~std::forward<_Tp>(__t))) 12329: -> decltype(~std::forward<_Tp>(__t)) 12329: { return ~std::forward<_Tp>(__t); } 12329: 12329: typedef __is_transparent is_transparent; 12329: }; 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: # 1023 "/usr/include/c++/12/bits/stl_function.h" 3 12329: template 12329: class unary_negate 12329: : public unary_function 12329: { 12329: protected: 12329: _Predicate _M_pred; 12329: 12329: public: 12329: constexpr 12329: explicit 12329: unary_negate(const _Predicate& __x) : _M_pred(__x) { } 12329: 12329: constexpr 12329: bool 12329: operator()(const typename _Predicate::argument_type& __x) const 12329: { return !_M_pred(__x); } 12329: }; 12329: 12329: 12329: template 12329: 12329: constexpr 12329: inline unary_negate<_Predicate> 12329: not1(const _Predicate& __pred) 12329: { return unary_negate<_Predicate>(__pred); } 12329: 12329: 12329: template 12329: class binary_negate 12329: : public binary_function 12329: { 12329: protected: 12329: _Predicate _M_pred; 12329: 12329: public: 12329: constexpr 12329: explicit 12329: binary_negate(const _Predicate& __x) : _M_pred(__x) { } 12329: 12329: constexpr 12329: bool 12329: operator()(const typename _Predicate::first_argument_type& __x, 12329: const typename _Predicate::second_argument_type& __y) const 12329: { return !_M_pred(__x, __y); } 12329: }; 12329: 12329: 12329: template 12329: 12329: constexpr 12329: inline binary_negate<_Predicate> 12329: not2(const _Predicate& __pred) 12329: { return binary_negate<_Predicate>(__pred); } 12329: # 1104 "/usr/include/c++/12/bits/stl_function.h" 3 12329: template 12329: class pointer_to_unary_function : public unary_function<_Arg, _Result> 12329: { 12329: protected: 12329: _Result (*_M_ptr)(_Arg); 12329: 12329: public: 12329: pointer_to_unary_function() { } 12329: 12329: explicit 12329: pointer_to_unary_function(_Result (*__x)(_Arg)) 12329: : _M_ptr(__x) { } 12329: 12329: _Result 12329: operator()(_Arg __x) const 12329: { return _M_ptr(__x); } 12329: } __attribute__ ((__deprecated__)); 12329: 12329: 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::function" "' instead"))) 12329: inline pointer_to_unary_function<_Arg, _Result> 12329: ptr_fun(_Result (*__x)(_Arg)) 12329: { return pointer_to_unary_function<_Arg, _Result>(__x); } 12329: 12329: 12329: template 12329: class pointer_to_binary_function 12329: : public binary_function<_Arg1, _Arg2, _Result> 12329: { 12329: protected: 12329: _Result (*_M_ptr)(_Arg1, _Arg2); 12329: 12329: public: 12329: pointer_to_binary_function() { } 12329: 12329: explicit 12329: pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) 12329: : _M_ptr(__x) { } 12329: 12329: _Result 12329: operator()(_Arg1 __x, _Arg2 __y) const 12329: { return _M_ptr(__x, __y); } 12329: } __attribute__ ((__deprecated__)); 12329: 12329: 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::function" "' instead"))) 12329: inline pointer_to_binary_function<_Arg1, _Arg2, _Result> 12329: ptr_fun(_Result (*__x)(_Arg1, _Arg2)) 12329: { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } 12329: 12329: 12329: template 12329: struct _Identity 12329: : public unary_function<_Tp, _Tp> 12329: { 12329: _Tp& 12329: operator()(_Tp& __x) const 12329: { return __x; } 12329: 12329: const _Tp& 12329: operator()(const _Tp& __x) const 12329: { return __x; } 12329: }; 12329: 12329: 12329: template struct _Identity : _Identity<_Tp> { }; 12329: 12329: template 12329: struct _Select1st 12329: : public unary_function<_Pair, typename _Pair::first_type> 12329: { 12329: typename _Pair::first_type& 12329: operator()(_Pair& __x) const 12329: { return __x.first; } 12329: 12329: const typename _Pair::first_type& 12329: operator()(const _Pair& __x) const 12329: { return __x.first; } 12329: 12329: 12329: template 12329: typename _Pair2::first_type& 12329: operator()(_Pair2& __x) const 12329: { return __x.first; } 12329: 12329: template 12329: const typename _Pair2::first_type& 12329: operator()(const _Pair2& __x) const 12329: { return __x.first; } 12329: 12329: }; 12329: 12329: template 12329: struct _Select2nd 12329: : public unary_function<_Pair, typename _Pair::second_type> 12329: { 12329: typename _Pair::second_type& 12329: operator()(_Pair& __x) const 12329: { return __x.second; } 12329: 12329: const typename _Pair::second_type& 12329: operator()(const _Pair& __x) const 12329: { return __x.second; } 12329: }; 12329: # 1231 "/usr/include/c++/12/bits/stl_function.h" 3 12329: template 12329: class mem_fun_t : public unary_function<_Tp*, _Ret> 12329: { 12329: public: 12329: explicit 12329: mem_fun_t(_Ret (_Tp::*__pf)()) 12329: : _M_f(__pf) { } 12329: 12329: _Ret 12329: operator()(_Tp* __p) const 12329: { return (__p->*_M_f)(); } 12329: 12329: private: 12329: _Ret (_Tp::*_M_f)(); 12329: } __attribute__ ((__deprecated__)); 12329: 12329: 12329: template 12329: class const_mem_fun_t : public unary_function 12329: { 12329: public: 12329: explicit 12329: const_mem_fun_t(_Ret (_Tp::*__pf)() const) 12329: : _M_f(__pf) { } 12329: 12329: _Ret 12329: operator()(const _Tp* __p) const 12329: { return (__p->*_M_f)(); } 12329: 12329: private: 12329: _Ret (_Tp::*_M_f)() const; 12329: } __attribute__ ((__deprecated__)); 12329: 12329: 12329: template 12329: class mem_fun_ref_t : public unary_function<_Tp, _Ret> 12329: { 12329: public: 12329: explicit 12329: mem_fun_ref_t(_Ret (_Tp::*__pf)()) 12329: : _M_f(__pf) { } 12329: 12329: _Ret 12329: operator()(_Tp& __r) const 12329: { return (__r.*_M_f)(); } 12329: 12329: private: 12329: _Ret (_Tp::*_M_f)(); 12329: } __attribute__ ((__deprecated__)); 12329: 12329: 12329: template 12329: class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> 12329: { 12329: public: 12329: explicit 12329: const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) 12329: : _M_f(__pf) { } 12329: 12329: _Ret 12329: operator()(const _Tp& __r) const 12329: { return (__r.*_M_f)(); } 12329: 12329: private: 12329: _Ret (_Tp::*_M_f)() const; 12329: } __attribute__ ((__deprecated__)); 12329: 12329: 12329: template 12329: class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> 12329: { 12329: public: 12329: explicit 12329: mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) 12329: : _M_f(__pf) { } 12329: 12329: _Ret 12329: operator()(_Tp* __p, _Arg __x) const 12329: { return (__p->*_M_f)(__x); } 12329: 12329: private: 12329: _Ret (_Tp::*_M_f)(_Arg); 12329: } __attribute__ ((__deprecated__)); 12329: 12329: 12329: template 12329: class const_mem_fun1_t : public binary_function 12329: { 12329: public: 12329: explicit 12329: const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) 12329: : _M_f(__pf) { } 12329: 12329: _Ret 12329: operator()(const _Tp* __p, _Arg __x) const 12329: { return (__p->*_M_f)(__x); } 12329: 12329: private: 12329: _Ret (_Tp::*_M_f)(_Arg) const; 12329: } __attribute__ ((__deprecated__)); 12329: 12329: 12329: template 12329: class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 12329: { 12329: public: 12329: explicit 12329: mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) 12329: : _M_f(__pf) { } 12329: 12329: _Ret 12329: operator()(_Tp& __r, _Arg __x) const 12329: { return (__r.*_M_f)(__x); } 12329: 12329: private: 12329: _Ret (_Tp::*_M_f)(_Arg); 12329: } __attribute__ ((__deprecated__)); 12329: 12329: 12329: template 12329: class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 12329: { 12329: public: 12329: explicit 12329: const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) 12329: : _M_f(__pf) { } 12329: 12329: _Ret 12329: operator()(const _Tp& __r, _Arg __x) const 12329: { return (__r.*_M_f)(__x); } 12329: 12329: private: 12329: _Ret (_Tp::*_M_f)(_Arg) const; 12329: } __attribute__ ((__deprecated__)); 12329: 12329: 12329: 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 12329: inline mem_fun_t<_Ret, _Tp> 12329: mem_fun(_Ret (_Tp::*__f)()) 12329: { return mem_fun_t<_Ret, _Tp>(__f); } 12329: 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 12329: inline const_mem_fun_t<_Ret, _Tp> 12329: mem_fun(_Ret (_Tp::*__f)() const) 12329: { return const_mem_fun_t<_Ret, _Tp>(__f); } 12329: 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 12329: inline mem_fun_ref_t<_Ret, _Tp> 12329: mem_fun_ref(_Ret (_Tp::*__f)()) 12329: { return mem_fun_ref_t<_Ret, _Tp>(__f); } 12329: 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 12329: inline const_mem_fun_ref_t<_Ret, _Tp> 12329: mem_fun_ref(_Ret (_Tp::*__f)() const) 12329: { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } 12329: 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 12329: inline mem_fun1_t<_Ret, _Tp, _Arg> 12329: mem_fun(_Ret (_Tp::*__f)(_Arg)) 12329: { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 12329: 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 12329: inline const_mem_fun1_t<_Ret, _Tp, _Arg> 12329: mem_fun(_Ret (_Tp::*__f)(_Arg) const) 12329: { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 12329: 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 12329: inline mem_fun1_ref_t<_Ret, _Tp, _Arg> 12329: mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) 12329: { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 12329: 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::mem_fn" "' instead"))) 12329: inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> 12329: mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) 12329: { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: 12329: 12329: template> 12329: struct __has_is_transparent 12329: { }; 12329: 12329: template 12329: struct __has_is_transparent<_Func, _SfinaeType, 12329: __void_t> 12329: { typedef void type; }; 12329: 12329: template 12329: using __has_is_transparent_t 12329: = typename __has_is_transparent<_Func, _SfinaeType>::type; 12329: 12329: 12329: 12329: } 12329: 12329: 12329: # 1 "/usr/include/c++/12/backward/binders.h" 1 3 12329: # 60 "/usr/include/c++/12/backward/binders.h" 3 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 107 "/usr/include/c++/12/backward/binders.h" 3 12329: template 12329: class binder1st 12329: : public unary_function 12329: { 12329: protected: 12329: _Operation op; 12329: typename _Operation::first_argument_type value; 12329: 12329: public: 12329: binder1st(const _Operation& __x, 12329: const typename _Operation::first_argument_type& __y) 12329: : op(__x), value(__y) { } 12329: 12329: typename _Operation::result_type 12329: operator()(const typename _Operation::second_argument_type& __x) const 12329: { return op(value, __x); } 12329: 12329: 12329: 12329: typename _Operation::result_type 12329: operator()(typename _Operation::second_argument_type& __x) const 12329: { return op(value, __x); } 12329: } __attribute__ ((__deprecated__ ("use '" "std::bind" "' instead"))); 12329: 12329: 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::bind" "' instead"))) 12329: inline binder1st<_Operation> 12329: bind1st(const _Operation& __fn, const _Tp& __x) 12329: { 12329: typedef typename _Operation::first_argument_type _Arg1_type; 12329: return binder1st<_Operation>(__fn, _Arg1_type(__x)); 12329: } 12329: 12329: 12329: template 12329: class binder2nd 12329: : public unary_function 12329: { 12329: protected: 12329: _Operation op; 12329: typename _Operation::second_argument_type value; 12329: 12329: public: 12329: binder2nd(const _Operation& __x, 12329: const typename _Operation::second_argument_type& __y) 12329: : op(__x), value(__y) { } 12329: 12329: typename _Operation::result_type 12329: operator()(const typename _Operation::first_argument_type& __x) const 12329: { return op(__x, value); } 12329: 12329: 12329: 12329: typename _Operation::result_type 12329: operator()(typename _Operation::first_argument_type& __x) const 12329: { return op(__x, value); } 12329: } __attribute__ ((__deprecated__ ("use '" "std::bind" "' instead"))); 12329: 12329: 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::bind" "' instead"))) 12329: inline binder2nd<_Operation> 12329: bind2nd(const _Operation& __fn, const _Tp& __x) 12329: { 12329: typedef typename _Operation::second_argument_type _Arg2_type; 12329: return binder2nd<_Operation>(__fn, _Arg2_type(__x)); 12329: } 12329: 12329: 12329: 12329: } 12329: 12329: #pragma GCC diagnostic pop 12329: # 1439 "/usr/include/c++/12/bits/stl_function.h" 2 3 12329: # 49 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/ext/numeric_traits.h" 1 3 12329: # 32 "/usr/include/c++/12/ext/numeric_traits.h" 3 12329: 12329: # 33 "/usr/include/c++/12/ext/numeric_traits.h" 3 12329: 12329: 12329: 12329: 12329: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 50 "/usr/include/c++/12/ext/numeric_traits.h" 3 12329: template 12329: struct __is_integer_nonstrict 12329: : public std::__is_integer<_Tp> 12329: { 12329: using std::__is_integer<_Tp>::__value; 12329: 12329: 12329: enum { __width = __value ? sizeof(_Tp) * 8 : 0 }; 12329: }; 12329: 12329: template 12329: struct __numeric_traits_integer 12329: { 12329: 12329: static_assert(__is_integer_nonstrict<_Value>::__value, 12329: "invalid specialization"); 12329: 12329: 12329: 12329: 12329: static const bool __is_signed = (_Value)(-1) < 0; 12329: static const int __digits 12329: = __is_integer_nonstrict<_Value>::__width - __is_signed; 12329: 12329: 12329: static const _Value __max = __is_signed 12329: ? (((((_Value)1 << (__digits - 1)) - 1) << 1) + 1) 12329: : ~(_Value)0; 12329: static const _Value __min = __is_signed ? -__max - 1 : (_Value)0; 12329: }; 12329: 12329: template 12329: const _Value __numeric_traits_integer<_Value>::__min; 12329: 12329: template 12329: const _Value __numeric_traits_integer<_Value>::__max; 12329: 12329: template 12329: const bool __numeric_traits_integer<_Value>::__is_signed; 12329: 12329: template 12329: const int __numeric_traits_integer<_Value>::__digits; 12329: # 130 "/usr/include/c++/12/ext/numeric_traits.h" 3 12329: __extension__ template<> struct __is_integer_nonstrict<__int128> { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = 128 }; }; __extension__ template<> struct __is_integer_nonstrict { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = 128 }; }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: using __int_traits = __numeric_traits_integer<_Tp>; 12329: # 157 "/usr/include/c++/12/ext/numeric_traits.h" 3 12329: template 12329: struct __numeric_traits_floating 12329: { 12329: 12329: static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 113) * 643L / 2136); 12329: 12329: 12329: static const bool __is_signed = true; 12329: static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 33); 12329: static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); 12329: }; 12329: 12329: template 12329: const int __numeric_traits_floating<_Value>::__max_digits10; 12329: 12329: template 12329: const bool __numeric_traits_floating<_Value>::__is_signed; 12329: 12329: template 12329: const int __numeric_traits_floating<_Value>::__digits10; 12329: 12329: template 12329: const int __numeric_traits_floating<_Value>::__max_exponent10; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct __numeric_traits 12329: : public __numeric_traits_integer<_Value> 12329: { }; 12329: 12329: template<> 12329: struct __numeric_traits 12329: : public __numeric_traits_floating 12329: { }; 12329: 12329: template<> 12329: struct __numeric_traits 12329: : public __numeric_traits_floating 12329: { }; 12329: 12329: template<> 12329: struct __numeric_traits 12329: : public __numeric_traits_floating 12329: { }; 12329: # 238 "/usr/include/c++/12/ext/numeric_traits.h" 3 12329: 12329: } 12329: # 50 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/stl_algobase.h" 1 3 12329: # 64 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: # 1 "/usr/include/c++/12/bits/stl_pair.h" 1 3 12329: # 62 "/usr/include/c++/12/bits/stl_pair.h" 3 12329: # 1 "/usr/include/c++/12/bits/utility.h" 1 3 12329: # 36 "/usr/include/c++/12/bits/utility.h" 3 12329: 12329: # 37 "/usr/include/c++/12/bits/utility.h" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: template 12329: struct tuple_size; 12329: 12329: 12329: 12329: 12329: 12329: template::type, 12329: typename = typename enable_if::value>::type, 12329: size_t = tuple_size<_Tp>::value> 12329: using __enable_if_has_tuple_size = _Tp; 12329: 12329: template 12329: struct tuple_size> 12329: : public tuple_size<_Tp> { }; 12329: 12329: template 12329: struct tuple_size> 12329: : public tuple_size<_Tp> { }; 12329: 12329: template 12329: struct tuple_size> 12329: : public tuple_size<_Tp> { }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct tuple_element; 12329: 12329: 12329: template 12329: using __tuple_element_t = typename tuple_element<__i, _Tp>::type; 12329: 12329: template 12329: struct tuple_element<__i, const _Tp> 12329: { 12329: typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; 12329: }; 12329: 12329: template 12329: struct tuple_element<__i, volatile _Tp> 12329: { 12329: typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; 12329: }; 12329: 12329: template 12329: struct tuple_element<__i, const volatile _Tp> 12329: { 12329: typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: constexpr size_t 12329: __find_uniq_type_in_pack() 12329: { 12329: constexpr size_t __sz = sizeof...(_Types); 12329: constexpr bool __found[__sz] = { __is_same(_Tp, _Types) ... }; 12329: size_t __n = __sz; 12329: for (size_t __i = 0; __i < __sz; ++__i) 12329: { 12329: if (__found[__i]) 12329: { 12329: if (__n < __sz) 12329: return __sz; 12329: __n = __i; 12329: } 12329: } 12329: return __n; 12329: } 12329: # 134 "/usr/include/c++/12/bits/utility.h" 3 12329: template 12329: using tuple_element_t = typename tuple_element<__i, _Tp>::type; 12329: 12329: 12329: 12329: 12329: template struct _Index_tuple { }; 12329: 12329: 12329: template 12329: struct _Build_index_tuple 12329: { 12329: # 154 "/usr/include/c++/12/bits/utility.h" 3 12329: using __type = _Index_tuple<__integer_pack(_Num)...>; 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct integer_sequence 12329: { 12329: typedef _Tp value_type; 12329: static constexpr size_t size() noexcept { return sizeof...(_Idx); } 12329: }; 12329: 12329: 12329: template 12329: using make_integer_sequence 12329: 12329: 12329: 12329: = integer_sequence<_Tp, __integer_pack(_Num)...>; 12329: 12329: 12329: 12329: template 12329: using index_sequence = integer_sequence; 12329: 12329: 12329: template 12329: using make_index_sequence = make_integer_sequence; 12329: 12329: 12329: template 12329: using index_sequence_for = make_index_sequence; 12329: # 227 "/usr/include/c++/12/bits/utility.h" 3 12329: template 12329: struct _Nth_type 12329: { }; 12329: 12329: template 12329: struct _Nth_type<0, _Tp0, _Rest...> 12329: { using type = _Tp0; }; 12329: 12329: template 12329: struct _Nth_type<1, _Tp0, _Tp1, _Rest...> 12329: { using type = _Tp1; }; 12329: 12329: template 12329: struct _Nth_type<2, _Tp0, _Tp1, _Tp2, _Rest...> 12329: { using type = _Tp2; }; 12329: 12329: template 12329: 12329: 12329: 12329: struct _Nth_type<_Np, _Tp0, _Tp1, _Tp2, _Rest...> 12329: : _Nth_type<_Np - 3, _Rest...> 12329: { }; 12329: 12329: 12329: template 12329: struct _Nth_type<0, _Tp0, _Tp1, _Rest...> 12329: { using type = _Tp0; }; 12329: 12329: template 12329: struct _Nth_type<0, _Tp0, _Tp1, _Tp2, _Rest...> 12329: { using type = _Tp0; }; 12329: 12329: template 12329: struct _Nth_type<1, _Tp0, _Tp1, _Tp2, _Rest...> 12329: { using type = _Tp1; }; 12329: 12329: 12329: 12329: } 12329: # 63 "/usr/include/c++/12/bits/stl_pair.h" 2 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 80 "/usr/include/c++/12/bits/stl_pair.h" 3 12329: struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; 12329: 12329: 12329: constexpr piecewise_construct_t piecewise_construct = 12329: piecewise_construct_t(); 12329: 12329: 12329: 12329: 12329: template 12329: class tuple; 12329: 12329: template 12329: struct _Index_tuple; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct _PCC 12329: { 12329: template 12329: static constexpr bool _ConstructiblePair() 12329: { 12329: return __and_, 12329: is_constructible<_T2, const _U2&>>::value; 12329: } 12329: 12329: template 12329: static constexpr bool _ImplicitlyConvertiblePair() 12329: { 12329: return __and_, 12329: is_convertible>::value; 12329: } 12329: 12329: template 12329: static constexpr bool _MoveConstructiblePair() 12329: { 12329: return __and_, 12329: is_constructible<_T2, _U2&&>>::value; 12329: } 12329: 12329: template 12329: static constexpr bool _ImplicitlyMoveConvertiblePair() 12329: { 12329: return __and_, 12329: is_convertible<_U2&&, _T2>>::value; 12329: } 12329: }; 12329: 12329: template 12329: struct _PCC 12329: { 12329: template 12329: static constexpr bool _ConstructiblePair() 12329: { 12329: return false; 12329: } 12329: 12329: template 12329: static constexpr bool _ImplicitlyConvertiblePair() 12329: { 12329: return false; 12329: } 12329: 12329: template 12329: static constexpr bool _MoveConstructiblePair() 12329: { 12329: return false; 12329: } 12329: 12329: template 12329: static constexpr bool _ImplicitlyMoveConvertiblePair() 12329: { 12329: return false; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class __pair_base 12329: { 12329: 12329: template friend struct pair; 12329: __pair_base() = default; 12329: ~__pair_base() = default; 12329: __pair_base(const __pair_base&) = default; 12329: __pair_base& operator=(const __pair_base&) = delete; 12329: 12329: }; 12329: # 184 "/usr/include/c++/12/bits/stl_pair.h" 3 12329: template 12329: struct pair 12329: : public __pair_base<_T1, _T2> 12329: { 12329: typedef _T1 first_type; 12329: typedef _T2 second_type; 12329: 12329: _T1 first; 12329: _T2 second; 12329: 12329: 12329: constexpr pair(const pair&) = default; 12329: constexpr pair(pair&&) = default; 12329: 12329: template 12329: 12329: pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); 12329: 12329: 12329: void 12329: swap(pair& __p) 12329: noexcept(__and_<__is_nothrow_swappable<_T1>, 12329: __is_nothrow_swappable<_T2>>::value) 12329: { 12329: using std::swap; 12329: swap(first, __p.first); 12329: swap(second, __p.second); 12329: } 12329: 12329: private: 12329: template 12329: 12329: pair(tuple<_Args1...>&, tuple<_Args2...>&, 12329: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); 12329: public: 12329: # 378 "/usr/include/c++/12/bits/stl_pair.h" 3 12329: template , 12329: __is_implicitly_default_constructible<_U2>> 12329: ::value, bool>::type = true> 12329: constexpr pair() 12329: : first(), second() { } 12329: 12329: template , 12329: is_default_constructible<_U2>, 12329: __not_< 12329: __and_<__is_implicitly_default_constructible<_U1>, 12329: __is_implicitly_default_constructible<_U2>>>> 12329: ::value, bool>::type = false> 12329: explicit constexpr pair() 12329: : first(), second() { } 12329: 12329: 12329: 12329: using _PCCP = _PCC; 12329: 12329: 12329: 12329: template() 12329: && _PCCP::template 12329: _ImplicitlyConvertiblePair<_U1, _U2>(), 12329: bool>::type=true> 12329: constexpr pair(const _T1& __a, const _T2& __b) 12329: : first(__a), second(__b) { } 12329: 12329: 12329: template() 12329: && !_PCCP::template 12329: _ImplicitlyConvertiblePair<_U1, _U2>(), 12329: bool>::type=false> 12329: explicit constexpr pair(const _T1& __a, const _T2& __b) 12329: : first(__a), second(__b) { } 12329: 12329: 12329: 12329: template 12329: using _PCCFP = _PCC::value 12329: || !is_same<_T2, _U2>::value, 12329: _T1, _T2>; 12329: 12329: 12329: template::template 12329: _ConstructiblePair<_U1, _U2>() 12329: && _PCCFP<_U1, _U2>::template 12329: _ImplicitlyConvertiblePair<_U1, _U2>(), 12329: bool>::type=true> 12329: constexpr pair(const pair<_U1, _U2>& __p) 12329: : first(__p.first), second(__p.second) { } 12329: 12329: template::template 12329: _ConstructiblePair<_U1, _U2>() 12329: && !_PCCFP<_U1, _U2>::template 12329: _ImplicitlyConvertiblePair<_U1, _U2>(), 12329: bool>::type=false> 12329: explicit constexpr pair(const pair<_U1, _U2>& __p) 12329: : first(__p.first), second(__p.second) { } 12329: # 460 "/usr/include/c++/12/bits/stl_pair.h" 3 12329: private: 12329: 12329: 12329: 12329: struct __zero_as_null_pointer_constant 12329: { 12329: __zero_as_null_pointer_constant(int __zero_as_null_pointer_constant::*) 12329: { } 12329: template::value>> 12329: __zero_as_null_pointer_constant(_Tp) = delete; 12329: }; 12329: 12329: public: 12329: 12329: 12329: 12329: 12329: template>, 12329: is_pointer<_T2>, 12329: is_constructible<_T1, _U1>, 12329: __not_>, 12329: is_convertible<_U1, _T1>>::value, 12329: bool> = true> 12329: __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) 12329: constexpr 12329: pair(_U1&& __x, __zero_as_null_pointer_constant, ...) 12329: : first(std::forward<_U1>(__x)), second(nullptr) { } 12329: 12329: template>, 12329: is_pointer<_T2>, 12329: is_constructible<_T1, _U1>, 12329: __not_>, 12329: __not_>>::value, 12329: bool> = false> 12329: __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) 12329: explicit constexpr 12329: pair(_U1&& __x, __zero_as_null_pointer_constant, ...) 12329: : first(std::forward<_U1>(__x)), second(nullptr) { } 12329: 12329: template, 12329: __not_>, 12329: is_constructible<_T2, _U2>, 12329: __not_>, 12329: is_convertible<_U2, _T2>>::value, 12329: bool> = true> 12329: __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) 12329: constexpr 12329: pair(__zero_as_null_pointer_constant, _U2&& __y, ...) 12329: : first(nullptr), second(std::forward<_U2>(__y)) { } 12329: 12329: template, 12329: __not_>, 12329: is_constructible<_T2, _U2>, 12329: __not_>, 12329: __not_>>::value, 12329: bool> = false> 12329: __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) 12329: explicit constexpr 12329: pair(__zero_as_null_pointer_constant, _U2&& __y, ...) 12329: : first(nullptr), second(std::forward<_U2>(__y)) { } 12329: 12329: 12329: 12329: template() 12329: && _PCCP::template 12329: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 12329: bool>::type=true> 12329: constexpr pair(_U1&& __x, _U2&& __y) 12329: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 12329: 12329: template() 12329: && !_PCCP::template 12329: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 12329: bool>::type=false> 12329: explicit constexpr pair(_U1&& __x, _U2&& __y) 12329: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 12329: 12329: 12329: template::template 12329: _MoveConstructiblePair<_U1, _U2>() 12329: && _PCCFP<_U1, _U2>::template 12329: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 12329: bool>::type=true> 12329: constexpr pair(pair<_U1, _U2>&& __p) 12329: : first(std::forward<_U1>(__p.first)), 12329: second(std::forward<_U2>(__p.second)) { } 12329: 12329: template::template 12329: _MoveConstructiblePair<_U1, _U2>() 12329: && !_PCCFP<_U1, _U2>::template 12329: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 12329: bool>::type=false> 12329: explicit constexpr pair(pair<_U1, _U2>&& __p) 12329: : first(std::forward<_U1>(__p.first)), 12329: second(std::forward<_U2>(__p.second)) { } 12329: 12329: pair& 12329: operator=(__conditional_t<__and_, 12329: is_copy_assignable<_T2>>::value, 12329: const pair&, const __nonesuch&> __p) 12329: { 12329: first = __p.first; 12329: second = __p.second; 12329: return *this; 12329: } 12329: 12329: pair& 12329: operator=(__conditional_t<__and_, 12329: is_move_assignable<_T2>>::value, 12329: pair&&, __nonesuch&&> __p) 12329: noexcept(__and_, 12329: is_nothrow_move_assignable<_T2>>::value) 12329: { 12329: first = std::forward(__p.first); 12329: second = std::forward(__p.second); 12329: return *this; 12329: } 12329: 12329: template 12329: typename enable_if<__and_, 12329: is_assignable<_T2&, const _U2&>>::value, 12329: pair&>::type 12329: operator=(const pair<_U1, _U2>& __p) 12329: { 12329: first = __p.first; 12329: second = __p.second; 12329: return *this; 12329: } 12329: 12329: template 12329: typename enable_if<__and_, 12329: is_assignable<_T2&, _U2&&>>::value, 12329: pair&>::type 12329: operator=(pair<_U1, _U2>&& __p) 12329: { 12329: first = std::forward<_U1>(__p.first); 12329: second = std::forward<_U2>(__p.second); 12329: return *this; 12329: } 12329: # 629 "/usr/include/c++/12/bits/stl_pair.h" 3 12329: }; 12329: # 638 "/usr/include/c++/12/bits/stl_pair.h" 3 12329: template 12329: inline constexpr bool 12329: operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 12329: { return __x.first == __y.first && __x.second == __y.second; } 12329: # 661 "/usr/include/c++/12/bits/stl_pair.h" 3 12329: template 12329: inline constexpr bool 12329: operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 12329: { return __x.first < __y.first 12329: || (!(__y.first < __x.first) && __x.second < __y.second); } 12329: 12329: 12329: template 12329: inline constexpr bool 12329: operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 12329: { return !(__x == __y); } 12329: 12329: 12329: template 12329: inline constexpr bool 12329: operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 12329: { return __y < __x; } 12329: 12329: 12329: template 12329: inline constexpr bool 12329: operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 12329: { return !(__y < __x); } 12329: 12329: 12329: template 12329: inline constexpr bool 12329: operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 12329: { return !(__x < __y); } 12329: # 698 "/usr/include/c++/12/bits/stl_pair.h" 3 12329: template 12329: inline 12329: 12329: 12329: 12329: 12329: 12329: void 12329: 12329: swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) 12329: noexcept(noexcept(__x.swap(__y))) 12329: { __x.swap(__y); } 12329: # 738 "/usr/include/c++/12/bits/stl_pair.h" 3 12329: template 12329: constexpr pair::__type, 12329: typename __decay_and_strip<_T2>::__type> 12329: make_pair(_T1&& __x, _T2&& __y) 12329: { 12329: typedef typename __decay_and_strip<_T1>::__type __ds_type1; 12329: typedef typename __decay_and_strip<_T2>::__type __ds_type2; 12329: typedef pair<__ds_type1, __ds_type2> __pair_type; 12329: return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); 12329: } 12329: # 760 "/usr/include/c++/12/bits/stl_pair.h" 3 12329: template 12329: struct __is_tuple_like_impl> : true_type 12329: { }; 12329: 12329: 12329: template 12329: struct tuple_size> 12329: : public integral_constant { }; 12329: 12329: 12329: template 12329: struct tuple_element<0, pair<_Tp1, _Tp2>> 12329: { typedef _Tp1 type; }; 12329: 12329: 12329: template 12329: struct tuple_element<1, pair<_Tp1, _Tp2>> 12329: { typedef _Tp2 type; }; 12329: # 797 "/usr/include/c++/12/bits/stl_pair.h" 3 12329: template 12329: struct __pair_get; 12329: 12329: template<> 12329: struct __pair_get<0> 12329: { 12329: template 12329: static constexpr _Tp1& 12329: __get(pair<_Tp1, _Tp2>& __pair) noexcept 12329: { return __pair.first; } 12329: 12329: template 12329: static constexpr _Tp1&& 12329: __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept 12329: { return std::forward<_Tp1>(__pair.first); } 12329: 12329: template 12329: static constexpr const _Tp1& 12329: __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept 12329: { return __pair.first; } 12329: 12329: template 12329: static constexpr const _Tp1&& 12329: __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept 12329: { return std::forward(__pair.first); } 12329: }; 12329: 12329: template<> 12329: struct __pair_get<1> 12329: { 12329: template 12329: static constexpr _Tp2& 12329: __get(pair<_Tp1, _Tp2>& __pair) noexcept 12329: { return __pair.second; } 12329: 12329: template 12329: static constexpr _Tp2&& 12329: __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept 12329: { return std::forward<_Tp2>(__pair.second); } 12329: 12329: template 12329: static constexpr const _Tp2& 12329: __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept 12329: { return __pair.second; } 12329: 12329: template 12329: static constexpr const _Tp2&& 12329: __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept 12329: { return std::forward(__pair.second); } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& 12329: get(pair<_Tp1, _Tp2>& __in) noexcept 12329: { return __pair_get<_Int>::__get(__in); } 12329: 12329: template 12329: constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& 12329: get(pair<_Tp1, _Tp2>&& __in) noexcept 12329: { return __pair_get<_Int>::__move_get(std::move(__in)); } 12329: 12329: template 12329: constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& 12329: get(const pair<_Tp1, _Tp2>& __in) noexcept 12329: { return __pair_get<_Int>::__const_get(__in); } 12329: 12329: template 12329: constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& 12329: get(const pair<_Tp1, _Tp2>&& __in) noexcept 12329: { return __pair_get<_Int>::__const_move_get(std::move(__in)); } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: constexpr _Tp& 12329: get(pair<_Tp, _Up>& __p) noexcept 12329: { return __p.first; } 12329: 12329: template 12329: constexpr const _Tp& 12329: get(const pair<_Tp, _Up>& __p) noexcept 12329: { return __p.first; } 12329: 12329: template 12329: constexpr _Tp&& 12329: get(pair<_Tp, _Up>&& __p) noexcept 12329: { return std::move(__p.first); } 12329: 12329: template 12329: constexpr const _Tp&& 12329: get(const pair<_Tp, _Up>&& __p) noexcept 12329: { return std::move(__p.first); } 12329: 12329: template 12329: constexpr _Tp& 12329: get(pair<_Up, _Tp>& __p) noexcept 12329: { return __p.second; } 12329: 12329: template 12329: constexpr const _Tp& 12329: get(const pair<_Up, _Tp>& __p) noexcept 12329: { return __p.second; } 12329: 12329: template 12329: constexpr _Tp&& 12329: get(pair<_Up, _Tp>&& __p) noexcept 12329: { return std::move(__p.second); } 12329: 12329: template 12329: constexpr const _Tp&& 12329: get(const pair<_Up, _Tp>&& __p) noexcept 12329: { return std::move(__p.second); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 65 "/usr/include/c++/12/bits/stl_algobase.h" 2 3 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/debug/debug.h" 1 3 12329: # 48 "/usr/include/c++/12/debug/debug.h" 3 12329: namespace std 12329: { 12329: namespace __debug { } 12329: } 12329: 12329: 12329: 12329: 12329: namespace __gnu_debug 12329: { 12329: using namespace std::__debug; 12329: 12329: template 12329: struct _Safe_iterator; 12329: } 12329: # 70 "/usr/include/c++/12/bits/stl_algobase.h" 2 3 12329: 12329: # 1 "/usr/include/c++/12/bits/predefined_ops.h" 1 3 12329: # 35 "/usr/include/c++/12/bits/predefined_ops.h" 3 12329: namespace __gnu_cxx 12329: { 12329: namespace __ops 12329: { 12329: struct _Iter_less_iter 12329: { 12329: template 12329: constexpr 12329: bool 12329: operator()(_Iterator1 __it1, _Iterator2 __it2) const 12329: { return *__it1 < *__it2; } 12329: }; 12329: 12329: constexpr 12329: inline _Iter_less_iter 12329: __iter_less_iter() 12329: { return _Iter_less_iter(); } 12329: 12329: struct _Iter_less_val 12329: { 12329: 12329: constexpr _Iter_less_val() = default; 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: _Iter_less_val(_Iter_less_iter) { } 12329: 12329: template 12329: 12329: bool 12329: operator()(_Iterator __it, _Value& __val) const 12329: { return *__it < __val; } 12329: }; 12329: 12329: 12329: inline _Iter_less_val 12329: __iter_less_val() 12329: { return _Iter_less_val(); } 12329: 12329: 12329: inline _Iter_less_val 12329: __iter_comp_val(_Iter_less_iter) 12329: { return _Iter_less_val(); } 12329: 12329: struct _Val_less_iter 12329: { 12329: 12329: constexpr _Val_less_iter() = default; 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: _Val_less_iter(_Iter_less_iter) { } 12329: 12329: template 12329: 12329: bool 12329: operator()(_Value& __val, _Iterator __it) const 12329: { return __val < *__it; } 12329: }; 12329: 12329: 12329: inline _Val_less_iter 12329: __val_less_iter() 12329: { return _Val_less_iter(); } 12329: 12329: 12329: inline _Val_less_iter 12329: __val_comp_iter(_Iter_less_iter) 12329: { return _Val_less_iter(); } 12329: 12329: struct _Iter_equal_to_iter 12329: { 12329: template 12329: 12329: bool 12329: operator()(_Iterator1 __it1, _Iterator2 __it2) const 12329: { return *__it1 == *__it2; } 12329: }; 12329: 12329: 12329: inline _Iter_equal_to_iter 12329: __iter_equal_to_iter() 12329: { return _Iter_equal_to_iter(); } 12329: 12329: struct _Iter_equal_to_val 12329: { 12329: template 12329: 12329: bool 12329: operator()(_Iterator __it, _Value& __val) const 12329: { return *__it == __val; } 12329: }; 12329: 12329: 12329: inline _Iter_equal_to_val 12329: __iter_equal_to_val() 12329: { return _Iter_equal_to_val(); } 12329: 12329: 12329: inline _Iter_equal_to_val 12329: __iter_comp_val(_Iter_equal_to_iter) 12329: { return _Iter_equal_to_val(); } 12329: 12329: template 12329: struct _Iter_comp_iter 12329: { 12329: _Compare _M_comp; 12329: 12329: explicit constexpr 12329: _Iter_comp_iter(_Compare __comp) 12329: : _M_comp(std::move(__comp)) 12329: { } 12329: 12329: template 12329: constexpr 12329: bool 12329: operator()(_Iterator1 __it1, _Iterator2 __it2) 12329: { return bool(_M_comp(*__it1, *__it2)); } 12329: }; 12329: 12329: template 12329: constexpr 12329: inline _Iter_comp_iter<_Compare> 12329: __iter_comp_iter(_Compare __comp) 12329: { return _Iter_comp_iter<_Compare>(std::move(__comp)); } 12329: 12329: template 12329: struct _Iter_comp_val 12329: { 12329: _Compare _M_comp; 12329: 12329: 12329: explicit 12329: _Iter_comp_val(_Compare __comp) 12329: : _M_comp(std::move(__comp)) 12329: { } 12329: 12329: 12329: explicit 12329: _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) 12329: : _M_comp(__comp._M_comp) 12329: { } 12329: 12329: 12329: 12329: explicit 12329: _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) 12329: : _M_comp(std::move(__comp._M_comp)) 12329: { } 12329: 12329: 12329: template 12329: 12329: bool 12329: operator()(_Iterator __it, _Value& __val) 12329: { return bool(_M_comp(*__it, __val)); } 12329: }; 12329: 12329: template 12329: 12329: inline _Iter_comp_val<_Compare> 12329: __iter_comp_val(_Compare __comp) 12329: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 12329: 12329: template 12329: 12329: inline _Iter_comp_val<_Compare> 12329: __iter_comp_val(_Iter_comp_iter<_Compare> __comp) 12329: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 12329: 12329: template 12329: struct _Val_comp_iter 12329: { 12329: _Compare _M_comp; 12329: 12329: 12329: explicit 12329: _Val_comp_iter(_Compare __comp) 12329: : _M_comp(std::move(__comp)) 12329: { } 12329: 12329: 12329: explicit 12329: _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) 12329: : _M_comp(__comp._M_comp) 12329: { } 12329: 12329: 12329: 12329: explicit 12329: _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) 12329: : _M_comp(std::move(__comp._M_comp)) 12329: { } 12329: 12329: 12329: template 12329: 12329: bool 12329: operator()(_Value& __val, _Iterator __it) 12329: { return bool(_M_comp(__val, *__it)); } 12329: }; 12329: 12329: template 12329: 12329: inline _Val_comp_iter<_Compare> 12329: __val_comp_iter(_Compare __comp) 12329: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 12329: 12329: template 12329: 12329: inline _Val_comp_iter<_Compare> 12329: __val_comp_iter(_Iter_comp_iter<_Compare> __comp) 12329: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 12329: 12329: template 12329: struct _Iter_equals_val 12329: { 12329: _Value& _M_value; 12329: 12329: 12329: explicit 12329: _Iter_equals_val(_Value& __value) 12329: : _M_value(__value) 12329: { } 12329: 12329: template 12329: 12329: bool 12329: operator()(_Iterator __it) 12329: { return *__it == _M_value; } 12329: }; 12329: 12329: template 12329: 12329: inline _Iter_equals_val<_Value> 12329: __iter_equals_val(_Value& __val) 12329: { return _Iter_equals_val<_Value>(__val); } 12329: 12329: template 12329: struct _Iter_equals_iter 12329: { 12329: _Iterator1 _M_it1; 12329: 12329: 12329: explicit 12329: _Iter_equals_iter(_Iterator1 __it1) 12329: : _M_it1(__it1) 12329: { } 12329: 12329: template 12329: 12329: bool 12329: operator()(_Iterator2 __it2) 12329: { return *__it2 == *_M_it1; } 12329: }; 12329: 12329: template 12329: 12329: inline _Iter_equals_iter<_Iterator> 12329: __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) 12329: { return _Iter_equals_iter<_Iterator>(__it); } 12329: 12329: template 12329: struct _Iter_pred 12329: { 12329: _Predicate _M_pred; 12329: 12329: 12329: explicit 12329: _Iter_pred(_Predicate __pred) 12329: : _M_pred(std::move(__pred)) 12329: { } 12329: 12329: template 12329: 12329: bool 12329: operator()(_Iterator __it) 12329: { return bool(_M_pred(*__it)); } 12329: }; 12329: 12329: template 12329: 12329: inline _Iter_pred<_Predicate> 12329: __pred_iter(_Predicate __pred) 12329: { return _Iter_pred<_Predicate>(std::move(__pred)); } 12329: 12329: template 12329: struct _Iter_comp_to_val 12329: { 12329: _Compare _M_comp; 12329: _Value& _M_value; 12329: 12329: 12329: _Iter_comp_to_val(_Compare __comp, _Value& __value) 12329: : _M_comp(std::move(__comp)), _M_value(__value) 12329: { } 12329: 12329: template 12329: 12329: bool 12329: operator()(_Iterator __it) 12329: { return bool(_M_comp(*__it, _M_value)); } 12329: }; 12329: 12329: template 12329: _Iter_comp_to_val<_Compare, _Value> 12329: 12329: __iter_comp_val(_Compare __comp, _Value &__val) 12329: { 12329: return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); 12329: } 12329: 12329: template 12329: struct _Iter_comp_to_iter 12329: { 12329: _Compare _M_comp; 12329: _Iterator1 _M_it1; 12329: 12329: 12329: _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) 12329: : _M_comp(std::move(__comp)), _M_it1(__it1) 12329: { } 12329: 12329: template 12329: 12329: bool 12329: operator()(_Iterator2 __it2) 12329: { return bool(_M_comp(*__it2, *_M_it1)); } 12329: }; 12329: 12329: template 12329: 12329: inline _Iter_comp_to_iter<_Compare, _Iterator> 12329: __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) 12329: { 12329: return _Iter_comp_to_iter<_Compare, _Iterator>( 12329: std::move(__comp._M_comp), __it); 12329: } 12329: 12329: template 12329: struct _Iter_negate 12329: { 12329: _Predicate _M_pred; 12329: 12329: 12329: explicit 12329: _Iter_negate(_Predicate __pred) 12329: : _M_pred(std::move(__pred)) 12329: { } 12329: 12329: template 12329: 12329: bool 12329: operator()(_Iterator __it) 12329: { return !bool(_M_pred(*__it)); } 12329: }; 12329: 12329: template 12329: 12329: inline _Iter_negate<_Predicate> 12329: __negate(_Iter_pred<_Predicate> __pred) 12329: { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } 12329: 12329: } 12329: } 12329: # 72 "/usr/include/c++/12/bits/stl_algobase.h" 2 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: constexpr 12329: inline int 12329: __memcmp(const _Tp* __first1, const _Up* __first2, size_t __num) 12329: { 12329: 12329: static_assert(sizeof(_Tp) == sizeof(_Up), "can be compared with memcmp"); 12329: # 105 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); 12329: } 12329: # 149 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline void 12329: iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) 12329: { 12329: 12329: 12329: 12329: 12329: # 182 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: swap(*__a, *__b); 12329: 12329: } 12329: # 198 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: _ForwardIterator2 12329: swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: for (; __first1 != __last1; ++__first1, (void)++__first2) 12329: std::iter_swap(__first1, __first2); 12329: return __first2; 12329: } 12329: # 227 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: constexpr 12329: inline const _Tp& 12329: min(const _Tp& __a, const _Tp& __b) 12329: { 12329: 12329: 12329: 12329: if (__b < __a) 12329: return __b; 12329: return __a; 12329: } 12329: # 251 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: constexpr 12329: inline const _Tp& 12329: max(const _Tp& __a, const _Tp& __b) 12329: { 12329: 12329: 12329: 12329: if (__a < __b) 12329: return __b; 12329: return __a; 12329: } 12329: # 275 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: constexpr 12329: inline const _Tp& 12329: min(const _Tp& __a, const _Tp& __b, _Compare __comp) 12329: { 12329: 12329: if (__comp(__b, __a)) 12329: return __b; 12329: return __a; 12329: } 12329: # 297 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: constexpr 12329: inline const _Tp& 12329: max(const _Tp& __a, const _Tp& __b, _Compare __comp) 12329: { 12329: 12329: if (__comp(__a, __b)) 12329: return __b; 12329: return __a; 12329: } 12329: 12329: 12329: 12329: template 12329: 12329: inline _Iterator 12329: __niter_base(_Iterator __it) 12329: noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) 12329: { return __it; } 12329: 12329: template 12329: _Ite 12329: __niter_base(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, 12329: std::random_access_iterator_tag>&); 12329: 12329: 12329: 12329: 12329: template 12329: 12329: inline _From 12329: __niter_wrap(_From __from, _To __res) 12329: { return __from + (__res - std::__niter_base(__from)); } 12329: 12329: 12329: template 12329: 12329: inline _Iterator 12329: __niter_wrap(const _Iterator&, _Iterator __res) 12329: { return __res; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct __copy_move 12329: { 12329: template 12329: 12329: static _OI 12329: __copy_m(_II __first, _II __last, _OI __result) 12329: { 12329: for (; __first != __last; ++__result, (void)++__first) 12329: *__result = *__first; 12329: return __result; 12329: } 12329: }; 12329: 12329: 12329: template 12329: struct __copy_move 12329: { 12329: template 12329: 12329: static _OI 12329: __copy_m(_II __first, _II __last, _OI __result) 12329: { 12329: for (; __first != __last; ++__result, (void)++__first) 12329: *__result = std::move(*__first); 12329: return __result; 12329: } 12329: }; 12329: 12329: 12329: template<> 12329: struct __copy_move 12329: { 12329: template 12329: 12329: static _OI 12329: __copy_m(_II __first, _II __last, _OI __result) 12329: { 12329: typedef typename iterator_traits<_II>::difference_type _Distance; 12329: for(_Distance __n = __last - __first; __n > 0; --__n) 12329: { 12329: *__result = *__first; 12329: ++__first; 12329: ++__result; 12329: } 12329: return __result; 12329: } 12329: }; 12329: 12329: 12329: template<> 12329: struct __copy_move 12329: { 12329: template 12329: 12329: static _OI 12329: __copy_m(_II __first, _II __last, _OI __result) 12329: { 12329: typedef typename iterator_traits<_II>::difference_type _Distance; 12329: for(_Distance __n = __last - __first; __n > 0; --__n) 12329: { 12329: *__result = std::move(*__first); 12329: ++__first; 12329: ++__result; 12329: } 12329: return __result; 12329: } 12329: }; 12329: 12329: 12329: template 12329: struct __copy_move<_IsMove, true, random_access_iterator_tag> 12329: { 12329: template 12329: 12329: static _Tp* 12329: __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) 12329: { 12329: 12329: using __assignable = __conditional_t<_IsMove, 12329: is_move_assignable<_Tp>, 12329: is_copy_assignable<_Tp>>; 12329: 12329: static_assert( __assignable::value, "type must be assignable" ); 12329: 12329: const ptrdiff_t _Num = __last - __first; 12329: if (_Num) 12329: __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); 12329: return __result + _Num; 12329: } 12329: }; 12329: 12329: 12329: 12329: template 12329: struct _Deque_iterator; 12329: 12329: struct _Bit_iterator; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct char_traits; 12329: 12329: template 12329: class istreambuf_iterator; 12329: 12329: template 12329: class ostreambuf_iterator; 12329: 12329: template 12329: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 12329: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 12329: __copy_move_a2(_CharT*, _CharT*, 12329: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 12329: 12329: template 12329: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 12329: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 12329: __copy_move_a2(const _CharT*, const _CharT*, 12329: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 12329: 12329: template 12329: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 12329: _CharT*>::__type 12329: __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, 12329: istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); 12329: 12329: template 12329: typename __gnu_cxx::__enable_if< 12329: __is_char<_CharT>::__value, 12329: std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type 12329: __copy_move_a2( 12329: istreambuf_iterator<_CharT, char_traits<_CharT> >, 12329: istreambuf_iterator<_CharT, char_traits<_CharT> >, 12329: std::_Deque_iterator<_CharT, _CharT&, _CharT*>); 12329: 12329: template 12329: 12329: inline _OI 12329: __copy_move_a2(_II __first, _II __last, _OI __result) 12329: { 12329: typedef typename iterator_traits<_II>::iterator_category _Category; 12329: 12329: 12329: 12329: 12329: 12329: return std::__copy_move<_IsMove, __memcpyable<_OI, _II>::__value, 12329: _Category>::__copy_m(__first, __last, __result); 12329: } 12329: 12329: template 12329: _OI 12329: __copy_move_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, 12329: std::_Deque_iterator<_Tp, _Ref, _Ptr>, 12329: _OI); 12329: 12329: template 12329: std::_Deque_iterator<_OTp, _OTp&, _OTp*> 12329: __copy_move_a1(std::_Deque_iterator<_ITp, _IRef, _IPtr>, 12329: std::_Deque_iterator<_ITp, _IRef, _IPtr>, 12329: std::_Deque_iterator<_OTp, _OTp&, _OTp*>); 12329: 12329: template 12329: typename __gnu_cxx::__enable_if< 12329: __is_random_access_iter<_II>::__value, 12329: std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type 12329: __copy_move_a1(_II, _II, std::_Deque_iterator<_Tp, _Tp&, _Tp*>); 12329: 12329: template 12329: 12329: inline _OI 12329: __copy_move_a1(_II __first, _II __last, _OI __result) 12329: { return std::__copy_move_a2<_IsMove>(__first, __last, __result); } 12329: 12329: template 12329: 12329: inline _OI 12329: __copy_move_a(_II __first, _II __last, _OI __result) 12329: { 12329: return std::__niter_wrap(__result, 12329: std::__copy_move_a1<_IsMove>(std::__niter_base(__first), 12329: std::__niter_base(__last), 12329: std::__niter_base(__result))); 12329: } 12329: 12329: template 12329: _OI 12329: __copy_move_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 12329: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 12329: _OI); 12329: 12329: template 12329: __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> 12329: __copy_move_a(_II, _II, 12329: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); 12329: 12329: template 12329: ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> 12329: __copy_move_a(const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 12329: const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 12329: const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); 12329: 12329: template 12329: 12329: _OutputIterator 12329: __copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result, 12329: bool) 12329: { 12329: if (__n > 0) 12329: { 12329: while (true) 12329: { 12329: *__result = *__first; 12329: ++__result; 12329: if (--__n > 0) 12329: ++__first; 12329: else 12329: break; 12329: } 12329: } 12329: return __result; 12329: } 12329: 12329: template 12329: typename __gnu_cxx::__enable_if< 12329: __is_char<_CharT>::__value, _CharT*>::__type 12329: __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, 12329: _Size, _CharT*, bool); 12329: 12329: template 12329: typename __gnu_cxx::__enable_if< 12329: __is_char<_CharT>::__value, 12329: std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type 12329: __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, _Size, 12329: std::_Deque_iterator<_CharT, _CharT&, _CharT*>, 12329: bool); 12329: # 608 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline _OI 12329: copy(_II __first, _II __last, _OI __result) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__copy_move_a<__is_move_iterator<_II>::__value> 12329: (std::__miter_base(__first), std::__miter_base(__last), __result); 12329: } 12329: # 641 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline _OI 12329: move(_II __first, _II __last, _OI __result) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__copy_move_a(std::__miter_base(__first), 12329: std::__miter_base(__last), __result); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct __copy_move_backward 12329: { 12329: template 12329: 12329: static _BI2 12329: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 12329: { 12329: while (__first != __last) 12329: *--__result = *--__last; 12329: return __result; 12329: } 12329: }; 12329: 12329: 12329: template 12329: struct __copy_move_backward 12329: { 12329: template 12329: 12329: static _BI2 12329: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 12329: { 12329: while (__first != __last) 12329: *--__result = std::move(*--__last); 12329: return __result; 12329: } 12329: }; 12329: 12329: 12329: template<> 12329: struct __copy_move_backward 12329: { 12329: template 12329: 12329: static _BI2 12329: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 12329: { 12329: typename iterator_traits<_BI1>::difference_type 12329: __n = __last - __first; 12329: for (; __n > 0; --__n) 12329: *--__result = *--__last; 12329: return __result; 12329: } 12329: }; 12329: 12329: 12329: template<> 12329: struct __copy_move_backward 12329: { 12329: template 12329: 12329: static _BI2 12329: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 12329: { 12329: typename iterator_traits<_BI1>::difference_type 12329: __n = __last - __first; 12329: for (; __n > 0; --__n) 12329: *--__result = std::move(*--__last); 12329: return __result; 12329: } 12329: }; 12329: 12329: 12329: template 12329: struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> 12329: { 12329: template 12329: 12329: static _Tp* 12329: __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) 12329: { 12329: 12329: using __assignable = __conditional_t<_IsMove, 12329: is_move_assignable<_Tp>, 12329: is_copy_assignable<_Tp>>; 12329: 12329: static_assert( __assignable::value, "type must be assignable" ); 12329: 12329: const ptrdiff_t _Num = __last - __first; 12329: if (_Num) 12329: __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); 12329: return __result - _Num; 12329: } 12329: }; 12329: 12329: template 12329: 12329: inline _BI2 12329: __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 12329: { 12329: typedef typename iterator_traits<_BI1>::iterator_category _Category; 12329: 12329: 12329: 12329: 12329: 12329: return std::__copy_move_backward<_IsMove, 12329: __memcpyable<_BI2, _BI1>::__value, 12329: _Category>::__copy_move_b(__first, 12329: __last, 12329: __result); 12329: } 12329: 12329: template 12329: 12329: inline _BI2 12329: __copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) 12329: { return std::__copy_move_backward_a2<_IsMove>(__first, __last, __result); } 12329: 12329: template 12329: _OI 12329: __copy_move_backward_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, 12329: std::_Deque_iterator<_Tp, _Ref, _Ptr>, 12329: _OI); 12329: 12329: template 12329: std::_Deque_iterator<_OTp, _OTp&, _OTp*> 12329: __copy_move_backward_a1( 12329: std::_Deque_iterator<_ITp, _IRef, _IPtr>, 12329: std::_Deque_iterator<_ITp, _IRef, _IPtr>, 12329: std::_Deque_iterator<_OTp, _OTp&, _OTp*>); 12329: 12329: template 12329: typename __gnu_cxx::__enable_if< 12329: __is_random_access_iter<_II>::__value, 12329: std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type 12329: __copy_move_backward_a1(_II, _II, 12329: std::_Deque_iterator<_Tp, _Tp&, _Tp*>); 12329: 12329: template 12329: 12329: inline _OI 12329: __copy_move_backward_a(_II __first, _II __last, _OI __result) 12329: { 12329: return std::__niter_wrap(__result, 12329: std::__copy_move_backward_a1<_IsMove> 12329: (std::__niter_base(__first), std::__niter_base(__last), 12329: std::__niter_base(__result))); 12329: } 12329: 12329: template 12329: _OI 12329: __copy_move_backward_a( 12329: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 12329: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 12329: _OI); 12329: 12329: template 12329: __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> 12329: __copy_move_backward_a(_II, _II, 12329: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); 12329: 12329: template 12329: ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> 12329: __copy_move_backward_a( 12329: const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 12329: const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, 12329: const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); 12329: # 845 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline _BI2 12329: copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__copy_move_backward_a<__is_move_iterator<_BI1>::__value> 12329: (std::__miter_base(__first), std::__miter_base(__last), __result); 12329: } 12329: # 880 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline _BI2 12329: move_backward(_BI1 __first, _BI1 __last, _BI2 __result) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__copy_move_backward_a(std::__miter_base(__first), 12329: std::__miter_base(__last), 12329: __result); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: inline typename 12329: __gnu_cxx::__enable_if::__value, void>::__type 12329: __fill_a1(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __value) 12329: { 12329: for (; __first != __last; ++__first) 12329: *__first = __value; 12329: } 12329: 12329: template 12329: 12329: inline typename 12329: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type 12329: __fill_a1(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __value) 12329: { 12329: const _Tp __tmp = __value; 12329: for (; __first != __last; ++__first) 12329: *__first = __tmp; 12329: } 12329: 12329: 12329: template 12329: 12329: inline typename 12329: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type 12329: __fill_a1(_Tp* __first, _Tp* __last, const _Tp& __c) 12329: { 12329: const _Tp __tmp = __c; 12329: # 941 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: if (const size_t __len = __last - __first) 12329: __builtin_memset(__first, static_cast(__tmp), __len); 12329: } 12329: 12329: template 12329: 12329: inline void 12329: __fill_a1(::__gnu_cxx::__normal_iterator<_Ite, _Cont> __first, 12329: ::__gnu_cxx::__normal_iterator<_Ite, _Cont> __last, 12329: const _Tp& __value) 12329: { std::__fill_a1(__first.base(), __last.base(), __value); } 12329: 12329: template 12329: void 12329: __fill_a1(const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, 12329: const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, 12329: const _VTp&); 12329: 12329: 12329: void 12329: __fill_a1(std::_Bit_iterator, std::_Bit_iterator, 12329: const bool&); 12329: 12329: template 12329: 12329: inline void 12329: __fill_a(_FIte __first, _FIte __last, const _Tp& __value) 12329: { std::__fill_a1(__first, __last, __value); } 12329: 12329: template 12329: void 12329: __fill_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 12329: const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, 12329: const _Tp&); 12329: # 988 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline void 12329: fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) 12329: { 12329: 12329: 12329: 12329: ; 12329: 12329: std::__fill_a(__first, __last, __value); 12329: } 12329: 12329: 12329: inline constexpr int 12329: __size_to_integer(int __n) { return __n; } 12329: inline constexpr unsigned 12329: __size_to_integer(unsigned __n) { return __n; } 12329: inline constexpr long 12329: __size_to_integer(long __n) { return __n; } 12329: inline constexpr unsigned long 12329: __size_to_integer(unsigned long __n) { return __n; } 12329: inline constexpr long long 12329: __size_to_integer(long long __n) { return __n; } 12329: inline constexpr unsigned long long 12329: __size_to_integer(unsigned long long __n) { return __n; } 12329: # 1040 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: inline constexpr long long 12329: __size_to_integer(float __n) { return (long long)__n; } 12329: inline constexpr long long 12329: __size_to_integer(double __n) { return (long long)__n; } 12329: inline constexpr long long 12329: __size_to_integer(long double __n) { return (long long)__n; } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: inline typename 12329: __gnu_cxx::__enable_if::__value, _OutputIterator>::__type 12329: __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) 12329: { 12329: for (; __n > 0; --__n, (void) ++__first) 12329: *__first = __value; 12329: return __first; 12329: } 12329: 12329: template 12329: 12329: inline typename 12329: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type 12329: __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) 12329: { 12329: const _Tp __tmp = __value; 12329: for (; __n > 0; --__n, (void) ++__first) 12329: *__first = __tmp; 12329: return __first; 12329: } 12329: 12329: template 12329: ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> 12329: __fill_n_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>& __first, 12329: _Size __n, const _Tp& __value, 12329: std::input_iterator_tag); 12329: 12329: template 12329: 12329: inline _OutputIterator 12329: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, 12329: std::output_iterator_tag) 12329: { 12329: 12329: static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); 12329: 12329: return __fill_n_a1(__first, __n, __value); 12329: } 12329: 12329: template 12329: 12329: inline _OutputIterator 12329: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, 12329: std::input_iterator_tag) 12329: { 12329: 12329: static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); 12329: 12329: return __fill_n_a1(__first, __n, __value); 12329: } 12329: 12329: template 12329: 12329: inline _OutputIterator 12329: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, 12329: std::random_access_iterator_tag) 12329: { 12329: 12329: static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); 12329: 12329: if (__n <= 0) 12329: return __first; 12329: 12329: ; 12329: 12329: std::__fill_a(__first, __first + __n, __value); 12329: return __first + __n; 12329: } 12329: # 1140 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline _OI 12329: fill_n(_OI __first, _Size __n, const _Tp& __value) 12329: { 12329: 12329: 12329: 12329: return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, 12329: std::__iterator_category(__first)); 12329: } 12329: 12329: template 12329: struct __equal 12329: { 12329: template 12329: 12329: static bool 12329: equal(_II1 __first1, _II1 __last1, _II2 __first2) 12329: { 12329: for (; __first1 != __last1; ++__first1, (void) ++__first2) 12329: if (!(*__first1 == *__first2)) 12329: return false; 12329: return true; 12329: } 12329: }; 12329: 12329: template<> 12329: struct __equal 12329: { 12329: template 12329: 12329: static bool 12329: equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) 12329: { 12329: if (const size_t __len = (__last1 - __first1)) 12329: return !std::__memcmp(__first1, __first2, __len); 12329: return true; 12329: } 12329: }; 12329: 12329: template 12329: typename __gnu_cxx::__enable_if< 12329: __is_random_access_iter<_II>::__value, bool>::__type 12329: __equal_aux1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, 12329: std::_Deque_iterator<_Tp, _Ref, _Ptr>, 12329: _II); 12329: 12329: template 12329: bool 12329: __equal_aux1(std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 12329: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 12329: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); 12329: 12329: template 12329: typename __gnu_cxx::__enable_if< 12329: __is_random_access_iter<_II>::__value, bool>::__type 12329: __equal_aux1(_II, _II, 12329: std::_Deque_iterator<_Tp, _Ref, _Ptr>); 12329: 12329: template 12329: 12329: inline bool 12329: __equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) 12329: { 12329: typedef typename iterator_traits<_II1>::value_type _ValueType1; 12329: const bool __simple = ((__is_integer<_ValueType1>::__value 12329: || __is_pointer<_ValueType1>::__value) 12329: && __memcmpable<_II1, _II2>::__value); 12329: return std::__equal<__simple>::equal(__first1, __last1, __first2); 12329: } 12329: 12329: template 12329: 12329: inline bool 12329: __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) 12329: { 12329: return std::__equal_aux1(std::__niter_base(__first1), 12329: std::__niter_base(__last1), 12329: std::__niter_base(__first2)); 12329: } 12329: 12329: template 12329: bool 12329: __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 12329: const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 12329: _II2); 12329: 12329: template 12329: bool 12329: __equal_aux(_II1, _II1, 12329: const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); 12329: 12329: template 12329: bool 12329: __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 12329: const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, 12329: const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); 12329: 12329: template 12329: struct __lc_rai 12329: { 12329: template 12329: 12329: static _II1 12329: __newlast1(_II1, _II1 __last1, _II2, _II2) 12329: { return __last1; } 12329: 12329: template 12329: 12329: static bool 12329: __cnd2(_II __first, _II __last) 12329: { return __first != __last; } 12329: }; 12329: 12329: template<> 12329: struct __lc_rai 12329: { 12329: template 12329: 12329: static _RAI1 12329: __newlast1(_RAI1 __first1, _RAI1 __last1, 12329: _RAI2 __first2, _RAI2 __last2) 12329: { 12329: const typename iterator_traits<_RAI1>::difference_type 12329: __diff1 = __last1 - __first1; 12329: const typename iterator_traits<_RAI2>::difference_type 12329: __diff2 = __last2 - __first2; 12329: return __diff2 < __diff1 ? __first1 + __diff2 : __last1; 12329: } 12329: 12329: template 12329: static bool 12329: __cnd2(_RAI, _RAI) 12329: { return true; } 12329: }; 12329: 12329: template 12329: 12329: bool 12329: __lexicographical_compare_impl(_II1 __first1, _II1 __last1, 12329: _II2 __first2, _II2 __last2, 12329: _Compare __comp) 12329: { 12329: typedef typename iterator_traits<_II1>::iterator_category _Category1; 12329: typedef typename iterator_traits<_II2>::iterator_category _Category2; 12329: typedef std::__lc_rai<_Category1, _Category2> __rai_type; 12329: 12329: __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); 12329: for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); 12329: ++__first1, (void)++__first2) 12329: { 12329: if (__comp(__first1, __first2)) 12329: return true; 12329: if (__comp(__first2, __first1)) 12329: return false; 12329: } 12329: return __first1 == __last1 && __first2 != __last2; 12329: } 12329: 12329: template 12329: struct __lexicographical_compare 12329: { 12329: template 12329: 12329: static bool 12329: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 12329: { 12329: using __gnu_cxx::__ops::__iter_less_iter; 12329: return std::__lexicographical_compare_impl(__first1, __last1, 12329: __first2, __last2, 12329: __iter_less_iter()); 12329: } 12329: 12329: template 12329: 12329: static int 12329: __3way(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 12329: { 12329: while (__first1 != __last1) 12329: { 12329: if (__first2 == __last2) 12329: return +1; 12329: if (*__first1 < *__first2) 12329: return -1; 12329: if (*__first2 < *__first1) 12329: return +1; 12329: ++__first1; 12329: ++__first2; 12329: } 12329: return int(__first2 == __last2) - 1; 12329: } 12329: }; 12329: 12329: template<> 12329: struct __lexicographical_compare 12329: { 12329: template 12329: 12329: static bool 12329: __lc(const _Tp* __first1, const _Tp* __last1, 12329: const _Up* __first2, const _Up* __last2) 12329: { return __3way(__first1, __last1, __first2, __last2) < 0; } 12329: 12329: template 12329: 12329: static ptrdiff_t 12329: __3way(const _Tp* __first1, const _Tp* __last1, 12329: const _Up* __first2, const _Up* __last2) 12329: { 12329: const size_t __len1 = __last1 - __first1; 12329: const size_t __len2 = __last2 - __first2; 12329: if (const size_t __len = std::min(__len1, __len2)) 12329: if (int __result = std::__memcmp(__first1, __first2, __len)) 12329: return __result; 12329: return ptrdiff_t(__len1 - __len2); 12329: } 12329: }; 12329: 12329: template 12329: 12329: inline bool 12329: __lexicographical_compare_aux1(_II1 __first1, _II1 __last1, 12329: _II2 __first2, _II2 __last2) 12329: { 12329: typedef typename iterator_traits<_II1>::value_type _ValueType1; 12329: typedef typename iterator_traits<_II2>::value_type _ValueType2; 12329: const bool __simple = 12329: (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value 12329: && __is_pointer<_II1>::__value 12329: && __is_pointer<_II2>::__value 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ); 12329: 12329: return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, 12329: __first2, __last2); 12329: } 12329: 12329: template 12329: bool 12329: __lexicographical_compare_aux1( 12329: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 12329: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 12329: _Tp2*, _Tp2*); 12329: 12329: template 12329: bool 12329: __lexicographical_compare_aux1(_Tp1*, _Tp1*, 12329: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, 12329: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); 12329: 12329: template 12329: bool 12329: __lexicographical_compare_aux1( 12329: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 12329: std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, 12329: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, 12329: std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); 12329: 12329: template 12329: 12329: inline bool 12329: __lexicographical_compare_aux(_II1 __first1, _II1 __last1, 12329: _II2 __first2, _II2 __last2) 12329: { 12329: return std::__lexicographical_compare_aux1(std::__niter_base(__first1), 12329: std::__niter_base(__last1), 12329: std::__niter_base(__first2), 12329: std::__niter_base(__last2)); 12329: } 12329: 12329: template 12329: bool 12329: __lexicographical_compare_aux( 12329: const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, 12329: const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, 12329: _II2, _II2); 12329: 12329: template 12329: bool 12329: __lexicographical_compare_aux( 12329: _II1, _II1, 12329: const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, 12329: const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); 12329: 12329: template 12329: bool 12329: __lexicographical_compare_aux( 12329: const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, 12329: const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, 12329: const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, 12329: const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __lower_bound(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __val, _Compare __comp) 12329: { 12329: typedef typename iterator_traits<_ForwardIterator>::difference_type 12329: _DistanceType; 12329: 12329: _DistanceType __len = std::distance(__first, __last); 12329: 12329: while (__len > 0) 12329: { 12329: _DistanceType __half = __len >> 1; 12329: _ForwardIterator __middle = __first; 12329: std::advance(__middle, __half); 12329: if (__comp(__middle, __val)) 12329: { 12329: __first = __middle; 12329: ++__first; 12329: __len = __len - __half - 1; 12329: } 12329: else 12329: __len = __half; 12329: } 12329: return __first; 12329: } 12329: # 1486 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __val) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__lower_bound(__first, __last, __val, 12329: __gnu_cxx::__ops::__iter_less_val()); 12329: } 12329: 12329: 12329: 12329: inline constexpr int 12329: __lg(int __n) 12329: { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); } 12329: 12329: inline constexpr unsigned 12329: __lg(unsigned __n) 12329: { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); } 12329: 12329: inline constexpr long 12329: __lg(long __n) 12329: { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 12329: 12329: inline constexpr unsigned long 12329: __lg(unsigned long __n) 12329: { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 12329: 12329: inline constexpr long long 12329: __lg(long long __n) 12329: { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 12329: 12329: inline constexpr unsigned long long 12329: __lg(unsigned long long __n) 12329: { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 12329: 12329: 12329: # 1542 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline bool 12329: equal(_II1 __first1, _II1 __last1, _II2 __first2) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__equal_aux(__first1, __last1, __first2); 12329: } 12329: # 1573 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline bool 12329: equal(_IIter1 __first1, _IIter1 __last1, 12329: _IIter2 __first2, _BinaryPredicate __binary_pred) 12329: { 12329: 12329: 12329: 12329: ; 12329: 12329: for (; __first1 != __last1; ++__first1, (void)++__first2) 12329: if (!bool(__binary_pred(*__first1, *__first2))) 12329: return false; 12329: return true; 12329: } 12329: 12329: 12329: 12329: template 12329: 12329: inline bool 12329: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 12329: { 12329: using _RATag = random_access_iterator_tag; 12329: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 12329: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 12329: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 12329: if (_RAIters()) 12329: { 12329: auto __d1 = std::distance(__first1, __last1); 12329: auto __d2 = std::distance(__first2, __last2); 12329: if (__d1 != __d2) 12329: return false; 12329: return std::equal(__first1, __last1, __first2); 12329: } 12329: 12329: for (; __first1 != __last1 && __first2 != __last2; 12329: ++__first1, (void)++__first2) 12329: if (!(*__first1 == *__first2)) 12329: return false; 12329: return __first1 == __last1 && __first2 == __last2; 12329: } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, 12329: _BinaryPredicate __binary_pred) 12329: { 12329: using _RATag = random_access_iterator_tag; 12329: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 12329: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 12329: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 12329: if (_RAIters()) 12329: { 12329: auto __d1 = std::distance(__first1, __last1); 12329: auto __d2 = std::distance(__first2, __last2); 12329: if (__d1 != __d2) 12329: return false; 12329: return std::equal(__first1, __last1, __first2, 12329: __binary_pred); 12329: } 12329: 12329: for (; __first1 != __last1 && __first2 != __last2; 12329: ++__first1, (void)++__first2) 12329: if (!bool(__binary_pred(*__first1, *__first2))) 12329: return false; 12329: return __first1 == __last1 && __first2 == __last2; 12329: } 12329: # 1663 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline bool 12329: equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__equal4(__first1, __last1, __first2, __last2); 12329: } 12329: # 1696 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline bool 12329: equal(_IIter1 __first1, _IIter1 __last1, 12329: _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) 12329: { 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__equal4(__first1, __last1, __first2, __last2, 12329: __binary_pred); 12329: } 12329: # 1728 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline bool 12329: lexicographical_compare(_II1 __first1, _II1 __last1, 12329: _II2 __first2, _II2 __last2) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__lexicographical_compare_aux(__first1, __last1, 12329: __first2, __last2); 12329: } 12329: # 1763 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline bool 12329: lexicographical_compare(_II1 __first1, _II1 __last1, 12329: _II2 __first2, _II2 __last2, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__lexicographical_compare_impl 12329: (__first1, __last1, __first2, __last2, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: # 1875 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: pair<_InputIterator1, _InputIterator2> 12329: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 12329: { 12329: while (__first1 != __last1 && __binary_pred(__first1, __first2)) 12329: { 12329: ++__first1; 12329: ++__first2; 12329: } 12329: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 12329: } 12329: # 1903 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline pair<_InputIterator1, _InputIterator2> 12329: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__mismatch(__first1, __last1, __first2, 12329: __gnu_cxx::__ops::__iter_equal_to_iter()); 12329: } 12329: # 1937 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline pair<_InputIterator1, _InputIterator2> 12329: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 12329: { 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__mismatch(__first1, __last1, __first2, 12329: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 12329: } 12329: 12329: 12329: 12329: template 12329: 12329: pair<_InputIterator1, _InputIterator2> 12329: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _BinaryPredicate __binary_pred) 12329: { 12329: while (__first1 != __last1 && __first2 != __last2 12329: && __binary_pred(__first1, __first2)) 12329: { 12329: ++__first1; 12329: ++__first2; 12329: } 12329: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 12329: } 12329: # 1986 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline pair<_InputIterator1, _InputIterator2> 12329: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__mismatch(__first1, __last1, __first2, __last2, 12329: __gnu_cxx::__ops::__iter_equal_to_iter()); 12329: } 12329: # 2022 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline pair<_InputIterator1, _InputIterator2> 12329: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _BinaryPredicate __binary_pred) 12329: { 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__mismatch(__first1, __last1, __first2, __last2, 12329: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: inline _InputIterator 12329: __find_if(_InputIterator __first, _InputIterator __last, 12329: _Predicate __pred, input_iterator_tag) 12329: { 12329: while (__first != __last && !__pred(__first)) 12329: ++__first; 12329: return __first; 12329: } 12329: 12329: 12329: template 12329: 12329: _RandomAccessIterator 12329: __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Predicate __pred, random_access_iterator_tag) 12329: { 12329: typename iterator_traits<_RandomAccessIterator>::difference_type 12329: __trip_count = (__last - __first) >> 2; 12329: 12329: for (; __trip_count > 0; --__trip_count) 12329: { 12329: if (__pred(__first)) 12329: return __first; 12329: ++__first; 12329: 12329: if (__pred(__first)) 12329: return __first; 12329: ++__first; 12329: 12329: if (__pred(__first)) 12329: return __first; 12329: ++__first; 12329: 12329: if (__pred(__first)) 12329: return __first; 12329: ++__first; 12329: } 12329: 12329: switch (__last - __first) 12329: { 12329: case 3: 12329: if (__pred(__first)) 12329: return __first; 12329: ++__first; 12329: 12329: case 2: 12329: if (__pred(__first)) 12329: return __first; 12329: ++__first; 12329: 12329: case 1: 12329: if (__pred(__first)) 12329: return __first; 12329: ++__first; 12329: 12329: case 0: 12329: default: 12329: return __last; 12329: } 12329: } 12329: 12329: template 12329: 12329: inline _Iterator 12329: __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) 12329: { 12329: return __find_if(__first, __last, __pred, 12329: std::__iterator_category(__first)); 12329: } 12329: 12329: template 12329: 12329: typename iterator_traits<_InputIterator>::difference_type 12329: __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 12329: { 12329: typename iterator_traits<_InputIterator>::difference_type __n = 0; 12329: for (; __first != __last; ++__first) 12329: if (__pred(__first)) 12329: ++__n; 12329: return __n; 12329: } 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __remove_if(_ForwardIterator __first, _ForwardIterator __last, 12329: _Predicate __pred) 12329: { 12329: __first = std::__find_if(__first, __last, __pred); 12329: if (__first == __last) 12329: return __first; 12329: _ForwardIterator __result = __first; 12329: ++__first; 12329: for (; __first != __last; ++__first) 12329: if (!__pred(__first)) 12329: { 12329: *__result = std::move(*__first); 12329: ++__result; 12329: } 12329: return __result; 12329: } 12329: 12329: 12329: template 12329: 12329: bool 12329: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2, _BinaryPredicate __pred) 12329: { 12329: 12329: 12329: for (; __first1 != __last1; ++__first1, (void)++__first2) 12329: if (!__pred(__first1, __first2)) 12329: break; 12329: 12329: if (__first1 == __last1) 12329: return true; 12329: 12329: 12329: 12329: _ForwardIterator2 __last2 = __first2; 12329: std::advance(__last2, std::distance(__first1, __last1)); 12329: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 12329: { 12329: if (__scan != std::__find_if(__first1, __scan, 12329: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 12329: continue; 12329: 12329: auto __matches 12329: = std::__count_if(__first2, __last2, 12329: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 12329: if (0 == __matches || 12329: std::__count_if(__scan, __last1, 12329: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 12329: != __matches) 12329: return false; 12329: } 12329: return true; 12329: } 12329: # 2199 "/usr/include/c++/12/bits/stl_algobase.h" 3 12329: template 12329: 12329: inline bool 12329: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__is_permutation(__first1, __last1, __first2, 12329: __gnu_cxx::__ops::__iter_equal_to_iter()); 12329: } 12329: 12329: 12329: 12329: } 12329: # 51 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/refwrap.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/refwrap.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/refwrap.h" 3 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/invoke.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/invoke.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/invoke.h" 3 12329: # 42 "/usr/include/c++/12/bits/invoke.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 53 "/usr/include/c++/12/bits/invoke.h" 3 12329: template::type> 12329: constexpr _Up&& 12329: __invfwd(typename remove_reference<_Tp>::type& __t) noexcept 12329: { return static_cast<_Up&&>(__t); } 12329: 12329: template 12329: constexpr _Res 12329: __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) 12329: { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } 12329: 12329: template 12329: constexpr _Res 12329: __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, 12329: _Args&&... __args) 12329: { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } 12329: 12329: template 12329: constexpr _Res 12329: __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, 12329: _Args&&... __args) 12329: { 12329: return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); 12329: } 12329: 12329: template 12329: constexpr _Res 12329: __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) 12329: { return __invfwd<_Tp>(__t).*__f; } 12329: 12329: template 12329: constexpr _Res 12329: __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) 12329: { return (*std::forward<_Tp>(__t)).*__f; } 12329: 12329: 12329: template 12329: constexpr typename __invoke_result<_Callable, _Args...>::type 12329: __invoke(_Callable&& __fn, _Args&&... __args) 12329: noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) 12329: { 12329: using __result = __invoke_result<_Callable, _Args...>; 12329: using __type = typename __result::type; 12329: using __tag = typename __result::__invoke_type; 12329: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 12329: std::forward<_Args>(__args)...); 12329: } 12329: # 119 "/usr/include/c++/12/bits/invoke.h" 3 12329: template 12329: using __can_invoke_as_void = __enable_if_t< 12329: __and_, __is_invocable<_Callable, _Args...>>::value, 12329: _Res 12329: >; 12329: 12329: template 12329: using __can_invoke_as_nonvoid = __enable_if_t< 12329: __and_<__not_>, 12329: is_convertible::type, 12329: _Res> 12329: >::value, 12329: _Res 12329: >; 12329: 12329: 12329: template 12329: constexpr __can_invoke_as_nonvoid<_Res, _Callable, _Args...> 12329: __invoke_r(_Callable&& __fn, _Args&&... __args) 12329: { 12329: using __result = __invoke_result<_Callable, _Args...>; 12329: using __type = typename __result::type; 12329: using __tag = typename __result::__invoke_type; 12329: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 12329: std::forward<_Args>(__args)...); 12329: } 12329: 12329: 12329: template 12329: constexpr __can_invoke_as_void<_Res, _Callable, _Args...> 12329: __invoke_r(_Callable&& __fn, _Args&&... __args) 12329: { 12329: using __result = __invoke_result<_Callable, _Args...>; 12329: using __type = typename __result::type; 12329: using __tag = typename __result::__invoke_type; 12329: std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 12329: std::forward<_Args>(__args)...); 12329: } 12329: 12329: 12329: 12329: } 12329: # 39 "/usr/include/c++/12/bits/refwrap.h" 2 3 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 52 "/usr/include/c++/12/bits/refwrap.h" 3 12329: template 12329: struct _Maybe_unary_or_binary_function { }; 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: template 12329: struct _Maybe_unary_or_binary_function<_Res, _T1> 12329: : std::unary_function<_T1, _Res> { }; 12329: 12329: 12329: template 12329: struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> 12329: : std::binary_function<_T1, _T2, _Res> { }; 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: template 12329: struct _Mem_fn_traits; 12329: 12329: template 12329: struct _Mem_fn_traits_base 12329: { 12329: using __result_type = _Res; 12329: using __maybe_type 12329: = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>; 12329: using __arity = integral_constant; 12329: }; 12329: # 103 "/usr/include/c++/12/bits/refwrap.h" 3 12329: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) > : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) > : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const > : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const > : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile > : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile > : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile > : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile > : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 12329: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) &> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) &> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const &> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const &> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile &> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile &> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile &> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile &> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 12329: template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) &&> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) &&> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const &&> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const &&> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile &&> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile &&> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile &&> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile &&> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; }; 12329: # 117 "/usr/include/c++/12/bits/refwrap.h" 3 12329: template> 12329: struct _Maybe_get_result_type 12329: { }; 12329: 12329: template 12329: struct _Maybe_get_result_type<_Functor, 12329: __void_t> 12329: { typedef typename _Functor::result_type result_type; }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct _Weak_result_type_impl 12329: : _Maybe_get_result_type<_Functor> 12329: { }; 12329: 12329: 12329: template 12329: struct _Weak_result_type_impl<_Res(_ArgTypes...) > 12329: { typedef _Res result_type; }; 12329: 12329: 12329: template 12329: struct _Weak_result_type_impl<_Res(_ArgTypes......) > 12329: { typedef _Res result_type; }; 12329: 12329: 12329: template 12329: struct _Weak_result_type_impl<_Res(*)(_ArgTypes...) > 12329: { typedef _Res result_type; }; 12329: 12329: 12329: template 12329: struct 12329: _Weak_result_type_impl<_Res(*)(_ArgTypes......) > 12329: { typedef _Res result_type; }; 12329: 12329: 12329: template::value> 12329: struct _Weak_result_type_memfun 12329: : _Weak_result_type_impl<_Functor> 12329: { }; 12329: 12329: 12329: template 12329: struct _Weak_result_type_memfun<_MemFunPtr, true> 12329: { 12329: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 12329: }; 12329: 12329: 12329: template 12329: struct _Weak_result_type_memfun<_Func _Class::*, false> 12329: { }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct _Weak_result_type 12329: : _Weak_result_type_memfun::type> 12329: { }; 12329: 12329: 12329: 12329: template> 12329: struct _Refwrap_base_arg1 12329: { }; 12329: 12329: 12329: template 12329: struct _Refwrap_base_arg1<_Tp, 12329: __void_t> 12329: { 12329: typedef typename _Tp::argument_type argument_type; 12329: }; 12329: 12329: 12329: template> 12329: struct _Refwrap_base_arg2 12329: { }; 12329: 12329: 12329: template 12329: struct _Refwrap_base_arg2<_Tp, 12329: __void_t> 12329: { 12329: typedef typename _Tp::first_argument_type first_argument_type; 12329: typedef typename _Tp::second_argument_type second_argument_type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct _Reference_wrapper_base 12329: : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp> 12329: { }; 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: template 12329: struct _Reference_wrapper_base<_Res(_T1) > 12329: : unary_function<_T1, _Res> 12329: { }; 12329: 12329: template 12329: struct _Reference_wrapper_base<_Res(_T1) const> 12329: : unary_function<_T1, _Res> 12329: { }; 12329: 12329: template 12329: struct _Reference_wrapper_base<_Res(_T1) volatile> 12329: : unary_function<_T1, _Res> 12329: { }; 12329: 12329: template 12329: struct _Reference_wrapper_base<_Res(_T1) const volatile> 12329: : unary_function<_T1, _Res> 12329: { }; 12329: 12329: 12329: template 12329: struct _Reference_wrapper_base<_Res(_T1, _T2) > 12329: : binary_function<_T1, _T2, _Res> 12329: { }; 12329: 12329: template 12329: struct _Reference_wrapper_base<_Res(_T1, _T2) const> 12329: : binary_function<_T1, _T2, _Res> 12329: { }; 12329: 12329: template 12329: struct _Reference_wrapper_base<_Res(_T1, _T2) volatile> 12329: : binary_function<_T1, _T2, _Res> 12329: { }; 12329: 12329: template 12329: struct _Reference_wrapper_base<_Res(_T1, _T2) const volatile> 12329: : binary_function<_T1, _T2, _Res> 12329: { }; 12329: 12329: 12329: template 12329: struct _Reference_wrapper_base<_Res(*)(_T1) > 12329: : unary_function<_T1, _Res> 12329: { }; 12329: 12329: 12329: template 12329: struct _Reference_wrapper_base<_Res(*)(_T1, _T2) > 12329: : binary_function<_T1, _T2, _Res> 12329: { }; 12329: 12329: template::value> 12329: struct _Reference_wrapper_base_memfun 12329: : _Reference_wrapper_base<_Tp> 12329: { }; 12329: 12329: template 12329: struct _Reference_wrapper_base_memfun<_MemFunPtr, true> 12329: : _Mem_fn_traits<_MemFunPtr>::__maybe_type 12329: { 12329: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 12329: }; 12329: #pragma GCC diagnostic pop 12329: # 302 "/usr/include/c++/12/bits/refwrap.h" 3 12329: template 12329: class reference_wrapper 12329: 12329: 12329: 12329: : public _Reference_wrapper_base_memfun::type> 12329: 12329: { 12329: _Tp* _M_data; 12329: 12329: 12329: static _Tp* _S_fun(_Tp& __r) noexcept { return std::__addressof(__r); } 12329: 12329: static void _S_fun(_Tp&&) = delete; 12329: 12329: template> 12329: using __not_same 12329: = typename enable_if::value>::type; 12329: 12329: public: 12329: typedef _Tp type; 12329: 12329: 12329: 12329: 12329: template, typename 12329: = decltype(reference_wrapper::_S_fun(std::declval<_Up>()))> 12329: 12329: reference_wrapper(_Up&& __uref) 12329: noexcept(noexcept(reference_wrapper::_S_fun(std::declval<_Up>()))) 12329: : _M_data(reference_wrapper::_S_fun(std::forward<_Up>(__uref))) 12329: { } 12329: 12329: reference_wrapper(const reference_wrapper&) = default; 12329: 12329: reference_wrapper& 12329: operator=(const reference_wrapper&) = default; 12329: 12329: 12329: operator _Tp&() const noexcept 12329: { return this->get(); } 12329: 12329: 12329: _Tp& 12329: get() const noexcept 12329: { return *_M_data; } 12329: 12329: template 12329: 12329: typename result_of<_Tp&(_Args&&...)>::type 12329: operator()(_Args&&... __args) const 12329: { 12329: 12329: 12329: 12329: 12329: return std::__invoke(get(), std::forward<_Args>(__args)...); 12329: } 12329: }; 12329: # 370 "/usr/include/c++/12/bits/refwrap.h" 3 12329: template 12329: 12329: inline reference_wrapper<_Tp> 12329: ref(_Tp& __t) noexcept 12329: { return reference_wrapper<_Tp>(__t); } 12329: 12329: 12329: template 12329: 12329: inline reference_wrapper 12329: cref(const _Tp& __t) noexcept 12329: { return reference_wrapper(__t); } 12329: 12329: template 12329: void ref(const _Tp&&) = delete; 12329: 12329: template 12329: void cref(const _Tp&&) = delete; 12329: 12329: 12329: template 12329: 12329: inline reference_wrapper<_Tp> 12329: ref(reference_wrapper<_Tp> __t) noexcept 12329: { return __t; } 12329: 12329: 12329: template 12329: 12329: inline reference_wrapper 12329: cref(reference_wrapper<_Tp> __t) noexcept 12329: { return { __t.get() }; } 12329: 12329: 12329: 12329: 12329: } 12329: # 52 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/range_access.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/range_access.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/range_access.h" 3 12329: 12329: 12329: # 1 "/usr/include/c++/12/initializer_list" 1 3 12329: # 33 "/usr/include/c++/12/initializer_list" 3 12329: 12329: # 34 "/usr/include/c++/12/initializer_list" 3 12329: 12329: 12329: 12329: 12329: 12329: #pragma GCC visibility push(default) 12329: 12329: 12329: 12329: namespace std 12329: { 12329: 12329: template 12329: class initializer_list 12329: { 12329: public: 12329: typedef _E value_type; 12329: typedef const _E& reference; 12329: typedef const _E& const_reference; 12329: typedef size_t size_type; 12329: typedef const _E* iterator; 12329: typedef const _E* const_iterator; 12329: 12329: private: 12329: iterator _M_array; 12329: size_type _M_len; 12329: 12329: 12329: constexpr initializer_list(const_iterator __a, size_type __l) 12329: : _M_array(__a), _M_len(__l) { } 12329: 12329: public: 12329: constexpr initializer_list() noexcept 12329: : _M_array(0), _M_len(0) { } 12329: 12329: 12329: constexpr size_type 12329: size() const noexcept { return _M_len; } 12329: 12329: 12329: constexpr const_iterator 12329: begin() const noexcept { return _M_array; } 12329: 12329: 12329: constexpr const_iterator 12329: end() const noexcept { return begin() + size(); } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: constexpr const _Tp* 12329: begin(initializer_list<_Tp> __ils) noexcept 12329: { return __ils.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: constexpr const _Tp* 12329: end(initializer_list<_Tp> __ils) noexcept 12329: { return __ils.end(); } 12329: } 12329: 12329: #pragma GCC visibility pop 12329: # 37 "/usr/include/c++/12/bits/range_access.h" 2 3 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline auto 12329: begin(_Container& __cont) -> decltype(__cont.begin()) 12329: { return __cont.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline auto 12329: begin(const _Container& __cont) -> decltype(__cont.begin()) 12329: { return __cont.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline auto 12329: end(_Container& __cont) -> decltype(__cont.end()) 12329: { return __cont.end(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline auto 12329: end(const _Container& __cont) -> decltype(__cont.end()) 12329: { return __cont.end(); } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline constexpr _Tp* 12329: begin(_Tp (&__arr)[_Nm]) noexcept 12329: { return __arr; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline constexpr _Tp* 12329: end(_Tp (&__arr)[_Nm]) noexcept 12329: { return __arr + _Nm; } 12329: 12329: 12329: 12329: template class valarray; 12329: 12329: template _Tp* begin(valarray<_Tp>&) noexcept; 12329: template const _Tp* begin(const valarray<_Tp>&) noexcept; 12329: template _Tp* end(valarray<_Tp>&) noexcept; 12329: template const _Tp* end(const valarray<_Tp>&) noexcept; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: constexpr auto 12329: cbegin(const _Container& __cont) noexcept(noexcept(std::begin(__cont))) 12329: -> decltype(std::begin(__cont)) 12329: { return std::begin(__cont); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: constexpr auto 12329: cend(const _Container& __cont) noexcept(noexcept(std::end(__cont))) 12329: -> decltype(std::end(__cont)) 12329: { return std::end(__cont); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline auto 12329: rbegin(_Container& __cont) -> decltype(__cont.rbegin()) 12329: { return __cont.rbegin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline auto 12329: rbegin(const _Container& __cont) -> decltype(__cont.rbegin()) 12329: { return __cont.rbegin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline auto 12329: rend(_Container& __cont) -> decltype(__cont.rend()) 12329: { return __cont.rend(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline auto 12329: rend(const _Container& __cont) -> decltype(__cont.rend()) 12329: { return __cont.rend(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline reverse_iterator<_Tp*> 12329: rbegin(_Tp (&__arr)[_Nm]) noexcept 12329: { return reverse_iterator<_Tp*>(__arr + _Nm); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline reverse_iterator<_Tp*> 12329: rend(_Tp (&__arr)[_Nm]) noexcept 12329: { return reverse_iterator<_Tp*>(__arr); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline reverse_iterator 12329: rbegin(initializer_list<_Tp> __il) noexcept 12329: { return reverse_iterator(__il.end()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline reverse_iterator 12329: rend(initializer_list<_Tp> __il) noexcept 12329: { return reverse_iterator(__il.begin()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline auto 12329: crbegin(const _Container& __cont) -> decltype(std::rbegin(__cont)) 12329: { return std::rbegin(__cont); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[__nodiscard__]] 12329: inline auto 12329: crend(const _Container& __cont) -> decltype(std::rend(__cont)) 12329: { return std::rend(__cont); } 12329: # 367 "/usr/include/c++/12/bits/range_access.h" 3 12329: 12329: } 12329: # 53 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/basic_string.h" 1 3 12329: # 37 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: # 1 "/usr/include/c++/12/ext/alloc_traits.h" 1 3 12329: # 32 "/usr/include/c++/12/ext/alloc_traits.h" 3 12329: 12329: # 33 "/usr/include/c++/12/ext/alloc_traits.h" 3 12329: 12329: # 1 "/usr/include/c++/12/bits/alloc_traits.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: # 1 "/usr/include/c++/12/bits/stl_construct.h" 1 3 12329: # 73 "/usr/include/c++/12/bits/stl_construct.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 106 "/usr/include/c++/12/bits/stl_construct.h" 3 12329: template 12329: 12329: inline void 12329: _Construct(_Tp* __p, _Args&&... __args) 12329: { 12329: # 119 "/usr/include/c++/12/bits/stl_construct.h" 3 12329: ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); 12329: } 12329: # 132 "/usr/include/c++/12/bits/stl_construct.h" 3 12329: template 12329: inline void 12329: _Construct_novalue(_T1* __p) 12329: { ::new((void*)__p) _T1; } 12329: 12329: template 12329: void 12329: _Destroy(_ForwardIterator __first, _ForwardIterator __last); 12329: 12329: 12329: 12329: 12329: template 12329: constexpr inline void 12329: _Destroy(_Tp* __pointer) 12329: { 12329: 12329: 12329: 12329: __pointer->~_Tp(); 12329: 12329: } 12329: 12329: template 12329: struct _Destroy_aux 12329: { 12329: template 12329: static void 12329: __destroy(_ForwardIterator __first, _ForwardIterator __last) 12329: { 12329: for (; __first != __last; ++__first) 12329: std::_Destroy(std::__addressof(*__first)); 12329: } 12329: }; 12329: 12329: template<> 12329: struct _Destroy_aux 12329: { 12329: template 12329: static void 12329: __destroy(_ForwardIterator, _ForwardIterator) { } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline void 12329: _Destroy(_ForwardIterator __first, _ForwardIterator __last) 12329: { 12329: typedef typename iterator_traits<_ForwardIterator>::value_type 12329: _Value_type; 12329: 12329: 12329: static_assert(is_destructible<_Value_type>::value, 12329: "value type is destructible"); 12329: 12329: 12329: 12329: 12329: 12329: std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: 12329: __destroy(__first, __last); 12329: } 12329: 12329: template 12329: struct _Destroy_n_aux 12329: { 12329: template 12329: static _ForwardIterator 12329: __destroy_n(_ForwardIterator __first, _Size __count) 12329: { 12329: for (; __count > 0; (void)++__first, --__count) 12329: std::_Destroy(std::__addressof(*__first)); 12329: return __first; 12329: } 12329: }; 12329: 12329: template<> 12329: struct _Destroy_n_aux 12329: { 12329: template 12329: static _ForwardIterator 12329: __destroy_n(_ForwardIterator __first, _Size __count) 12329: { 12329: std::advance(__first, __count); 12329: return __first; 12329: } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline _ForwardIterator 12329: _Destroy_n(_ForwardIterator __first, _Size __count) 12329: { 12329: typedef typename iterator_traits<_ForwardIterator>::value_type 12329: _Value_type; 12329: 12329: 12329: static_assert(is_destructible<_Value_type>::value, 12329: "value type is destructible"); 12329: 12329: 12329: 12329: 12329: 12329: return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: 12329: __destroy_n(__first, __count); 12329: } 12329: # 264 "/usr/include/c++/12/bits/stl_construct.h" 3 12329: 12329: } 12329: # 34 "/usr/include/c++/12/bits/alloc_traits.h" 2 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: struct __allocator_traits_base 12329: { 12329: template 12329: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 12329: 12329: template 12329: struct __rebind<_Tp, _Up, 12329: __void_t::other>> 12329: { using type = typename _Tp::template rebind<_Up>::other; }; 12329: 12329: protected: 12329: template 12329: using __pointer = typename _Tp::pointer; 12329: template 12329: using __c_pointer = typename _Tp::const_pointer; 12329: template 12329: using __v_pointer = typename _Tp::void_pointer; 12329: template 12329: using __cv_pointer = typename _Tp::const_void_pointer; 12329: template 12329: using __pocca = typename _Tp::propagate_on_container_copy_assignment; 12329: template 12329: using __pocma = typename _Tp::propagate_on_container_move_assignment; 12329: template 12329: using __pocs = typename _Tp::propagate_on_container_swap; 12329: template 12329: using __equal = typename _Tp::is_always_equal; 12329: }; 12329: 12329: template 12329: using __alloc_rebind 12329: = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; 12329: # 89 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: template 12329: struct allocator_traits : __allocator_traits_base 12329: { 12329: 12329: typedef _Alloc allocator_type; 12329: 12329: typedef typename _Alloc::value_type value_type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: using pointer = __detected_or_t; 12329: 12329: private: 12329: 12329: template class _Func, typename _Tp, typename = void> 12329: struct _Ptr 12329: { 12329: using type = typename pointer_traits::template rebind<_Tp>; 12329: }; 12329: 12329: template class _Func, typename _Tp> 12329: struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> 12329: { 12329: using type = _Func<_Alloc>; 12329: }; 12329: 12329: 12329: template 12329: struct _Diff 12329: { using type = typename pointer_traits<_PtrT>::difference_type; }; 12329: 12329: template 12329: struct _Diff<_A2, _PtrT, __void_t> 12329: { using type = typename _A2::difference_type; }; 12329: 12329: 12329: template 12329: struct _Size : make_unsigned<_DiffT> { }; 12329: 12329: template 12329: struct _Size<_A2, _DiffT, __void_t> 12329: { using type = typename _A2::size_type; }; 12329: 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: 12329: using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: using void_pointer = typename _Ptr<__v_pointer, void>::type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: using difference_type = typename _Diff<_Alloc, pointer>::type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: using size_type = typename _Size<_Alloc, difference_type>::type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: using propagate_on_container_copy_assignment 12329: = __detected_or_t; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: using propagate_on_container_move_assignment 12329: = __detected_or_t; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: using propagate_on_container_swap 12329: = __detected_or_t; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: using is_always_equal 12329: = __detected_or_t::type, __equal, _Alloc>; 12329: 12329: template 12329: using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; 12329: template 12329: using rebind_traits = allocator_traits>; 12329: 12329: private: 12329: template 12329: static constexpr auto 12329: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int) 12329: -> decltype(__a.allocate(__n, __hint)) 12329: { return __a.allocate(__n, __hint); } 12329: 12329: template 12329: static constexpr pointer 12329: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...) 12329: { return __a.allocate(__n); } 12329: 12329: template 12329: struct __construct_helper 12329: { 12329: template()->construct( 12329: std::declval<_Tp*>(), std::declval<_Args>()...))> 12329: static true_type __test(int); 12329: 12329: template 12329: static false_type __test(...); 12329: 12329: using type = decltype(__test<_Alloc>(0)); 12329: }; 12329: 12329: template 12329: using __has_construct 12329: = typename __construct_helper<_Tp, _Args...>::type; 12329: 12329: template 12329: static constexpr _Require<__has_construct<_Tp, _Args...>> 12329: _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 12329: noexcept(noexcept(__a.construct(__p, std::forward<_Args>(__args)...))) 12329: { __a.construct(__p, std::forward<_Args>(__args)...); } 12329: 12329: template 12329: static constexpr 12329: _Require<__and_<__not_<__has_construct<_Tp, _Args...>>, 12329: is_constructible<_Tp, _Args...>>> 12329: _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) 12329: noexcept(std::is_nothrow_constructible<_Tp, _Args...>::value) 12329: { 12329: 12329: ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); 12329: 12329: 12329: 12329: } 12329: 12329: template 12329: static constexpr auto 12329: _S_destroy(_Alloc2& __a, _Tp* __p, int) 12329: noexcept(noexcept(__a.destroy(__p))) 12329: -> decltype(__a.destroy(__p)) 12329: { __a.destroy(__p); } 12329: 12329: template 12329: static constexpr void 12329: _S_destroy(_Alloc2&, _Tp* __p, ...) 12329: noexcept(std::is_nothrow_destructible<_Tp>::value) 12329: { std::_Destroy(__p); } 12329: 12329: template 12329: static constexpr auto 12329: _S_max_size(_Alloc2& __a, int) 12329: -> decltype(__a.max_size()) 12329: { return __a.max_size(); } 12329: 12329: template 12329: static constexpr size_type 12329: _S_max_size(_Alloc2&, ...) 12329: { 12329: 12329: 12329: return __gnu_cxx::__numeric_traits::__max 12329: / sizeof(value_type); 12329: } 12329: 12329: template 12329: static constexpr auto 12329: _S_select(_Alloc2& __a, int) 12329: -> decltype(__a.select_on_container_copy_construction()) 12329: { return __a.select_on_container_copy_construction(); } 12329: 12329: template 12329: static constexpr _Alloc2 12329: _S_select(_Alloc2& __a, ...) 12329: { return __a; } 12329: 12329: public: 12329: # 316 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: static pointer 12329: allocate(_Alloc& __a, size_type __n) 12329: { return __a.allocate(__n); } 12329: # 331 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: static pointer 12329: allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) 12329: { return _S_allocate(__a, __n, __hint, 0); } 12329: # 343 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: static void 12329: deallocate(_Alloc& __a, pointer __p, size_type __n) 12329: { __a.deallocate(__p, __n); } 12329: # 358 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: template 12329: static auto 12329: construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 12329: noexcept(noexcept(_S_construct(__a, __p, 12329: std::forward<_Args>(__args)...))) 12329: -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) 12329: { _S_construct(__a, __p, std::forward<_Args>(__args)...); } 12329: # 374 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: template 12329: static void 12329: destroy(_Alloc& __a, _Tp* __p) 12329: noexcept(noexcept(_S_destroy(__a, __p, 0))) 12329: { _S_destroy(__a, __p, 0); } 12329: # 388 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: static size_type 12329: max_size(const _Alloc& __a) noexcept 12329: { return _S_max_size(__a, 0); } 12329: # 400 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: static _Alloc 12329: select_on_container_copy_construction(const _Alloc& __rhs) 12329: { return _S_select(__rhs, 0); } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct allocator_traits> 12329: { 12329: 12329: using allocator_type = allocator<_Tp>; 12329: 12329: 12329: using value_type = _Tp; 12329: 12329: 12329: using pointer = _Tp*; 12329: 12329: 12329: using const_pointer = const _Tp*; 12329: 12329: 12329: using void_pointer = void*; 12329: 12329: 12329: using const_void_pointer = const void*; 12329: 12329: 12329: using difference_type = std::ptrdiff_t; 12329: 12329: 12329: using size_type = std::size_t; 12329: 12329: 12329: using propagate_on_container_copy_assignment = false_type; 12329: 12329: 12329: using propagate_on_container_move_assignment = true_type; 12329: 12329: 12329: using propagate_on_container_swap = false_type; 12329: 12329: 12329: using is_always_equal = true_type; 12329: 12329: template 12329: using rebind_alloc = allocator<_Up>; 12329: 12329: template 12329: using rebind_traits = allocator_traits>; 12329: # 462 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: static pointer 12329: allocate(allocator_type& __a, size_type __n) 12329: { return __a.allocate(__n); } 12329: # 476 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: static pointer 12329: allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) 12329: { 12329: 12329: return __a.allocate(__n, __hint); 12329: 12329: 12329: 12329: } 12329: # 494 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: static void 12329: deallocate(allocator_type& __a, pointer __p, size_type __n) 12329: { __a.deallocate(__p, __n); } 12329: # 509 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: template 12329: static void 12329: construct(allocator_type& __a __attribute__((__unused__)), _Up* __p, 12329: _Args&&... __args) 12329: noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) 12329: { 12329: 12329: __a.construct(__p, std::forward<_Args>(__args)...); 12329: 12329: 12329: 12329: } 12329: # 529 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: template 12329: static void 12329: destroy(allocator_type& __a __attribute__((__unused__)), _Up* __p) 12329: noexcept(is_nothrow_destructible<_Up>::value) 12329: { 12329: 12329: __a.destroy(__p); 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: static size_type 12329: max_size(const allocator_type& __a __attribute__((__unused__))) noexcept 12329: { 12329: 12329: return __a.max_size(); 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: static allocator_type 12329: select_on_container_copy_construction(const allocator_type& __rhs) 12329: { return __rhs; } 12329: }; 12329: 12329: 12329: template<> 12329: struct allocator_traits> 12329: { 12329: 12329: using allocator_type = allocator; 12329: 12329: 12329: using value_type = void; 12329: 12329: 12329: using pointer = void*; 12329: 12329: 12329: using const_pointer = const void*; 12329: 12329: 12329: using void_pointer = void*; 12329: 12329: 12329: using const_void_pointer = const void*; 12329: 12329: 12329: using difference_type = std::ptrdiff_t; 12329: 12329: 12329: using size_type = std::size_t; 12329: 12329: 12329: using propagate_on_container_copy_assignment = false_type; 12329: 12329: 12329: using propagate_on_container_move_assignment = true_type; 12329: 12329: 12329: using propagate_on_container_swap = false_type; 12329: 12329: 12329: using is_always_equal = true_type; 12329: 12329: template 12329: using rebind_alloc = allocator<_Up>; 12329: 12329: template 12329: using rebind_traits = allocator_traits>; 12329: 12329: 12329: static void* 12329: allocate(allocator_type&, size_type, const void* = nullptr) = delete; 12329: 12329: 12329: static void 12329: deallocate(allocator_type&, void*, size_type) = delete; 12329: # 631 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: template 12329: static void 12329: construct(allocator_type&, _Up* __p, _Args&&... __args) 12329: noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) 12329: { std::_Construct(__p, std::forward<_Args>(__args)...); } 12329: # 644 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: template 12329: static void 12329: destroy(allocator_type&, _Up* __p) 12329: noexcept(is_nothrow_destructible<_Up>::value) 12329: { std::_Destroy(__p); } 12329: 12329: 12329: static size_type 12329: max_size(const allocator_type&) = delete; 12329: 12329: 12329: 12329: 12329: 12329: 12329: static allocator_type 12329: select_on_container_copy_construction(const allocator_type& __rhs) 12329: { return __rhs; } 12329: }; 12329: 12329: 12329: template 12329: inline void 12329: __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type) 12329: { __one = __two; } 12329: 12329: template 12329: inline void 12329: __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type) 12329: { } 12329: 12329: 12329: template 12329: constexpr inline void 12329: __alloc_on_copy(_Alloc& __one, const _Alloc& __two) 12329: { 12329: typedef allocator_traits<_Alloc> __traits; 12329: typedef typename __traits::propagate_on_container_copy_assignment __pocca; 12329: 12329: 12329: 12329: 12329: __do_alloc_on_copy(__one, __two, __pocca()); 12329: 12329: } 12329: 12329: template 12329: constexpr _Alloc 12329: __alloc_on_copy(const _Alloc& __a) 12329: { 12329: typedef allocator_traits<_Alloc> __traits; 12329: return __traits::select_on_container_copy_construction(__a); 12329: } 12329: 12329: 12329: template 12329: inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type) 12329: { __one = std::move(__two); } 12329: 12329: template 12329: inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type) 12329: { } 12329: 12329: 12329: template 12329: constexpr inline void 12329: __alloc_on_move(_Alloc& __one, _Alloc& __two) 12329: { 12329: typedef allocator_traits<_Alloc> __traits; 12329: typedef typename __traits::propagate_on_container_move_assignment __pocma; 12329: 12329: 12329: 12329: 12329: __do_alloc_on_move(__one, __two, __pocma()); 12329: 12329: } 12329: 12329: 12329: template 12329: inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type) 12329: { 12329: using std::swap; 12329: swap(__one, __two); 12329: } 12329: 12329: template 12329: inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type) 12329: { } 12329: 12329: 12329: template 12329: constexpr inline void 12329: __alloc_on_swap(_Alloc& __one, _Alloc& __two) 12329: { 12329: typedef allocator_traits<_Alloc> __traits; 12329: typedef typename __traits::propagate_on_container_swap __pocs; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: __do_alloc_on_swap(__one, __two, __pocs()); 12329: 12329: } 12329: 12329: template, 12329: typename = void> 12329: struct __is_alloc_insertable_impl 12329: : false_type 12329: { }; 12329: 12329: template 12329: struct __is_alloc_insertable_impl<_Alloc, _Tp, _ValueT, 12329: __void_t::construct( 12329: std::declval<_Alloc&>(), std::declval<_ValueT*>(), 12329: std::declval<_Tp>()))>> 12329: : true_type 12329: { }; 12329: 12329: 12329: 12329: 12329: template 12329: struct __is_copy_insertable 12329: : __is_alloc_insertable_impl<_Alloc, 12329: typename _Alloc::value_type const&>::type 12329: { }; 12329: 12329: 12329: template 12329: struct __is_copy_insertable> 12329: : is_copy_constructible<_Tp> 12329: { }; 12329: 12329: 12329: 12329: 12329: template 12329: struct __is_move_insertable 12329: : __is_alloc_insertable_impl<_Alloc, typename _Alloc::value_type>::type 12329: { }; 12329: 12329: 12329: template 12329: struct __is_move_insertable> 12329: : is_move_constructible<_Tp> 12329: { }; 12329: 12329: 12329: template 12329: struct __is_allocator : false_type { }; 12329: 12329: template 12329: struct __is_allocator<_Alloc, 12329: __void_t().allocate(size_t{}))>> 12329: : true_type { }; 12329: 12329: template 12329: using _RequireAllocator 12329: = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; 12329: 12329: template 12329: using _RequireNotAllocator 12329: = typename enable_if::value, _Alloc>::type; 12329: # 829 "/usr/include/c++/12/bits/alloc_traits.h" 3 12329: template 12329: 12329: void 12329: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 12329: _Allocator& __alloc) 12329: { 12329: for (; __first != __last; ++__first) 12329: 12329: 12329: 12329: allocator_traits<_Allocator>::destroy(__alloc, 12329: std::__addressof(*__first)); 12329: 12329: } 12329: 12329: template 12329: 12329: inline void 12329: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 12329: allocator<_Tp>&) 12329: { 12329: _Destroy(__first, __last); 12329: } 12329: 12329: 12329: } 12329: # 35 "/usr/include/c++/12/ext/alloc_traits.h" 2 3 12329: 12329: 12329: 12329: 12329: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct __alloc_traits 12329: 12329: : std::allocator_traits<_Alloc> 12329: 12329: { 12329: typedef _Alloc allocator_type; 12329: 12329: typedef std::allocator_traits<_Alloc> _Base_type; 12329: typedef typename _Base_type::value_type value_type; 12329: typedef typename _Base_type::pointer pointer; 12329: typedef typename _Base_type::const_pointer const_pointer; 12329: typedef typename _Base_type::size_type size_type; 12329: typedef typename _Base_type::difference_type difference_type; 12329: 12329: typedef value_type& reference; 12329: typedef const value_type& const_reference; 12329: using _Base_type::allocate; 12329: using _Base_type::deallocate; 12329: using _Base_type::construct; 12329: using _Base_type::destroy; 12329: using _Base_type::max_size; 12329: 12329: private: 12329: template 12329: using __is_custom_pointer 12329: = std::__and_, 12329: std::__not_>>; 12329: 12329: public: 12329: 12329: template 12329: static constexpr 12329: std::__enable_if_t<__is_custom_pointer<_Ptr>::value> 12329: construct(_Alloc& __a, _Ptr __p, _Args&&... __args) 12329: noexcept(noexcept(_Base_type::construct(__a, std::__to_address(__p), 12329: std::forward<_Args>(__args)...))) 12329: { 12329: _Base_type::construct(__a, std::__to_address(__p), 12329: std::forward<_Args>(__args)...); 12329: } 12329: 12329: 12329: template 12329: static constexpr 12329: std::__enable_if_t<__is_custom_pointer<_Ptr>::value> 12329: destroy(_Alloc& __a, _Ptr __p) 12329: noexcept(noexcept(_Base_type::destroy(__a, std::__to_address(__p)))) 12329: { _Base_type::destroy(__a, std::__to_address(__p)); } 12329: 12329: static constexpr _Alloc _S_select_on_copy(const _Alloc& __a) 12329: { return _Base_type::select_on_container_copy_construction(__a); } 12329: 12329: static constexpr void _S_on_swap(_Alloc& __a, _Alloc& __b) 12329: { std::__alloc_on_swap(__a, __b); } 12329: 12329: static constexpr bool _S_propagate_on_copy_assign() 12329: { return _Base_type::propagate_on_container_copy_assignment::value; } 12329: 12329: static constexpr bool _S_propagate_on_move_assign() 12329: { return _Base_type::propagate_on_container_move_assignment::value; } 12329: 12329: static constexpr bool _S_propagate_on_swap() 12329: { return _Base_type::propagate_on_container_swap::value; } 12329: 12329: static constexpr bool _S_always_equal() 12329: { return _Base_type::is_always_equal::value; } 12329: 12329: static constexpr bool _S_nothrow_move() 12329: { return _S_propagate_on_move_assign() || _S_always_equal(); } 12329: 12329: template 12329: struct rebind 12329: { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; 12329: # 166 "/usr/include/c++/12/ext/alloc_traits.h" 3 12329: }; 12329: 12329: 12329: } 12329: # 40 "/usr/include/c++/12/bits/basic_string.h" 2 3 12329: # 53 "/usr/include/c++/12/bits/basic_string.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: namespace __cxx11 { 12329: # 84 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: class basic_string 12329: { 12329: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 12329: rebind<_CharT>::other _Char_alloc_type; 12329: 12329: 12329: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 12329: # 122 "/usr/include/c++/12/bits/basic_string.h" 3 12329: public: 12329: typedef _Traits traits_type; 12329: typedef typename _Traits::char_type value_type; 12329: typedef _Char_alloc_type allocator_type; 12329: typedef typename _Alloc_traits::size_type size_type; 12329: typedef typename _Alloc_traits::difference_type difference_type; 12329: typedef typename _Alloc_traits::reference reference; 12329: typedef typename _Alloc_traits::const_reference const_reference; 12329: typedef typename _Alloc_traits::pointer pointer; 12329: typedef typename _Alloc_traits::const_pointer const_pointer; 12329: typedef __gnu_cxx::__normal_iterator iterator; 12329: typedef __gnu_cxx::__normal_iterator 12329: const_iterator; 12329: typedef std::reverse_iterator const_reverse_iterator; 12329: typedef std::reverse_iterator reverse_iterator; 12329: 12329: 12329: static const size_type npos = static_cast(-1); 12329: 12329: protected: 12329: 12329: 12329: 12329: 12329: typedef const_iterator __const_iterator; 12329: 12329: 12329: private: 12329: # 192 "/usr/include/c++/12/bits/basic_string.h" 3 12329: struct _Alloc_hider : allocator_type 12329: { 12329: 12329: 12329: 12329: 12329: 12329: _Alloc_hider(pointer __dat, const _Alloc& __a) 12329: : allocator_type(__a), _M_p(__dat) { } 12329: 12329: 12329: _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) 12329: : allocator_type(std::move(__a)), _M_p(__dat) { } 12329: 12329: 12329: pointer _M_p; 12329: }; 12329: 12329: _Alloc_hider _M_dataplus; 12329: size_type _M_string_length; 12329: 12329: enum { _S_local_capacity = 15 / sizeof(_CharT) }; 12329: 12329: union 12329: { 12329: _CharT _M_local_buf[_S_local_capacity + 1]; 12329: size_type _M_allocated_capacity; 12329: }; 12329: 12329: 12329: void 12329: _M_data(pointer __p) 12329: { _M_dataplus._M_p = __p; } 12329: 12329: 12329: void 12329: _M_length(size_type __length) 12329: { _M_string_length = __length; } 12329: 12329: 12329: pointer 12329: _M_data() const 12329: { return _M_dataplus._M_p; } 12329: 12329: 12329: pointer 12329: _M_local_data() 12329: { 12329: 12329: return std::pointer_traits::pointer_to(*_M_local_buf); 12329: 12329: 12329: 12329: } 12329: 12329: 12329: const_pointer 12329: _M_local_data() const 12329: { 12329: 12329: return std::pointer_traits::pointer_to(*_M_local_buf); 12329: 12329: 12329: 12329: } 12329: 12329: 12329: void 12329: _M_capacity(size_type __capacity) 12329: { _M_allocated_capacity = __capacity; } 12329: 12329: 12329: void 12329: _M_set_length(size_type __n) 12329: { 12329: _M_length(__n); 12329: traits_type::assign(_M_data()[__n], _CharT()); 12329: } 12329: 12329: 12329: bool 12329: _M_is_local() const 12329: { return _M_data() == _M_local_data(); } 12329: 12329: 12329: 12329: pointer 12329: _M_create(size_type&, size_type); 12329: 12329: 12329: void 12329: _M_dispose() 12329: { 12329: if (!_M_is_local()) 12329: _M_destroy(_M_allocated_capacity); 12329: } 12329: 12329: 12329: void 12329: _M_destroy(size_type __size) throw() 12329: { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } 12329: # 319 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: 12329: void 12329: _M_construct(_InIterator __beg, _InIterator __end, 12329: std::input_iterator_tag); 12329: 12329: 12329: 12329: template 12329: 12329: void 12329: _M_construct(_FwdIterator __beg, _FwdIterator __end, 12329: std::forward_iterator_tag); 12329: 12329: 12329: void 12329: _M_construct(size_type __req, _CharT __c); 12329: 12329: 12329: allocator_type& 12329: _M_get_allocator() 12329: { return _M_dataplus; } 12329: 12329: 12329: const allocator_type& 12329: _M_get_allocator() const 12329: { return _M_dataplus; } 12329: 12329: 12329: __attribute__((__always_inline__)) 12329: constexpr 12329: pointer 12329: _M_use_local_data() noexcept 12329: { 12329: 12329: 12329: 12329: 12329: 12329: return _M_local_data(); 12329: } 12329: 12329: private: 12329: # 377 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: _M_check(size_type __pos, const char* __s) const 12329: { 12329: if (__pos > this->size()) 12329: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") 12329: , 12329: __s, __pos, this->size()); 12329: return __pos; 12329: } 12329: 12329: 12329: void 12329: _M_check_length(size_type __n1, size_type __n2, const char* __s) const 12329: { 12329: if (this->max_size() - (this->size() - __n1) < __n2) 12329: __throw_length_error((__s)); 12329: } 12329: 12329: 12329: 12329: 12329: size_type 12329: _M_limit(size_type __pos, size_type __off) const noexcept 12329: { 12329: const bool __testoff = __off < this->size() - __pos; 12329: return __testoff ? __off : this->size() - __pos; 12329: } 12329: 12329: 12329: bool 12329: _M_disjunct(const _CharT* __s) const noexcept 12329: { 12329: return (less()(__s, _M_data()) 12329: || less()(_M_data() + this->size(), __s)); 12329: } 12329: 12329: 12329: 12329: 12329: static void 12329: _S_copy(_CharT* __d, const _CharT* __s, size_type __n) 12329: { 12329: if (__n == 1) 12329: traits_type::assign(*__d, *__s); 12329: else 12329: traits_type::copy(__d, __s, __n); 12329: } 12329: 12329: 12329: static void 12329: _S_move(_CharT* __d, const _CharT* __s, size_type __n) 12329: { 12329: if (__n == 1) 12329: traits_type::assign(*__d, *__s); 12329: else 12329: traits_type::move(__d, __s, __n); 12329: } 12329: 12329: 12329: static void 12329: _S_assign(_CharT* __d, size_type __n, _CharT __c) 12329: { 12329: if (__n == 1) 12329: traits_type::assign(*__d, __c); 12329: else 12329: traits_type::assign(__d, __n, __c); 12329: } 12329: 12329: 12329: 12329: template 12329: 12329: static void 12329: _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) 12329: { 12329: for (; __k1 != __k2; ++__k1, (void)++__p) 12329: traits_type::assign(*__p, *__k1); 12329: } 12329: 12329: 12329: static void 12329: _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept 12329: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 12329: 12329: 12329: static void 12329: _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) 12329: noexcept 12329: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 12329: 12329: 12329: static void 12329: _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept 12329: { _S_copy(__p, __k1, __k2 - __k1); } 12329: 12329: 12329: static void 12329: _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) 12329: noexcept 12329: { _S_copy(__p, __k1, __k2 - __k1); } 12329: 12329: 12329: static int 12329: _S_compare(size_type __n1, size_type __n2) noexcept 12329: { 12329: const difference_type __d = difference_type(__n1 - __n2); 12329: 12329: if (__d > __gnu_cxx::__numeric_traits::__max) 12329: return __gnu_cxx::__numeric_traits::__max; 12329: else if (__d < __gnu_cxx::__numeric_traits::__min) 12329: return __gnu_cxx::__numeric_traits::__min; 12329: else 12329: return int(__d); 12329: } 12329: 12329: 12329: void 12329: _M_assign(const basic_string&); 12329: 12329: 12329: void 12329: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 12329: size_type __len2); 12329: 12329: 12329: void 12329: _M_erase(size_type __pos, size_type __n); 12329: 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string() 12329: noexcept(is_nothrow_default_constructible<_Alloc>::value) 12329: : _M_dataplus(_M_local_data()) 12329: { 12329: _M_use_local_data(); 12329: _M_set_length(0); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: basic_string(const _Alloc& __a) noexcept 12329: : _M_dataplus(_M_local_data(), __a) 12329: { 12329: _M_use_local_data(); 12329: _M_set_length(0); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string(const basic_string& __str) 12329: : _M_dataplus(_M_local_data(), 12329: _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) 12329: { 12329: _M_construct(__str._M_data(), __str._M_data() + __str.length(), 12329: std::forward_iterator_tag()); 12329: } 12329: # 556 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string(const basic_string& __str, size_type __pos, 12329: const _Alloc& __a = _Alloc()) 12329: : _M_dataplus(_M_local_data(), __a) 12329: { 12329: const _CharT* __start = __str._M_data() 12329: + __str._M_check(__pos, "basic_string::basic_string"); 12329: _M_construct(__start, __start + __str._M_limit(__pos, npos), 12329: std::forward_iterator_tag()); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string(const basic_string& __str, size_type __pos, 12329: size_type __n) 12329: : _M_dataplus(_M_local_data()) 12329: { 12329: const _CharT* __start = __str._M_data() 12329: + __str._M_check(__pos, "basic_string::basic_string"); 12329: _M_construct(__start, __start + __str._M_limit(__pos, __n), 12329: std::forward_iterator_tag()); 12329: } 12329: # 591 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string(const basic_string& __str, size_type __pos, 12329: size_type __n, const _Alloc& __a) 12329: : _M_dataplus(_M_local_data(), __a) 12329: { 12329: const _CharT* __start 12329: = __str._M_data() + __str._M_check(__pos, "string::string"); 12329: _M_construct(__start, __start + __str._M_limit(__pos, __n), 12329: std::forward_iterator_tag()); 12329: } 12329: # 611 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string(const _CharT* __s, size_type __n, 12329: const _Alloc& __a = _Alloc()) 12329: : _M_dataplus(_M_local_data(), __a) 12329: { 12329: 12329: if (__s == 0 && __n > 0) 12329: std::__throw_logic_error(("basic_string: " "construction from null is not valid") 12329: ); 12329: _M_construct(__s, __s + __n, std::forward_iterator_tag()); 12329: } 12329: # 633 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) 12329: : _M_dataplus(_M_local_data(), __a) 12329: { 12329: 12329: if (__s == 0) 12329: std::__throw_logic_error(("basic_string: " "construction from null is not valid") 12329: ); 12329: const _CharT* __end = __s + traits_type::length(__s); 12329: _M_construct(__s, __end, forward_iterator_tag()); 12329: } 12329: # 656 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) 12329: : _M_dataplus(_M_local_data(), __a) 12329: { _M_construct(__n, __c); } 12329: # 669 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string(basic_string&& __str) noexcept 12329: : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) 12329: { 12329: if (__str._M_is_local()) 12329: { 12329: traits_type::copy(_M_local_buf, __str._M_local_buf, 12329: __str.length() + 1); 12329: } 12329: else 12329: { 12329: _M_data(__str._M_data()); 12329: _M_capacity(__str._M_allocated_capacity); 12329: } 12329: 12329: 12329: 12329: 12329: _M_length(__str.length()); 12329: __str._M_data(__str._M_local_data()); 12329: __str._M_set_length(0); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) 12329: : _M_dataplus(_M_local_data(), __a) 12329: { _M_construct(__l.begin(), __l.end(), std::forward_iterator_tag()); } 12329: 12329: 12329: basic_string(const basic_string& __str, const _Alloc& __a) 12329: : _M_dataplus(_M_local_data(), __a) 12329: { _M_construct(__str.begin(), __str.end(), std::forward_iterator_tag()); } 12329: 12329: 12329: basic_string(basic_string&& __str, const _Alloc& __a) 12329: noexcept(_Alloc_traits::_S_always_equal()) 12329: : _M_dataplus(_M_local_data(), __a) 12329: { 12329: if (__str._M_is_local()) 12329: { 12329: traits_type::copy(_M_local_buf, __str._M_local_buf, 12329: __str.length() + 1); 12329: _M_length(__str.length()); 12329: __str._M_set_length(0); 12329: } 12329: else if (_Alloc_traits::_S_always_equal() 12329: || __str.get_allocator() == __a) 12329: { 12329: _M_data(__str._M_data()); 12329: _M_length(__str.length()); 12329: _M_capacity(__str._M_allocated_capacity); 12329: __str._M_data(__str._M_local_buf); 12329: __str._M_set_length(0); 12329: } 12329: else 12329: _M_construct(__str.begin(), __str.end(), std::forward_iterator_tag()); 12329: } 12329: # 745 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template> 12329: 12329: 12329: 12329: 12329: basic_string(_InputIterator __beg, _InputIterator __end, 12329: const _Alloc& __a = _Alloc()) 12329: : _M_dataplus(_M_local_data(), __a) 12329: { 12329: 12329: _M_construct(__beg, __end, std::__iterator_category(__beg)); 12329: 12329: 12329: 12329: 12329: } 12329: # 793 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: ~basic_string() 12329: { _M_dispose(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string& 12329: operator=(const basic_string& __str) 12329: { 12329: return this->assign(__str); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string& 12329: operator=(const _CharT* __s) 12329: { return this->assign(__s); } 12329: # 824 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: operator=(_CharT __c) 12329: { 12329: this->assign(1, __c); 12329: return *this; 12329: } 12329: # 842 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: operator=(basic_string&& __str) 12329: noexcept(_Alloc_traits::_S_nothrow_move()) 12329: { 12329: if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() 12329: && !_Alloc_traits::_S_always_equal() 12329: && _M_get_allocator() != __str._M_get_allocator()) 12329: { 12329: 12329: _M_destroy(_M_allocated_capacity); 12329: _M_data(_M_local_data()); 12329: _M_set_length(0); 12329: } 12329: 12329: std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); 12329: 12329: if (__str._M_is_local()) 12329: { 12329: 12329: 12329: 12329: if (__builtin_expect(std::__addressof(__str) != this, true)) 12329: { 12329: if (__str.size()) 12329: this->_S_copy(_M_data(), __str._M_data(), __str.size()); 12329: _M_set_length(__str.size()); 12329: } 12329: } 12329: else if (_Alloc_traits::_S_propagate_on_move_assign() 12329: || _Alloc_traits::_S_always_equal() 12329: || _M_get_allocator() == __str._M_get_allocator()) 12329: { 12329: 12329: pointer __data = nullptr; 12329: size_type __capacity; 12329: if (!_M_is_local()) 12329: { 12329: if (_Alloc_traits::_S_always_equal()) 12329: { 12329: 12329: __data = _M_data(); 12329: __capacity = _M_allocated_capacity; 12329: } 12329: else 12329: _M_destroy(_M_allocated_capacity); 12329: } 12329: 12329: _M_data(__str._M_data()); 12329: _M_length(__str.length()); 12329: _M_capacity(__str._M_allocated_capacity); 12329: if (__data) 12329: { 12329: __str._M_data(__data); 12329: __str._M_capacity(__capacity); 12329: } 12329: else 12329: __str._M_data(__str._M_local_buf); 12329: } 12329: else 12329: assign(__str); 12329: __str.clear(); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string& 12329: operator=(initializer_list<_CharT> __l) 12329: { 12329: this->assign(__l.begin(), __l.size()); 12329: return *this; 12329: } 12329: # 945 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: iterator 12329: begin() noexcept 12329: { return iterator(_M_data()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: begin() const noexcept 12329: { return const_iterator(_M_data()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: end() noexcept 12329: { return iterator(_M_data() + this->size()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: end() const noexcept 12329: { return const_iterator(_M_data() + this->size()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: rbegin() noexcept 12329: { return reverse_iterator(this->end()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: rbegin() const noexcept 12329: { return const_reverse_iterator(this->end()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: rend() noexcept 12329: { return reverse_iterator(this->begin()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: rend() const noexcept 12329: { return const_reverse_iterator(this->begin()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: cbegin() const noexcept 12329: { return const_iterator(this->_M_data()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: cend() const noexcept 12329: { return const_iterator(this->_M_data() + this->size()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: crbegin() const noexcept 12329: { return const_reverse_iterator(this->end()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: crend() const noexcept 12329: { return const_reverse_iterator(this->begin()); } 12329: 12329: 12329: public: 12329: 12329: 12329: 12329: 12329: size_type 12329: size() const noexcept 12329: { return _M_string_length; } 12329: 12329: 12329: 12329: 12329: size_type 12329: length() const noexcept 12329: { return _M_string_length; } 12329: 12329: 12329: 12329: size_type 12329: max_size() const noexcept 12329: { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; } 12329: # 1089 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: void 12329: resize(size_type __n, _CharT __c); 12329: # 1103 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: void 12329: resize(size_type __n) 12329: { this->resize(__n, _CharT()); } 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: void 12329: shrink_to_fit() noexcept 12329: { reserve(); } 12329: #pragma GCC diagnostic pop 12329: # 1130 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: capacity() const noexcept 12329: { 12329: return _M_is_local() ? size_type(_S_local_capacity) 12329: : _M_allocated_capacity; 12329: } 12329: # 1155 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: void 12329: reserve(size_type __res_arg); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: reserve(); 12329: 12329: 12329: 12329: 12329: 12329: void 12329: clear() noexcept 12329: { _M_set_length(0); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: bool 12329: empty() const noexcept 12329: { return this->size() == 0; } 12329: # 1197 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: const_reference 12329: operator[] (size_type __pos) const noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__pos <= size())) __builtin_unreachable(); } while (false); 12329: return _M_data()[__pos]; 12329: } 12329: # 1215 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: reference 12329: operator[](size_type __pos) 12329: { 12329: 12329: 12329: do { if (std::__is_constant_evaluated() && !bool(__pos <= size())) __builtin_unreachable(); } while (false); 12329: 12329: ; 12329: return _M_data()[__pos]; 12329: } 12329: # 1237 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: const_reference 12329: at(size_type __n) const 12329: { 12329: if (__n >= this->size()) 12329: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 12329: 12329: , 12329: __n, this->size()); 12329: return _M_data()[__n]; 12329: } 12329: # 1259 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: reference 12329: at(size_type __n) 12329: { 12329: if (__n >= size()) 12329: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 12329: 12329: , 12329: __n, this->size()); 12329: return _M_data()[__n]; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: reference 12329: front() noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(!empty())) __builtin_unreachable(); } while (false); 12329: return operator[](0); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reference 12329: front() const noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(!empty())) __builtin_unreachable(); } while (false); 12329: return operator[](0); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reference 12329: back() noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(!empty())) __builtin_unreachable(); } while (false); 12329: return operator[](this->size() - 1); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reference 12329: back() const noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(!empty())) __builtin_unreachable(); } while (false); 12329: return operator[](this->size() - 1); 12329: } 12329: # 1327 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: operator+=(const basic_string& __str) 12329: { return this->append(__str); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string& 12329: operator+=(const _CharT* __s) 12329: { return this->append(__s); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string& 12329: operator+=(_CharT __c) 12329: { 12329: this->push_back(__c); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string& 12329: operator+=(initializer_list<_CharT> __l) 12329: { return this->append(__l.begin(), __l.size()); } 12329: # 1385 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: append(const basic_string& __str) 12329: { return this->append(__str._M_data(), __str.size()); } 12329: # 1403 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: append(const basic_string& __str, size_type __pos, size_type __n = npos) 12329: { return this->append(__str._M_data() 12329: + __str._M_check(__pos, "basic_string::append"), 12329: __str._M_limit(__pos, __n)); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string& 12329: append(const _CharT* __s, size_type __n) 12329: { 12329: ; 12329: _M_check_length(size_type(0), __n, "basic_string::append"); 12329: return _M_append(__s, __n); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string& 12329: append(const _CharT* __s) 12329: { 12329: ; 12329: const size_type __n = traits_type::length(__s); 12329: _M_check_length(size_type(0), __n, "basic_string::append"); 12329: return _M_append(__s, __n); 12329: } 12329: # 1448 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: append(size_type __n, _CharT __c) 12329: { return _M_replace_aux(this->size(), size_type(0), __n, __c); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string& 12329: append(initializer_list<_CharT> __l) 12329: { return this->append(__l.begin(), __l.size()); } 12329: # 1474 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template> 12329: 12329: 12329: 12329: 12329: basic_string& 12329: append(_InputIterator __first, _InputIterator __last) 12329: { return this->replace(end(), end(), __first, __last); } 12329: # 1522 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: void 12329: push_back(_CharT __c) 12329: { 12329: const size_type __size = this->size(); 12329: if (__size + 1 > this->capacity()) 12329: this->_M_mutate(__size, size_type(0), 0, size_type(1)); 12329: traits_type::assign(this->_M_data()[__size], __c); 12329: this->_M_set_length(__size + 1); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string& 12329: assign(const basic_string& __str) 12329: { 12329: 12329: if (_Alloc_traits::_S_propagate_on_copy_assign()) 12329: { 12329: if (!_Alloc_traits::_S_always_equal() && !_M_is_local() 12329: && _M_get_allocator() != __str._M_get_allocator()) 12329: { 12329: 12329: 12329: if (__str.size() <= _S_local_capacity) 12329: { 12329: _M_destroy(_M_allocated_capacity); 12329: _M_data(_M_use_local_data()); 12329: _M_set_length(0); 12329: } 12329: else 12329: { 12329: const auto __len = __str.size(); 12329: auto __alloc = __str._M_get_allocator(); 12329: 12329: auto __ptr = _Alloc_traits::allocate(__alloc, __len + 1); 12329: _M_destroy(_M_allocated_capacity); 12329: _M_data(__ptr); 12329: _M_capacity(__len); 12329: _M_set_length(__len); 12329: } 12329: } 12329: std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); 12329: } 12329: 12329: this->_M_assign(__str); 12329: return *this; 12329: } 12329: # 1584 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: assign(basic_string&& __str) 12329: noexcept(_Alloc_traits::_S_nothrow_move()) 12329: { 12329: 12329: 12329: return *this = std::move(__str); 12329: } 12329: # 1608 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: assign(const basic_string& __str, size_type __pos, size_type __n = npos) 12329: { return _M_replace(size_type(0), this->size(), __str._M_data() 12329: + __str._M_check(__pos, "basic_string::assign"), 12329: __str._M_limit(__pos, __n)); } 12329: # 1625 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: assign(const _CharT* __s, size_type __n) 12329: { 12329: ; 12329: return _M_replace(size_type(0), this->size(), __s, __n); 12329: } 12329: # 1642 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: assign(const _CharT* __s) 12329: { 12329: ; 12329: return _M_replace(size_type(0), this->size(), __s, 12329: traits_type::length(__s)); 12329: } 12329: # 1660 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: assign(size_type __n, _CharT __c) 12329: { return _M_replace_aux(size_type(0), this->size(), __n, __c); } 12329: # 1674 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template> 12329: 12329: 12329: 12329: 12329: basic_string& 12329: assign(_InputIterator __first, _InputIterator __last) 12329: { return this->replace(begin(), end(), __first, __last); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_string& 12329: assign(initializer_list<_CharT> __l) 12329: { return this->assign(__l.begin(), __l.size()); } 12329: # 1747 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: iterator 12329: insert(const_iterator __p, size_type __n, _CharT __c) 12329: { 12329: ; 12329: const size_type __pos = __p - begin(); 12329: this->replace(__p, __p, __n, __c); 12329: return iterator(this->_M_data() + __pos); 12329: } 12329: # 1790 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template> 12329: 12329: iterator 12329: insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) 12329: { 12329: ; 12329: const size_type __pos = __p - begin(); 12329: this->replace(__p, __p, __beg, __end); 12329: return iterator(this->_M_data() + __pos); 12329: } 12329: # 1827 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: iterator 12329: insert(const_iterator __p, initializer_list<_CharT> __l) 12329: { return this->insert(__p, __l.begin(), __l.end()); } 12329: # 1855 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: insert(size_type __pos1, const basic_string& __str) 12329: { return this->replace(__pos1, size_type(0), 12329: __str._M_data(), __str.size()); } 12329: # 1879 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: insert(size_type __pos1, const basic_string& __str, 12329: size_type __pos2, size_type __n = npos) 12329: { return this->replace(__pos1, size_type(0), __str._M_data() 12329: + __str._M_check(__pos2, "basic_string::insert"), 12329: __str._M_limit(__pos2, __n)); } 12329: # 1903 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: insert(size_type __pos, const _CharT* __s, size_type __n) 12329: { return this->replace(__pos, size_type(0), __s, __n); } 12329: # 1923 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: insert(size_type __pos, const _CharT* __s) 12329: { 12329: ; 12329: return this->replace(__pos, size_type(0), __s, 12329: traits_type::length(__s)); 12329: } 12329: # 1948 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: insert(size_type __pos, size_type __n, _CharT __c) 12329: { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), 12329: size_type(0), __n, __c); } 12329: # 1967 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: iterator 12329: insert(__const_iterator __p, _CharT __c) 12329: { 12329: ; 12329: const size_type __pos = __p - begin(); 12329: _M_replace_aux(__pos, size_type(0), size_type(1), __c); 12329: return iterator(_M_data() + __pos); 12329: } 12329: # 2030 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: erase(size_type __pos = 0, size_type __n = npos) 12329: { 12329: _M_check(__pos, "basic_string::erase"); 12329: if (__n == npos) 12329: this->_M_set_length(__pos); 12329: else if (__n != 0) 12329: this->_M_erase(__pos, _M_limit(__pos, __n)); 12329: return *this; 12329: } 12329: # 2050 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: iterator 12329: erase(__const_iterator __position) 12329: { 12329: 12329: ; 12329: const size_type __pos = __position - begin(); 12329: this->_M_erase(__pos, size_type(1)); 12329: return iterator(_M_data() + __pos); 12329: } 12329: # 2070 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: iterator 12329: erase(__const_iterator __first, __const_iterator __last) 12329: { 12329: 12329: ; 12329: const size_type __pos = __first - begin(); 12329: if (__last == end()) 12329: this->_M_set_length(__pos); 12329: else 12329: this->_M_erase(__pos, __last - __first); 12329: return iterator(this->_M_data() + __pos); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: pop_back() noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(!empty())) __builtin_unreachable(); } while (false); 12329: _M_erase(size() - 1, 1); 12329: } 12329: # 2116 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: replace(size_type __pos, size_type __n, const basic_string& __str) 12329: { return this->replace(__pos, __n, __str._M_data(), __str.size()); } 12329: # 2139 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: replace(size_type __pos1, size_type __n1, const basic_string& __str, 12329: size_type __pos2, size_type __n2 = npos) 12329: { return this->replace(__pos1, __n1, __str._M_data() 12329: + __str._M_check(__pos2, "basic_string::replace"), 12329: __str._M_limit(__pos2, __n2)); } 12329: # 2165 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: replace(size_type __pos, size_type __n1, const _CharT* __s, 12329: size_type __n2) 12329: { 12329: ; 12329: return _M_replace(_M_check(__pos, "basic_string::replace"), 12329: _M_limit(__pos, __n1), __s, __n2); 12329: } 12329: # 2191 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: replace(size_type __pos, size_type __n1, const _CharT* __s) 12329: { 12329: ; 12329: return this->replace(__pos, __n1, __s, traits_type::length(__s)); 12329: } 12329: # 2216 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) 12329: { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), 12329: _M_limit(__pos, __n1), __n2, __c); } 12329: # 2235 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: replace(__const_iterator __i1, __const_iterator __i2, 12329: const basic_string& __str) 12329: { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } 12329: # 2256 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: replace(__const_iterator __i1, __const_iterator __i2, 12329: const _CharT* __s, size_type __n) 12329: { 12329: 12329: ; 12329: return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); 12329: } 12329: # 2279 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) 12329: { 12329: ; 12329: return this->replace(__i1, __i2, __s, traits_type::length(__s)); 12329: } 12329: # 2301 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: replace(__const_iterator __i1, __const_iterator __i2, size_type __n, 12329: _CharT __c) 12329: { 12329: 12329: ; 12329: return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); 12329: } 12329: # 2327 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template> 12329: 12329: basic_string& 12329: replace(const_iterator __i1, const_iterator __i2, 12329: _InputIterator __k1, _InputIterator __k2) 12329: { 12329: 12329: ; 12329: ; 12329: return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, 12329: std::__false_type()); 12329: } 12329: # 2360 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& 12329: replace(__const_iterator __i1, __const_iterator __i2, 12329: _CharT* __k1, _CharT* __k2) 12329: { 12329: 12329: ; 12329: ; 12329: return this->replace(__i1 - begin(), __i2 - __i1, 12329: __k1, __k2 - __k1); 12329: } 12329: 12329: 12329: basic_string& 12329: replace(__const_iterator __i1, __const_iterator __i2, 12329: const _CharT* __k1, const _CharT* __k2) 12329: { 12329: 12329: ; 12329: ; 12329: return this->replace(__i1 - begin(), __i2 - __i1, 12329: __k1, __k2 - __k1); 12329: } 12329: 12329: 12329: basic_string& 12329: replace(__const_iterator __i1, __const_iterator __i2, 12329: iterator __k1, iterator __k2) 12329: { 12329: 12329: ; 12329: ; 12329: return this->replace(__i1 - begin(), __i2 - __i1, 12329: __k1.base(), __k2 - __k1); 12329: } 12329: 12329: 12329: basic_string& 12329: replace(__const_iterator __i1, __const_iterator __i2, 12329: const_iterator __k1, const_iterator __k2) 12329: { 12329: 12329: ; 12329: ; 12329: return this->replace(__i1 - begin(), __i2 - __i1, 12329: __k1.base(), __k2 - __k1); 12329: } 12329: # 2423 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string& replace(const_iterator __i1, const_iterator __i2, 12329: initializer_list<_CharT> __l) 12329: { return this->replace(__i1, __i2, __l.begin(), __l.size()); } 12329: # 2487 "/usr/include/c++/12/bits/basic_string.h" 3 12329: private: 12329: template 12329: 12329: basic_string& 12329: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 12329: _Integer __n, _Integer __val, __true_type) 12329: { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } 12329: 12329: template 12329: 12329: basic_string& 12329: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 12329: _InputIterator __k1, _InputIterator __k2, 12329: __false_type); 12329: 12329: 12329: basic_string& 12329: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 12329: _CharT __c); 12329: 12329: 12329: basic_string& 12329: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 12329: const size_type __len2); 12329: 12329: 12329: basic_string& 12329: _M_append(const _CharT* __s, size_type __n); 12329: 12329: public: 12329: # 2530 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: copy(_CharT* __s, size_type __n, size_type __pos = 0) const; 12329: # 2541 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: void 12329: swap(basic_string& __s) noexcept; 12329: # 2552 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: const _CharT* 12329: c_str() const noexcept 12329: { return _M_data(); } 12329: # 2565 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: const _CharT* 12329: data() const noexcept 12329: { return _M_data(); } 12329: # 2586 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: allocator_type 12329: get_allocator() const noexcept 12329: { return _M_get_allocator(); } 12329: # 2603 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find(const _CharT* __s, size_type __pos, size_type __n) const 12329: noexcept; 12329: # 2618 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find(const basic_string& __str, size_type __pos = 0) const 12329: noexcept 12329: { return this->find(__str.data(), __pos, __str.size()); } 12329: # 2652 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find(const _CharT* __s, size_type __pos = 0) const noexcept 12329: { 12329: ; 12329: return this->find(__s, __pos, traits_type::length(__s)); 12329: } 12329: # 2670 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find(_CharT __c, size_type __pos = 0) const noexcept; 12329: # 2684 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: rfind(const basic_string& __str, size_type __pos = npos) const 12329: noexcept 12329: { return this->rfind(__str.data(), __pos, __str.size()); } 12329: # 2720 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: rfind(const _CharT* __s, size_type __pos, size_type __n) const 12329: noexcept; 12329: # 2735 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: rfind(const _CharT* __s, size_type __pos = npos) const 12329: { 12329: ; 12329: return this->rfind(__s, __pos, traits_type::length(__s)); 12329: } 12329: # 2753 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: rfind(_CharT __c, size_type __pos = npos) const noexcept; 12329: # 2768 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_first_of(const basic_string& __str, size_type __pos = 0) const 12329: noexcept 12329: { return this->find_first_of(__str.data(), __pos, __str.size()); } 12329: # 2805 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 12329: noexcept; 12329: # 2820 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_first_of(const _CharT* __s, size_type __pos = 0) const 12329: noexcept 12329: { 12329: ; 12329: return this->find_first_of(__s, __pos, traits_type::length(__s)); 12329: } 12329: # 2841 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 12329: { return this->find(__c, __pos); } 12329: # 2857 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_last_of(const basic_string& __str, size_type __pos = npos) const 12329: noexcept 12329: { return this->find_last_of(__str.data(), __pos, __str.size()); } 12329: # 2894 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 12329: noexcept; 12329: # 2909 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_last_of(const _CharT* __s, size_type __pos = npos) const 12329: noexcept 12329: { 12329: ; 12329: return this->find_last_of(__s, __pos, traits_type::length(__s)); 12329: } 12329: # 2930 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_last_of(_CharT __c, size_type __pos = npos) const noexcept 12329: { return this->rfind(__c, __pos); } 12329: # 2945 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_first_not_of(const basic_string& __str, size_type __pos = 0) const 12329: noexcept 12329: { return this->find_first_not_of(__str.data(), __pos, __str.size()); } 12329: # 2982 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_first_not_of(const _CharT* __s, size_type __pos, 12329: size_type __n) const noexcept; 12329: # 2997 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_first_not_of(const _CharT* __s, size_type __pos = 0) const 12329: noexcept 12329: { 12329: ; 12329: return this->find_first_not_of(__s, __pos, traits_type::length(__s)); 12329: } 12329: # 3016 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_first_not_of(_CharT __c, size_type __pos = 0) const 12329: noexcept; 12329: # 3032 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_last_not_of(const basic_string& __str, size_type __pos = npos) const 12329: noexcept 12329: { return this->find_last_not_of(__str.data(), __pos, __str.size()); } 12329: # 3069 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_last_not_of(const _CharT* __s, size_type __pos, 12329: size_type __n) const noexcept; 12329: # 3084 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_last_not_of(const _CharT* __s, size_type __pos = npos) const 12329: noexcept 12329: { 12329: ; 12329: return this->find_last_not_of(__s, __pos, traits_type::length(__s)); 12329: } 12329: # 3103 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: size_type 12329: find_last_not_of(_CharT __c, size_type __pos = npos) const 12329: noexcept; 12329: # 3120 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: basic_string 12329: substr(size_type __pos = 0, size_type __n = npos) const 12329: { return basic_string(*this, 12329: _M_check(__pos, "basic_string::substr"), __n); } 12329: # 3140 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: int 12329: compare(const basic_string& __str) const 12329: { 12329: const size_type __size = this->size(); 12329: const size_type __osize = __str.size(); 12329: const size_type __len = std::min(__size, __osize); 12329: 12329: int __r = traits_type::compare(_M_data(), __str.data(), __len); 12329: if (!__r) 12329: __r = _S_compare(__size, __osize); 12329: return __r; 12329: } 12329: # 3237 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: int 12329: compare(size_type __pos, size_type __n, const basic_string& __str) const; 12329: # 3264 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: int 12329: compare(size_type __pos1, size_type __n1, const basic_string& __str, 12329: size_type __pos2, size_type __n2 = npos) const; 12329: # 3283 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: int 12329: compare(const _CharT* __s) const noexcept; 12329: # 3308 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: int 12329: compare(size_type __pos, size_type __n1, const _CharT* __s) const; 12329: # 3336 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: int 12329: compare(size_type __pos, size_type __n1, const _CharT* __s, 12329: size_type __n2) const; 12329: # 3382 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template friend class basic_stringbuf; 12329: }; 12329: } 12329: 12329: } 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 3429 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: 12329: basic_string<_CharT, _Traits, _Alloc> 12329: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: { 12329: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 12329: __str.append(__rhs); 12329: return __str; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: basic_string<_CharT,_Traits,_Alloc> 12329: operator+(const _CharT* __lhs, 12329: const basic_string<_CharT,_Traits,_Alloc>& __rhs); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: basic_string<_CharT,_Traits,_Alloc> 12329: operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: inline basic_string<_CharT, _Traits, _Alloc> 12329: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const _CharT* __rhs) 12329: { 12329: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 12329: __str.append(__rhs); 12329: return __str; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: inline basic_string<_CharT, _Traits, _Alloc> 12329: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) 12329: { 12329: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 12329: typedef typename __string_type::size_type __size_type; 12329: __string_type __str(__lhs); 12329: __str.append(__size_type(1), __rhs); 12329: return __str; 12329: } 12329: 12329: 12329: template 12329: 12329: inline basic_string<_CharT, _Traits, _Alloc> 12329: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: { return std::move(__lhs.append(__rhs)); } 12329: 12329: template 12329: 12329: inline basic_string<_CharT, _Traits, _Alloc> 12329: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 12329: { return std::move(__rhs.insert(0, __lhs)); } 12329: 12329: template 12329: 12329: inline basic_string<_CharT, _Traits, _Alloc> 12329: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 12329: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 12329: { 12329: 12329: using _Alloc_traits = allocator_traits<_Alloc>; 12329: bool __use_rhs = false; 12329: if (typename _Alloc_traits::is_always_equal{}) 12329: __use_rhs = true; 12329: else if (__lhs.get_allocator() == __rhs.get_allocator()) 12329: __use_rhs = true; 12329: if (__use_rhs) 12329: 12329: { 12329: const auto __size = __lhs.size() + __rhs.size(); 12329: if (__size > __lhs.capacity() && __size <= __rhs.capacity()) 12329: return std::move(__rhs.insert(0, __lhs)); 12329: } 12329: return std::move(__lhs.append(__rhs)); 12329: } 12329: 12329: template 12329: 12329: inline basic_string<_CharT, _Traits, _Alloc> 12329: operator+(const _CharT* __lhs, 12329: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 12329: { return std::move(__rhs.insert(0, __lhs)); } 12329: 12329: template 12329: 12329: inline basic_string<_CharT, _Traits, _Alloc> 12329: operator+(_CharT __lhs, 12329: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 12329: { return std::move(__rhs.insert(0, 1, __lhs)); } 12329: 12329: template 12329: 12329: inline basic_string<_CharT, _Traits, _Alloc> 12329: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 12329: const _CharT* __rhs) 12329: { return std::move(__lhs.append(__rhs)); } 12329: 12329: template 12329: 12329: inline basic_string<_CharT, _Traits, _Alloc> 12329: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 12329: _CharT __rhs) 12329: { return std::move(__lhs.append(1, __rhs)); } 12329: # 3572 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: 12329: inline bool 12329: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: noexcept 12329: { return __lhs.compare(__rhs) == 0; } 12329: 12329: template 12329: 12329: inline 12329: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type 12329: operator==(const basic_string<_CharT>& __lhs, 12329: const basic_string<_CharT>& __rhs) noexcept 12329: { return (__lhs.size() == __rhs.size() 12329: && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), 12329: __lhs.size())); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const _CharT* __rhs) 12329: { return __lhs.compare(__rhs) == 0; } 12329: # 3638 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: inline bool 12329: operator==(const _CharT* __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: { return __rhs.compare(__lhs) == 0; } 12329: # 3651 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: inline bool 12329: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: noexcept 12329: { return !(__lhs == __rhs); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(const _CharT* __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: { return !(__lhs == __rhs); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const _CharT* __rhs) 12329: { return !(__lhs == __rhs); } 12329: # 3689 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: inline bool 12329: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: noexcept 12329: { return __lhs.compare(__rhs) < 0; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const _CharT* __rhs) 12329: { return __lhs.compare(__rhs) < 0; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator<(const _CharT* __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: { return __rhs.compare(__lhs) > 0; } 12329: # 3727 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: inline bool 12329: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: noexcept 12329: { return __lhs.compare(__rhs) > 0; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const _CharT* __rhs) 12329: { return __lhs.compare(__rhs) > 0; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator>(const _CharT* __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: { return __rhs.compare(__lhs) < 0; } 12329: # 3765 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: inline bool 12329: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: noexcept 12329: { return __lhs.compare(__rhs) <= 0; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const _CharT* __rhs) 12329: { return __lhs.compare(__rhs) <= 0; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator<=(const _CharT* __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: { return __rhs.compare(__lhs) >= 0; } 12329: # 3803 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: inline bool 12329: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: noexcept 12329: { return __lhs.compare(__rhs) >= 0; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: const _CharT* __rhs) 12329: { return __lhs.compare(__rhs) >= 0; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator>=(const _CharT* __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: { return __rhs.compare(__lhs) <= 0; } 12329: # 3842 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: 12329: inline void 12329: swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, 12329: basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: noexcept(noexcept(__lhs.swap(__rhs))) 12329: { __lhs.swap(__rhs); } 12329: # 3863 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: operator>>(basic_istream<_CharT, _Traits>& __is, 12329: basic_string<_CharT, _Traits, _Alloc>& __str); 12329: 12329: template<> 12329: basic_istream& 12329: operator>>(basic_istream& __is, basic_string& __str); 12329: # 3881 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: inline basic_ostream<_CharT, _Traits>& 12329: operator<<(basic_ostream<_CharT, _Traits>& __os, 12329: const basic_string<_CharT, _Traits, _Alloc>& __str) 12329: { 12329: 12329: 12329: return __ostream_insert(__os, __str.data(), __str.size()); 12329: } 12329: # 3904 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: getline(basic_istream<_CharT, _Traits>& __is, 12329: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); 12329: # 3921 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template 12329: inline basic_istream<_CharT, _Traits>& 12329: getline(basic_istream<_CharT, _Traits>& __is, 12329: basic_string<_CharT, _Traits, _Alloc>& __str) 12329: { return std::getline(__is, __str, __is.widen('\n')); } 12329: 12329: 12329: 12329: template 12329: inline basic_istream<_CharT, _Traits>& 12329: getline(basic_istream<_CharT, _Traits>&& __is, 12329: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 12329: { return std::getline(__is, __str, __delim); } 12329: 12329: 12329: template 12329: inline basic_istream<_CharT, _Traits>& 12329: getline(basic_istream<_CharT, _Traits>&& __is, 12329: basic_string<_CharT, _Traits, _Alloc>& __str) 12329: { return std::getline(__is, __str); } 12329: 12329: 12329: template<> 12329: basic_istream& 12329: getline(basic_istream& __in, basic_string& __str, 12329: char __delim); 12329: 12329: 12329: template<> 12329: basic_istream& 12329: getline(basic_istream& __in, basic_string& __str, 12329: wchar_t __delim); 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/ext/string_conversions.h" 1 3 12329: # 32 "/usr/include/c++/12/ext/string_conversions.h" 3 12329: 12329: # 33 "/usr/include/c++/12/ext/string_conversions.h" 3 12329: # 41 "/usr/include/c++/12/ext/string_conversions.h" 3 12329: # 1 "/usr/include/c++/12/cstdlib" 1 3 12329: # 39 "/usr/include/c++/12/cstdlib" 3 12329: 12329: # 40 "/usr/include/c++/12/cstdlib" 3 12329: # 75 "/usr/include/c++/12/cstdlib" 3 12329: # 1 "/usr/include/stdlib.h" 1 3 4 12329: # 26 "/usr/include/stdlib.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/libc-header-start.h" 1 3 4 12329: # 27 "/usr/include/stdlib.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 33 "/usr/include/stdlib.h" 2 3 4 12329: 12329: extern "C" { 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/waitflags.h" 1 3 4 12329: # 41 "/usr/include/stdlib.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/waitstatus.h" 1 3 4 12329: # 42 "/usr/include/stdlib.h" 2 3 4 12329: # 59 "/usr/include/stdlib.h" 3 4 12329: typedef struct 12329: { 12329: int quot; 12329: int rem; 12329: } div_t; 12329: 12329: 12329: 12329: typedef struct 12329: { 12329: long int quot; 12329: long int rem; 12329: } ldiv_t; 12329: 12329: 12329: 12329: 12329: 12329: __extension__ typedef struct 12329: { 12329: long long int quot; 12329: long long int rem; 12329: } lldiv_t; 12329: # 98 "/usr/include/stdlib.h" 3 4 12329: extern size_t __ctype_get_mb_cur_max (void) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: extern double atof (const char *__nptr) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: extern int atoi (const char *__nptr) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: extern long int atol (const char *__nptr) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: __extension__ extern long long int atoll (const char *__nptr) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: extern double strtod (const char *__restrict __nptr, 12329: char **__restrict __endptr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern float strtof (const char *__restrict __nptr, 12329: char **__restrict __endptr) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: extern long double strtold (const char *__restrict __nptr, 12329: char **__restrict __endptr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: # 141 "/usr/include/stdlib.h" 3 4 12329: extern _Float32 strtof32 (const char *__restrict __nptr, 12329: char **__restrict __endptr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern _Float64 strtof64 (const char *__restrict __nptr, 12329: char **__restrict __endptr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern _Float128 strtof128 (const char *__restrict __nptr, 12329: char **__restrict __endptr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern _Float32x strtof32x (const char *__restrict __nptr, 12329: char **__restrict __endptr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern _Float64x strtof64x (const char *__restrict __nptr, 12329: char **__restrict __endptr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: # 177 "/usr/include/stdlib.h" 3 4 12329: extern long int strtol (const char *__restrict __nptr, 12329: char **__restrict __endptr, int __base) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: extern unsigned long int strtoul (const char *__restrict __nptr, 12329: char **__restrict __endptr, int __base) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: __extension__ 12329: extern long long int strtoq (const char *__restrict __nptr, 12329: char **__restrict __endptr, int __base) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: __extension__ 12329: extern unsigned long long int strtouq (const char *__restrict __nptr, 12329: char **__restrict __endptr, int __base) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: __extension__ 12329: extern long long int strtoll (const char *__restrict __nptr, 12329: char **__restrict __endptr, int __base) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: __extension__ 12329: extern unsigned long long int strtoull (const char *__restrict __nptr, 12329: char **__restrict __endptr, int __base) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: extern int strfromd (char *__dest, size_t __size, const char *__format, 12329: double __f) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))); 12329: 12329: extern int strfromf (char *__dest, size_t __size, const char *__format, 12329: float __f) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))); 12329: 12329: extern int strfroml (char *__dest, size_t __size, const char *__format, 12329: long double __f) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))); 12329: # 233 "/usr/include/stdlib.h" 3 4 12329: extern int strfromf32 (char *__dest, size_t __size, const char * __format, 12329: _Float32 __f) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))); 12329: 12329: 12329: 12329: extern int strfromf64 (char *__dest, size_t __size, const char * __format, 12329: _Float64 __f) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))); 12329: 12329: 12329: 12329: extern int strfromf128 (char *__dest, size_t __size, const char * __format, 12329: _Float128 __f) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))); 12329: 12329: 12329: 12329: extern int strfromf32x (char *__dest, size_t __size, const char * __format, 12329: _Float32x __f) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))); 12329: 12329: 12329: 12329: extern int strfromf64x (char *__dest, size_t __size, const char * __format, 12329: _Float64x __f) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))); 12329: # 275 "/usr/include/stdlib.h" 3 4 12329: extern long int strtol_l (const char *__restrict __nptr, 12329: char **__restrict __endptr, int __base, 12329: locale_t __loc) noexcept (true) __attribute__ ((__nonnull__ (1, 4))); 12329: 12329: extern unsigned long int strtoul_l (const char *__restrict __nptr, 12329: char **__restrict __endptr, 12329: int __base, locale_t __loc) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 4))); 12329: 12329: __extension__ 12329: extern long long int strtoll_l (const char *__restrict __nptr, 12329: char **__restrict __endptr, int __base, 12329: locale_t __loc) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 4))); 12329: 12329: __extension__ 12329: extern unsigned long long int strtoull_l (const char *__restrict __nptr, 12329: char **__restrict __endptr, 12329: int __base, locale_t __loc) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 4))); 12329: 12329: extern double strtod_l (const char *__restrict __nptr, 12329: char **__restrict __endptr, locale_t __loc) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: 12329: extern float strtof_l (const char *__restrict __nptr, 12329: char **__restrict __endptr, locale_t __loc) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: 12329: extern long double strtold_l (const char *__restrict __nptr, 12329: char **__restrict __endptr, 12329: locale_t __loc) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: # 317 "/usr/include/stdlib.h" 3 4 12329: extern _Float32 strtof32_l (const char *__restrict __nptr, 12329: char **__restrict __endptr, 12329: locale_t __loc) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: 12329: 12329: 12329: extern _Float64 strtof64_l (const char *__restrict __nptr, 12329: char **__restrict __endptr, 12329: locale_t __loc) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: 12329: 12329: 12329: extern _Float128 strtof128_l (const char *__restrict __nptr, 12329: char **__restrict __endptr, 12329: locale_t __loc) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: 12329: 12329: 12329: extern _Float32x strtof32x_l (const char *__restrict __nptr, 12329: char **__restrict __endptr, 12329: locale_t __loc) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: 12329: 12329: 12329: extern _Float64x strtof64x_l (const char *__restrict __nptr, 12329: char **__restrict __endptr, 12329: locale_t __loc) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: # 361 "/usr/include/stdlib.h" 3 4 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: __attribute__ ((__leaf__)) atoi (const char *__nptr) noexcept (true) 12329: { 12329: return (int) strtol (__nptr, (char **) __null, 10); 12329: } 12329: extern __inline __attribute__ ((__gnu_inline__)) long int 12329: __attribute__ ((__leaf__)) atol (const char *__nptr) noexcept (true) 12329: { 12329: return strtol (__nptr, (char **) __null, 10); 12329: } 12329: 12329: 12329: __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int 12329: __attribute__ ((__leaf__)) atoll (const char *__nptr) noexcept (true) 12329: { 12329: return strtoll (__nptr, (char **) __null, 10); 12329: } 12329: # 386 "/usr/include/stdlib.h" 3 4 12329: extern char *l64a (long int __n) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: extern long int a64l (const char *__s) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/sys/types.h" 1 3 4 12329: # 27 "/usr/include/aarch64-linux-gnu/sys/types.h" 3 4 12329: extern "C" { 12329: 12329: 12329: 12329: 12329: 12329: typedef __u_char u_char; 12329: typedef __u_short u_short; 12329: typedef __u_int u_int; 12329: typedef __u_long u_long; 12329: typedef __quad_t quad_t; 12329: typedef __u_quad_t u_quad_t; 12329: typedef __fsid_t fsid_t; 12329: 12329: 12329: typedef __loff_t loff_t; 12329: 12329: 12329: 12329: 12329: typedef __ino_t ino_t; 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef __ino64_t ino64_t; 12329: 12329: 12329: 12329: 12329: typedef __dev_t dev_t; 12329: 12329: 12329: 12329: 12329: typedef __gid_t gid_t; 12329: 12329: 12329: 12329: 12329: typedef __mode_t mode_t; 12329: 12329: 12329: 12329: 12329: typedef __nlink_t nlink_t; 12329: 12329: 12329: 12329: 12329: typedef __uid_t uid_t; 12329: 12329: 12329: 12329: 12329: 12329: typedef __off_t off_t; 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef __off64_t off64_t; 12329: 12329: 12329: 12329: 12329: typedef __pid_t pid_t; 12329: 12329: 12329: 12329: 12329: 12329: typedef __id_t id_t; 12329: 12329: 12329: 12329: 12329: typedef __ssize_t ssize_t; 12329: 12329: 12329: 12329: 12329: 12329: typedef __daddr_t daddr_t; 12329: typedef __caddr_t caddr_t; 12329: 12329: 12329: 12329: 12329: 12329: typedef __key_t key_t; 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/clock_t.h" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef __clock_t clock_t; 12329: # 127 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/clockid_t.h" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef __clockid_t clockid_t; 12329: # 129 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/time_t.h" 1 3 4 12329: # 10 "/usr/include/aarch64-linux-gnu/bits/types/time_t.h" 3 4 12329: typedef __time_t time_t; 12329: # 130 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/timer_t.h" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef __timer_t timer_t; 12329: # 131 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4 12329: 12329: 12329: 12329: typedef __useconds_t useconds_t; 12329: 12329: 12329: 12329: typedef __suseconds_t suseconds_t; 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 145 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4 12329: 12329: 12329: 12329: typedef unsigned long int ulong; 12329: typedef unsigned short int ushort; 12329: typedef unsigned int uint; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef __uint8_t u_int8_t; 12329: typedef __uint16_t u_int16_t; 12329: typedef __uint32_t u_int32_t; 12329: typedef __uint64_t u_int64_t; 12329: 12329: 12329: typedef int register_t __attribute__ ((__mode__ (__word__))); 12329: # 176 "/usr/include/aarch64-linux-gnu/sys/types.h" 3 4 12329: # 1 "/usr/include/endian.h" 1 3 4 12329: # 35 "/usr/include/endian.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/byteswap.h" 1 3 4 12329: # 33 "/usr/include/aarch64-linux-gnu/bits/byteswap.h" 3 4 12329: static __inline __uint16_t 12329: __bswap_16 (__uint16_t __bsx) 12329: { 12329: 12329: return __builtin_bswap16 (__bsx); 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: static __inline __uint32_t 12329: __bswap_32 (__uint32_t __bsx) 12329: { 12329: 12329: return __builtin_bswap32 (__bsx); 12329: 12329: 12329: 12329: } 12329: # 69 "/usr/include/aarch64-linux-gnu/bits/byteswap.h" 3 4 12329: __extension__ static __inline __uint64_t 12329: __bswap_64 (__uint64_t __bsx) 12329: { 12329: 12329: return __builtin_bswap64 (__bsx); 12329: 12329: 12329: 12329: } 12329: # 36 "/usr/include/endian.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/uintn-identity.h" 1 3 4 12329: # 32 "/usr/include/aarch64-linux-gnu/bits/uintn-identity.h" 3 4 12329: static __inline __uint16_t 12329: __uint16_identity (__uint16_t __x) 12329: { 12329: return __x; 12329: } 12329: 12329: static __inline __uint32_t 12329: __uint32_identity (__uint32_t __x) 12329: { 12329: return __x; 12329: } 12329: 12329: static __inline __uint64_t 12329: __uint64_identity (__uint64_t __x) 12329: { 12329: return __x; 12329: } 12329: # 37 "/usr/include/endian.h" 2 3 4 12329: # 177 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/sys/select.h" 1 3 4 12329: # 30 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/select.h" 1 3 4 12329: # 31 "/usr/include/aarch64-linux-gnu/sys/select.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h" 1 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h" 1 3 4 12329: 12329: 12329: 12329: 12329: typedef struct 12329: { 12329: unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; 12329: } __sigset_t; 12329: # 5 "/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h" 2 3 4 12329: 12329: 12329: typedef __sigset_t sigset_t; 12329: # 34 "/usr/include/aarch64-linux-gnu/sys/select.h" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: struct timeval 12329: { 12329: 12329: 12329: 12329: 12329: __time_t tv_sec; 12329: __suseconds_t tv_usec; 12329: 12329: }; 12329: # 38 "/usr/include/aarch64-linux-gnu/sys/select.h" 2 3 4 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h" 1 3 4 12329: # 11 "/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h" 3 4 12329: struct timespec 12329: { 12329: 12329: 12329: 12329: __time_t tv_sec; 12329: 12329: 12329: 12329: 12329: __syscall_slong_t tv_nsec; 12329: # 31 "/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h" 3 4 12329: }; 12329: # 40 "/usr/include/aarch64-linux-gnu/sys/select.h" 2 3 4 12329: # 49 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4 12329: typedef long int __fd_mask; 12329: # 59 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4 12329: typedef struct 12329: { 12329: 12329: 12329: 12329: __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; 12329: 12329: 12329: 12329: 12329: 12329: } fd_set; 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef __fd_mask fd_mask; 12329: # 91 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4 12329: extern "C" { 12329: # 102 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4 12329: extern int select (int __nfds, fd_set *__restrict __readfds, 12329: fd_set *__restrict __writefds, 12329: fd_set *__restrict __exceptfds, 12329: struct timeval *__restrict __timeout); 12329: # 127 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4 12329: extern int pselect (int __nfds, fd_set *__restrict __readfds, 12329: fd_set *__restrict __writefds, 12329: fd_set *__restrict __exceptfds, 12329: const struct timespec *__restrict __timeout, 12329: const __sigset_t *__restrict __sigmask); 12329: # 150 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/select2.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/select2.h" 3 4 12329: extern long int __fdelt_chk (long int __d); 12329: extern long int __fdelt_warn (long int __d) 12329: __attribute__((__warning__ ("bit outside of fd_set selected"))); 12329: # 151 "/usr/include/aarch64-linux-gnu/sys/select.h" 2 3 4 12329: 12329: 12329: } 12329: # 180 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: typedef __blksize_t blksize_t; 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef __blkcnt_t blkcnt_t; 12329: 12329: 12329: 12329: typedef __fsblkcnt_t fsblkcnt_t; 12329: 12329: 12329: 12329: typedef __fsfilcnt_t fsfilcnt_t; 12329: # 219 "/usr/include/aarch64-linux-gnu/sys/types.h" 3 4 12329: typedef __blkcnt64_t blkcnt64_t; 12329: typedef __fsblkcnt64_t fsblkcnt64_t; 12329: typedef __fsfilcnt64_t fsfilcnt64_t; 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h" 1 3 4 12329: # 23 "/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 1 3 4 12329: # 44 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h" 1 3 4 12329: # 45 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 2 3 4 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/atomic_wide_counter.h" 1 3 4 12329: # 25 "/usr/include/aarch64-linux-gnu/bits/atomic_wide_counter.h" 3 4 12329: typedef union 12329: { 12329: __extension__ unsigned long long int __value64; 12329: struct 12329: { 12329: unsigned int __low; 12329: unsigned int __high; 12329: } __value32; 12329: } __atomic_wide_counter; 12329: # 47 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 2 3 4 12329: 12329: 12329: 12329: 12329: typedef struct __pthread_internal_list 12329: { 12329: struct __pthread_internal_list *__prev; 12329: struct __pthread_internal_list *__next; 12329: } __pthread_list_t; 12329: 12329: typedef struct __pthread_internal_slist 12329: { 12329: struct __pthread_internal_slist *__next; 12329: } __pthread_slist_t; 12329: # 76 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/struct_mutex.h" 1 3 4 12329: # 27 "/usr/include/aarch64-linux-gnu/bits/struct_mutex.h" 3 4 12329: struct __pthread_mutex_s 12329: { 12329: int __lock ; 12329: unsigned int __count; 12329: int __owner; 12329: 12329: unsigned int __nusers; 12329: # 58 "/usr/include/aarch64-linux-gnu/bits/struct_mutex.h" 3 4 12329: int __kind; 12329: 12329: 12329: 12329: 12329: int __spins; 12329: __pthread_list_t __list; 12329: # 74 "/usr/include/aarch64-linux-gnu/bits/struct_mutex.h" 3 4 12329: }; 12329: # 77 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 2 3 4 12329: # 89 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/struct_rwlock.h" 1 3 4 12329: # 23 "/usr/include/aarch64-linux-gnu/bits/struct_rwlock.h" 3 4 12329: struct __pthread_rwlock_arch_t 12329: { 12329: unsigned int __readers; 12329: unsigned int __writers; 12329: unsigned int __wrphase_futex; 12329: unsigned int __writers_futex; 12329: unsigned int __pad3; 12329: unsigned int __pad4; 12329: int __cur_writer; 12329: int __shared; 12329: unsigned long int __pad1; 12329: unsigned long int __pad2; 12329: unsigned int __flags; 12329: }; 12329: # 90 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 2 3 4 12329: 12329: 12329: 12329: 12329: struct __pthread_cond_s 12329: { 12329: __atomic_wide_counter __wseq; 12329: __atomic_wide_counter __g1_start; 12329: unsigned int __g_refs[2] ; 12329: unsigned int __g_size[2]; 12329: unsigned int __g1_orig_size; 12329: unsigned int __wrefs; 12329: unsigned int __g_signals[2]; 12329: }; 12329: 12329: typedef unsigned int __tss_t; 12329: typedef unsigned long int __thrd_t; 12329: 12329: typedef struct 12329: { 12329: int __data ; 12329: } __once_flag; 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h" 2 3 4 12329: 12329: 12329: 12329: typedef unsigned long int pthread_t; 12329: 12329: 12329: 12329: 12329: typedef union 12329: { 12329: char __size[8]; 12329: int __align; 12329: } pthread_mutexattr_t; 12329: 12329: 12329: 12329: 12329: typedef union 12329: { 12329: char __size[8]; 12329: int __align; 12329: } pthread_condattr_t; 12329: 12329: 12329: 12329: typedef unsigned int pthread_key_t; 12329: 12329: 12329: 12329: typedef int pthread_once_t; 12329: 12329: 12329: union pthread_attr_t 12329: { 12329: char __size[64]; 12329: long int __align; 12329: }; 12329: 12329: typedef union pthread_attr_t pthread_attr_t; 12329: 12329: 12329: 12329: 12329: typedef union 12329: { 12329: struct __pthread_mutex_s __data; 12329: char __size[48]; 12329: long int __align; 12329: } pthread_mutex_t; 12329: 12329: 12329: typedef union 12329: { 12329: struct __pthread_cond_s __data; 12329: char __size[48]; 12329: __extension__ long long int __align; 12329: } pthread_cond_t; 12329: 12329: 12329: 12329: 12329: 12329: typedef union 12329: { 12329: struct __pthread_rwlock_arch_t __data; 12329: char __size[56]; 12329: long int __align; 12329: } pthread_rwlock_t; 12329: 12329: typedef union 12329: { 12329: char __size[8]; 12329: long int __align; 12329: } pthread_rwlockattr_t; 12329: 12329: 12329: 12329: 12329: 12329: typedef volatile int pthread_spinlock_t; 12329: 12329: 12329: 12329: 12329: typedef union 12329: { 12329: char __size[32]; 12329: long int __align; 12329: } pthread_barrier_t; 12329: 12329: typedef union 12329: { 12329: char __size[8]; 12329: int __align; 12329: } pthread_barrierattr_t; 12329: # 228 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4 12329: 12329: 12329: } 12329: # 396 "/usr/include/stdlib.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long int random (void) noexcept (true); 12329: 12329: 12329: extern void srandom (unsigned int __seed) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern char *initstate (unsigned int __seed, char *__statebuf, 12329: size_t __statelen) noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: extern char *setstate (char *__statebuf) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: struct random_data 12329: { 12329: int32_t *fptr; 12329: int32_t *rptr; 12329: int32_t *state; 12329: int rand_type; 12329: int rand_deg; 12329: int rand_sep; 12329: int32_t *end_ptr; 12329: }; 12329: 12329: extern int random_r (struct random_data *__restrict __buf, 12329: int32_t *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: extern int srandom_r (unsigned int __seed, struct random_data *__buf) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, 12329: size_t __statelen, 12329: struct random_data *__restrict __buf) 12329: noexcept (true) __attribute__ ((__nonnull__ (2, 4))); 12329: 12329: extern int setstate_r (char *__restrict __statebuf, 12329: struct random_data *__restrict __buf) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: 12329: extern int rand (void) noexcept (true); 12329: 12329: extern void srand (unsigned int __seed) noexcept (true); 12329: 12329: 12329: 12329: extern int rand_r (unsigned int *__seed) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern double drand48 (void) noexcept (true); 12329: extern double erand48 (unsigned short int __xsubi[3]) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern long int lrand48 (void) noexcept (true); 12329: extern long int nrand48 (unsigned short int __xsubi[3]) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern long int mrand48 (void) noexcept (true); 12329: extern long int jrand48 (unsigned short int __xsubi[3]) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern void srand48 (long int __seedval) noexcept (true); 12329: extern unsigned short int *seed48 (unsigned short int __seed16v[3]) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: extern void lcong48 (unsigned short int __param[7]) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: struct drand48_data 12329: { 12329: unsigned short int __x[3]; 12329: unsigned short int __old_x[3]; 12329: unsigned short int __c; 12329: unsigned short int __init; 12329: __extension__ unsigned long long int __a; 12329: 12329: }; 12329: 12329: 12329: extern int drand48_r (struct drand48_data *__restrict __buffer, 12329: double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: extern int erand48_r (unsigned short int __xsubi[3], 12329: struct drand48_data *__restrict __buffer, 12329: double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int lrand48_r (struct drand48_data *__restrict __buffer, 12329: long int *__restrict __result) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: extern int nrand48_r (unsigned short int __xsubi[3], 12329: struct drand48_data *__restrict __buffer, 12329: long int *__restrict __result) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int mrand48_r (struct drand48_data *__restrict __buffer, 12329: long int *__restrict __result) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: extern int jrand48_r (unsigned short int __xsubi[3], 12329: struct drand48_data *__restrict __buffer, 12329: long int *__restrict __result) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int srand48_r (long int __seedval, struct drand48_data *__buffer) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: extern int seed48_r (unsigned short int __seed16v[3], 12329: struct drand48_data *__buffer) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: extern int lcong48_r (unsigned short int __param[7], 12329: struct drand48_data *__buffer) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern __uint32_t arc4random (void) 12329: noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: extern void arc4random_buf (void *__buf, size_t __size) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern __uint32_t arc4random_uniform (__uint32_t __upper_bound) 12329: noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern void *malloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) 12329: __attribute__ ((__alloc_size__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: extern void *calloc (size_t __nmemb, size_t __size) 12329: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern void *realloc (void *__ptr, size_t __size) 12329: noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2))); 12329: 12329: 12329: extern void free (void *__ptr) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 12329: noexcept (true) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__alloc_size__ (2, 3))) 12329: __attribute__ ((__malloc__ (__builtin_free, 1))); 12329: 12329: 12329: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 12329: noexcept (true) __attribute__ ((__malloc__ (reallocarray, 1))); 12329: 12329: 12329: 12329: # 1 "/usr/include/alloca.h" 1 3 4 12329: # 24 "/usr/include/alloca.h" 3 4 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 25 "/usr/include/alloca.h" 2 3 4 12329: 12329: extern "C" { 12329: 12329: 12329: 12329: 12329: 12329: extern void *alloca (size_t __size) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 588 "/usr/include/stdlib.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: extern void *valloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) 12329: __attribute__ ((__alloc_size__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern void *aligned_alloc (size_t __alignment, size_t __size) 12329: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1))) 12329: __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: extern void abort (void) noexcept (true) __attribute__ ((__noreturn__)); 12329: 12329: 12329: 12329: extern int atexit (void (*__func) (void)) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: extern "C++" int at_quick_exit (void (*__func) (void)) 12329: noexcept (true) __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); 12329: # 630 "/usr/include/stdlib.h" 3 4 12329: extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: extern void exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); 12329: 12329: 12329: 12329: 12329: 12329: extern void quick_exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); 12329: 12329: 12329: 12329: 12329: 12329: extern void _Exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); 12329: 12329: 12329: 12329: 12329: extern char *getenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern char *secure_getenv (const char *__name) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int putenv (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: extern int setenv (const char *__name, const char *__value, int __replace) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: extern int unsetenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int clearenv (void) noexcept (true); 12329: # 695 "/usr/include/stdlib.h" 3 4 12329: extern char *mktemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: # 708 "/usr/include/stdlib.h" 3 4 12329: extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: # 718 "/usr/include/stdlib.h" 3 4 12329: extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: # 730 "/usr/include/stdlib.h" 3 4 12329: extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: # 740 "/usr/include/stdlib.h" 3 4 12329: extern int mkstemps64 (char *__template, int __suffixlen) 12329: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: # 751 "/usr/include/stdlib.h" 3 4 12329: extern char *mkdtemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: # 762 "/usr/include/stdlib.h" 3 4 12329: extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: # 772 "/usr/include/stdlib.h" 3 4 12329: extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: # 782 "/usr/include/stdlib.h" 3 4 12329: extern int mkostemps (char *__template, int __suffixlen, int __flags) 12329: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: # 794 "/usr/include/stdlib.h" 3 4 12329: extern int mkostemps64 (char *__template, int __suffixlen, int __flags) 12329: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: # 804 "/usr/include/stdlib.h" 3 4 12329: extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: extern char *canonicalize_file_name (const char *__name) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__malloc__)) 12329: __attribute__ ((__malloc__ (__builtin_free, 1))) __attribute__ ((__warn_unused_result__)); 12329: # 821 "/usr/include/stdlib.h" 3 4 12329: extern char *realpath (const char *__restrict __name, 12329: char *__restrict __resolved) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef int (*__compar_fn_t) (const void *, const void *); 12329: 12329: 12329: typedef __compar_fn_t comparison_fn_t; 12329: 12329: 12329: 12329: typedef int (*__compar_d_fn_t) (const void *, const void *, void *); 12329: 12329: 12329: 12329: 12329: extern void *bsearch (const void *__key, const void *__base, 12329: size_t __nmemb, size_t __size, __compar_fn_t __compar) 12329: __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/stdlib-bsearch.h" 1 3 4 12329: # 19 "/usr/include/aarch64-linux-gnu/bits/stdlib-bsearch.h" 3 4 12329: extern __inline __attribute__ ((__gnu_inline__)) void * 12329: bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, 12329: __compar_fn_t __compar) 12329: { 12329: size_t __l, __u, __idx; 12329: const void *__p; 12329: int __comparison; 12329: 12329: __l = 0; 12329: __u = __nmemb; 12329: while (__l < __u) 12329: { 12329: __idx = (__l + __u) / 2; 12329: __p = (const void *) (((const char *) __base) + (__idx * __size)); 12329: __comparison = (*__compar) (__key, __p); 12329: if (__comparison < 0) 12329: __u = __idx; 12329: else if (__comparison > 0) 12329: __l = __idx + 1; 12329: else 12329: { 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wcast-qual" 12329: 12329: return (void *) __p; 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } 12329: } 12329: 12329: return __null; 12329: } 12329: # 847 "/usr/include/stdlib.h" 2 3 4 12329: 12329: 12329: 12329: 12329: extern void qsort (void *__base, size_t __nmemb, size_t __size, 12329: __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); 12329: 12329: extern void qsort_r (void *__base, size_t __nmemb, size_t __size, 12329: __compar_d_fn_t __compar, void *__arg) 12329: __attribute__ ((__nonnull__ (1, 4))); 12329: 12329: 12329: 12329: 12329: extern int abs (int __x) noexcept (true) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 12329: extern long int labs (long int __x) noexcept (true) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: __extension__ extern long long int llabs (long long int __x) 12329: noexcept (true) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern div_t div (int __numer, int __denom) 12329: noexcept (true) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 12329: extern ldiv_t ldiv (long int __numer, long int __denom) 12329: noexcept (true) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: __extension__ extern lldiv_t lldiv (long long int __numer, 12329: long long int __denom) 12329: noexcept (true) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 12329: # 893 "/usr/include/stdlib.h" 3 4 12329: extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, 12329: int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, 12329: int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern char *gcvt (double __value, int __ndigit, char *__buf) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern char *qecvt (long double __value, int __ndigit, 12329: int *__restrict __decpt, int *__restrict __sign) 12329: noexcept (true) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 12329: extern char *qfcvt (long double __value, int __ndigit, 12329: int *__restrict __decpt, int *__restrict __sign) 12329: noexcept (true) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 12329: extern char *qgcvt (long double __value, int __ndigit, char *__buf) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, 12329: int *__restrict __sign, char *__restrict __buf, 12329: size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); 12329: extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, 12329: int *__restrict __sign, char *__restrict __buf, 12329: size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); 12329: 12329: extern int qecvt_r (long double __value, int __ndigit, 12329: int *__restrict __decpt, int *__restrict __sign, 12329: char *__restrict __buf, size_t __len) 12329: noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); 12329: extern int qfcvt_r (long double __value, int __ndigit, 12329: int *__restrict __decpt, int *__restrict __sign, 12329: char *__restrict __buf, size_t __len) 12329: noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); 12329: 12329: 12329: 12329: 12329: 12329: extern int mblen (const char *__s, size_t __n) noexcept (true); 12329: 12329: 12329: extern int mbtowc (wchar_t *__restrict __pwc, 12329: const char *__restrict __s, size_t __n) noexcept (true); 12329: 12329: 12329: extern int wctomb (char *__s, wchar_t __wchar) noexcept (true); 12329: 12329: 12329: 12329: extern size_t mbstowcs (wchar_t *__restrict __pwcs, 12329: const char *__restrict __s, size_t __n) noexcept (true) 12329: __attribute__ ((__access__ (__read_only__, 2))); 12329: 12329: extern size_t wcstombs (char *__restrict __s, 12329: const wchar_t *__restrict __pwcs, size_t __n) 12329: noexcept (true) 12329: __attribute__ ((__access__ (__write_only__, 1, 3))) 12329: __attribute__ ((__access__ (__read_only__, 2))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int rpmatch (const char *__response) noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: # 980 "/usr/include/stdlib.h" 3 4 12329: extern int getsubopt (char **__restrict __optionp, 12329: char *const *__restrict __tokens, 12329: char **__restrict __valuep) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int grantpt (int __fd) noexcept (true); 12329: 12329: 12329: 12329: extern int unlockpt (int __fd) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern char *ptsname (int __fd) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int ptsname_r (int __fd, char *__buf, size_t __buflen) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: 12329: 12329: extern int getpt (void); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int getloadavg (double __loadavg[], int __nelem) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: # 1036 "/usr/include/stdlib.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/stdlib-float.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/stdlib-float.h" 3 4 12329: extern __inline __attribute__ ((__gnu_inline__)) double 12329: __attribute__ ((__leaf__)) atof (const char *__nptr) noexcept (true) 12329: { 12329: return strtod (__nptr, (char **) __null); 12329: } 12329: # 1037 "/usr/include/stdlib.h" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/stdlib.h" 1 3 4 12329: # 23 "/usr/include/aarch64-linux-gnu/bits/stdlib.h" 3 4 12329: extern char *__realpath_chk (const char *__restrict __name, 12329: char *__restrict __resolved, 12329: size_t __resolvedlen) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) noexcept (true) __asm__ ("" "realpath") 12329: 12329: __attribute__ ((__warn_unused_result__)); 12329: extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) noexcept (true) __asm__ ("" "__realpath_chk") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) 12329: __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 12329: __attribute__ ((__leaf__)) realpath (const char *__restrict __name, char *__restrict __resolved) noexcept (true) 12329: { 12329: size_t sz = __builtin_object_size (__resolved, 2 > 1); 12329: 12329: if (sz == (size_t) -1) 12329: return __realpath_alias (__name, __resolved); 12329: 12329: 12329: 12329: 12329: 12329: return __realpath_chk (__name, __resolved, sz); 12329: } 12329: 12329: 12329: extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, 12329: size_t __nreal) noexcept (true) __attribute__ ((__nonnull__ (2))) 12329: __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) noexcept (true) __asm__ ("" "ptsname_r") 12329: 12329: __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) noexcept (true) __asm__ ("" "__ptsname_r_chk") 12329: 12329: 12329: __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) noexcept (true) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__buf, 2 > 1)) && (__builtin_object_size (__buf, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__buflen)) 0 < (__typeof (__buflen)) -1 || (__builtin_constant_p (__buflen) && (__buflen) > 0)) && __builtin_constant_p ((((long unsigned int) (__buflen)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char))))) && (((long unsigned int) (__buflen)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char)))))) ? __ptsname_r_alias (__fd, __buf, __buflen) : ((((__typeof (__buflen)) 0 < (__typeof (__buflen)) -1 || (__builtin_constant_p (__buflen) && (__buflen) > 0)) && __builtin_constant_p ((((long unsigned int) (__buflen)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) && !(((long unsigned int) (__buflen)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) ? __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)) : __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)))) 12329: 12329: ; 12329: } 12329: 12329: 12329: extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) 12329: noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: extern int __wctomb_alias (char *__s, wchar_t __wchar) noexcept (true) __asm__ ("" "wctomb") 12329: __attribute__ ((__warn_unused_result__)); 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int 12329: __attribute__ ((__leaf__)) wctomb (char *__s, wchar_t __wchar) noexcept (true) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 12329: && 16 > __builtin_object_size (__s, 2 > 1)) 12329: return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); 12329: return __wctomb_alias (__s, __wchar); 12329: } 12329: 12329: 12329: extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, 12329: const char *__restrict __src, 12329: size_t __len, size_t __dstlen) noexcept (true) 12329: __attribute__ ((__access__ (__write_only__, 1, 3))) __attribute__ ((__access__ (__read_only__, 2))); 12329: extern size_t __mbstowcs_nulldst (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) noexcept (true) __asm__ ("" "mbstowcs") 12329: 12329: 12329: 12329: __attribute__ ((__access__ (__read_only__, 2))); 12329: extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) noexcept (true) __asm__ ("" "mbstowcs") 12329: 12329: 12329: 12329: __attribute__ ((__access__ (__write_only__, 1, 3))) __attribute__ ((__access__ (__read_only__, 2))); 12329: extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) noexcept (true) __asm__ ("" "__mbstowcs_chk") 12329: 12329: 12329: 12329: __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 12329: __attribute__ ((__leaf__)) mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) noexcept (true) 12329: 12329: { 12329: if (__builtin_constant_p (__dst == __null) && __dst == __null) 12329: return __mbstowcs_nulldst (__dst, __src, __len); 12329: else 12329: return (((__builtin_constant_p (__builtin_object_size (__dst, 2 > 1)) && (__builtin_object_size (__dst, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (wchar_t))))) && (((long unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (wchar_t)))))) ? __mbstowcs_alias (__dst, __src, __len) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t)))) && !(((long unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t)))) ? __mbstowcs_chk_warn (__dst, __src, __len, (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t))) : __mbstowcs_chk (__dst, __src, __len, (__builtin_object_size (__dst, 2 > 1)) / (sizeof (wchar_t))))) 12329: ; 12329: } 12329: 12329: extern size_t __wcstombs_chk (char *__restrict __dst, 12329: const wchar_t *__restrict __src, 12329: size_t __len, size_t __dstlen) noexcept (true) 12329: __attribute__ ((__access__ (__write_only__, 1, 3))) __attribute__ ((__access__ (__read_only__, 2))); 12329: extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) noexcept (true) __asm__ ("" "wcstombs") 12329: 12329: 12329: 12329: __attribute__ ((__access__ (__write_only__, 1, 3))) __attribute__ ((__access__ (__read_only__, 2))); 12329: extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) noexcept (true) __asm__ ("" "__wcstombs_chk") 12329: 12329: 12329: 12329: __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 12329: __attribute__ ((__leaf__)) wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) noexcept (true) 12329: 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__dst, 2 > 1)) && (__builtin_object_size (__dst, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (char))))) && (((long unsigned int) (__len)) <= ((__builtin_object_size (__dst, 2 > 1))) / ((sizeof (char)))))) ? __wcstombs_alias (__dst, __src, __len) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (char)))) && !(((long unsigned int) (__len)) <= (__builtin_object_size (__dst, 2 > 1)) / (sizeof (char)))) ? __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)) : __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)))) 12329: 12329: ; 12329: } 12329: # 1041 "/usr/include/stdlib.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 76 "/usr/include/c++/12/cstdlib" 2 3 12329: 12329: # 1 "/usr/include/c++/12/bits/std_abs.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/std_abs.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/std_abs.h" 3 12329: # 46 "/usr/include/c++/12/bits/std_abs.h" 3 12329: extern "C++" 12329: { 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: using ::abs; 12329: 12329: 12329: inline long 12329: abs(long __i) { return __builtin_labs(__i); } 12329: 12329: 12329: 12329: inline long long 12329: abs(long long __x) { return __builtin_llabs (__x); } 12329: # 70 "/usr/include/c++/12/bits/std_abs.h" 3 12329: inline constexpr double 12329: abs(double __x) 12329: { return __builtin_fabs(__x); } 12329: 12329: inline constexpr float 12329: abs(float __x) 12329: { return __builtin_fabsf(__x); } 12329: 12329: inline constexpr long double 12329: abs(long double __x) 12329: { return __builtin_fabsl(__x); } 12329: # 107 "/usr/include/c++/12/bits/std_abs.h" 3 12329: 12329: } 12329: } 12329: # 78 "/usr/include/c++/12/cstdlib" 2 3 12329: # 121 "/usr/include/c++/12/cstdlib" 3 12329: extern "C++" 12329: { 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: using ::div_t; 12329: using ::ldiv_t; 12329: 12329: using ::abort; 12329: 12329: 12329: 12329: using ::atexit; 12329: 12329: 12329: using ::at_quick_exit; 12329: 12329: 12329: using ::atof; 12329: using ::atoi; 12329: using ::atol; 12329: using ::bsearch; 12329: using ::calloc; 12329: using ::div; 12329: using ::exit; 12329: using ::free; 12329: using ::getenv; 12329: using ::labs; 12329: using ::ldiv; 12329: using ::malloc; 12329: 12329: using ::mblen; 12329: using ::mbstowcs; 12329: using ::mbtowc; 12329: 12329: using ::qsort; 12329: 12329: 12329: using ::quick_exit; 12329: 12329: 12329: using ::rand; 12329: using ::realloc; 12329: using ::srand; 12329: using ::strtod; 12329: using ::strtol; 12329: using ::strtoul; 12329: using ::system; 12329: 12329: using ::wcstombs; 12329: using ::wctomb; 12329: 12329: 12329: 12329: inline ldiv_t 12329: div(long __i, long __j) { return ldiv(__i, __j); } 12329: 12329: 12329: 12329: 12329: } 12329: # 195 "/usr/include/c++/12/cstdlib" 3 12329: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: using ::lldiv_t; 12329: 12329: 12329: 12329: 12329: 12329: using ::_Exit; 12329: 12329: 12329: 12329: using ::llabs; 12329: 12329: inline lldiv_t 12329: div(long long __n, long long __d) 12329: { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } 12329: 12329: using ::lldiv; 12329: # 227 "/usr/include/c++/12/cstdlib" 3 12329: using ::atoll; 12329: using ::strtoll; 12329: using ::strtoull; 12329: 12329: using ::strtof; 12329: using ::strtold; 12329: 12329: 12329: } 12329: 12329: namespace std 12329: { 12329: 12329: using ::__gnu_cxx::lldiv_t; 12329: 12329: using ::__gnu_cxx::_Exit; 12329: 12329: using ::__gnu_cxx::llabs; 12329: using ::__gnu_cxx::div; 12329: using ::__gnu_cxx::lldiv; 12329: 12329: using ::__gnu_cxx::atoll; 12329: using ::__gnu_cxx::strtof; 12329: using ::__gnu_cxx::strtoll; 12329: using ::__gnu_cxx::strtoull; 12329: using ::__gnu_cxx::strtold; 12329: } 12329: 12329: 12329: 12329: } 12329: # 42 "/usr/include/c++/12/ext/string_conversions.h" 2 3 12329: # 1 "/usr/include/c++/12/cwchar" 1 3 12329: # 39 "/usr/include/c++/12/cwchar" 3 12329: 12329: # 40 "/usr/include/c++/12/cwchar" 3 12329: # 43 "/usr/include/c++/12/ext/string_conversions.h" 2 3 12329: # 1 "/usr/include/c++/12/cstdio" 1 3 12329: # 39 "/usr/include/c++/12/cstdio" 3 12329: 12329: # 40 "/usr/include/c++/12/cstdio" 3 12329: 12329: 12329: # 1 "/usr/include/stdio.h" 1 3 4 12329: # 27 "/usr/include/stdio.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/libc-header-start.h" 1 3 4 12329: # 28 "/usr/include/stdio.h" 2 3 4 12329: 12329: extern "C" { 12329: 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 34 "/usr/include/stdio.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stdarg.h" 1 3 4 12329: # 37 "/usr/include/stdio.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/__fpos_t.h" 1 3 4 12329: # 10 "/usr/include/aarch64-linux-gnu/bits/types/__fpos_t.h" 3 4 12329: typedef struct _G_fpos_t 12329: { 12329: __off_t __pos; 12329: __mbstate_t __state; 12329: } __fpos_t; 12329: # 40 "/usr/include/stdio.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/__fpos64_t.h" 1 3 4 12329: # 10 "/usr/include/aarch64-linux-gnu/bits/types/__fpos64_t.h" 3 4 12329: typedef struct _G_fpos64_t 12329: { 12329: __off64_t __pos; 12329: __mbstate_t __state; 12329: } __fpos64_t; 12329: # 41 "/usr/include/stdio.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_FILE.h" 1 3 4 12329: # 35 "/usr/include/aarch64-linux-gnu/bits/types/struct_FILE.h" 3 4 12329: struct _IO_FILE; 12329: struct _IO_marker; 12329: struct _IO_codecvt; 12329: struct _IO_wide_data; 12329: 12329: 12329: 12329: 12329: typedef void _IO_lock_t; 12329: 12329: 12329: 12329: 12329: 12329: struct _IO_FILE 12329: { 12329: int _flags; 12329: 12329: 12329: char *_IO_read_ptr; 12329: char *_IO_read_end; 12329: char *_IO_read_base; 12329: char *_IO_write_base; 12329: char *_IO_write_ptr; 12329: char *_IO_write_end; 12329: char *_IO_buf_base; 12329: char *_IO_buf_end; 12329: 12329: 12329: char *_IO_save_base; 12329: char *_IO_backup_base; 12329: char *_IO_save_end; 12329: 12329: struct _IO_marker *_markers; 12329: 12329: struct _IO_FILE *_chain; 12329: 12329: int _fileno; 12329: int _flags2; 12329: __off_t _old_offset; 12329: 12329: 12329: unsigned short _cur_column; 12329: signed char _vtable_offset; 12329: char _shortbuf[1]; 12329: 12329: _IO_lock_t *_lock; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: __off64_t _offset; 12329: 12329: struct _IO_codecvt *_codecvt; 12329: struct _IO_wide_data *_wide_data; 12329: struct _IO_FILE *_freeres_list; 12329: void *_freeres_buf; 12329: size_t __pad5; 12329: int _mode; 12329: 12329: char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; 12329: }; 12329: # 44 "/usr/include/stdio.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/cookie_io_functions_t.h" 1 3 4 12329: # 27 "/usr/include/aarch64-linux-gnu/bits/types/cookie_io_functions_t.h" 3 4 12329: typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, 12329: size_t __nbytes); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, 12329: size_t __nbytes); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); 12329: 12329: 12329: typedef int cookie_close_function_t (void *__cookie); 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef struct _IO_cookie_io_functions_t 12329: { 12329: cookie_read_function_t *read; 12329: cookie_write_function_t *write; 12329: cookie_seek_function_t *seek; 12329: cookie_close_function_t *close; 12329: } cookie_io_functions_t; 12329: # 47 "/usr/include/stdio.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: typedef __gnuc_va_list va_list; 12329: # 84 "/usr/include/stdio.h" 3 4 12329: typedef __fpos_t fpos_t; 12329: 12329: 12329: 12329: 12329: typedef __fpos64_t fpos64_t; 12329: # 133 "/usr/include/stdio.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/stdio_lim.h" 1 3 4 12329: # 134 "/usr/include/stdio.h" 2 3 4 12329: # 143 "/usr/include/stdio.h" 3 4 12329: extern FILE *stdin; 12329: extern FILE *stdout; 12329: extern FILE *stderr; 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int remove (const char *__filename) noexcept (true); 12329: 12329: extern int rename (const char *__old, const char *__new) noexcept (true); 12329: 12329: 12329: 12329: extern int renameat (int __oldfd, const char *__old, int __newfd, 12329: const char *__new) noexcept (true); 12329: # 170 "/usr/include/stdio.h" 3 4 12329: extern int renameat2 (int __oldfd, const char *__old, int __newfd, 12329: const char *__new, unsigned int __flags) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int fclose (FILE *__stream); 12329: # 188 "/usr/include/stdio.h" 3 4 12329: extern FILE *tmpfile (void) 12329: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 12329: # 200 "/usr/include/stdio.h" 3 4 12329: extern FILE *tmpfile64 (void) 12329: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: extern char *tmpnam (char[20]) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern char *tmpnam_r (char __s[20]) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: # 222 "/usr/include/stdio.h" 3 4 12329: extern char *tempnam (const char *__dir, const char *__pfx) 12329: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__malloc__ (__builtin_free, 1))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int fflush (FILE *__stream); 12329: # 239 "/usr/include/stdio.h" 3 4 12329: extern int fflush_unlocked (FILE *__stream); 12329: # 249 "/usr/include/stdio.h" 3 4 12329: extern int fcloseall (void); 12329: # 258 "/usr/include/stdio.h" 3 4 12329: extern FILE *fopen (const char *__restrict __filename, 12329: const char *__restrict __modes) 12329: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern FILE *freopen (const char *__restrict __filename, 12329: const char *__restrict __modes, 12329: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 12329: # 283 "/usr/include/stdio.h" 3 4 12329: extern FILE *fopen64 (const char *__restrict __filename, 12329: const char *__restrict __modes) 12329: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 12329: extern FILE *freopen64 (const char *__restrict __filename, 12329: const char *__restrict __modes, 12329: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern FILE *fdopen (int __fd, const char *__modes) noexcept (true) 12329: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: extern FILE *fopencookie (void *__restrict __magic_cookie, 12329: const char *__restrict __modes, 12329: cookie_io_functions_t __io_funcs) noexcept (true) 12329: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) 12329: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) noexcept (true) 12329: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) noexcept (true) 12329: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))); 12329: 12329: 12329: 12329: 12329: 12329: extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) noexcept (true); 12329: 12329: 12329: 12329: extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, 12329: int __modes, size_t __n) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, 12329: size_t __size) noexcept (true); 12329: 12329: 12329: extern void setlinebuf (FILE *__stream) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int fprintf (FILE *__restrict __stream, 12329: const char *__restrict __format, ...); 12329: 12329: 12329: 12329: 12329: extern int printf (const char *__restrict __format, ...); 12329: 12329: extern int sprintf (char *__restrict __s, 12329: const char *__restrict __format, ...) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, 12329: __gnuc_va_list __arg); 12329: 12329: 12329: 12329: 12329: extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); 12329: 12329: extern int vsprintf (char *__restrict __s, const char *__restrict __format, 12329: __gnuc_va_list __arg) noexcept (true); 12329: 12329: 12329: 12329: extern int snprintf (char *__restrict __s, size_t __maxlen, 12329: const char *__restrict __format, ...) 12329: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 4))); 12329: 12329: extern int vsnprintf (char *__restrict __s, size_t __maxlen, 12329: const char *__restrict __format, __gnuc_va_list __arg) 12329: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 0))); 12329: 12329: 12329: 12329: 12329: 12329: extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, 12329: __gnuc_va_list __arg) 12329: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 12329: extern int __asprintf (char **__restrict __ptr, 12329: const char *__restrict __fmt, ...) 12329: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 12329: extern int asprintf (char **__restrict __ptr, 12329: const char *__restrict __fmt, ...) 12329: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int vdprintf (int __fd, const char *__restrict __fmt, 12329: __gnuc_va_list __arg) 12329: __attribute__ ((__format__ (__printf__, 2, 0))); 12329: extern int dprintf (int __fd, const char *__restrict __fmt, ...) 12329: __attribute__ ((__format__ (__printf__, 2, 3))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int fscanf (FILE *__restrict __stream, 12329: const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int scanf (const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 12329: 12329: extern int sscanf (const char *__restrict __s, 12329: const char *__restrict __format, ...) noexcept (true); 12329: # 434 "/usr/include/stdio.h" 3 4 12329: extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf") 12329: 12329: __attribute__ ((__warn_unused_result__)); 12329: extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf") 12329: __attribute__ ((__warn_unused_result__)); 12329: extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) noexcept (true) __asm__ ("" "__isoc99_sscanf") 12329: 12329: ; 12329: # 459 "/usr/include/stdio.h" 3 4 12329: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, 12329: __gnuc_va_list __arg) 12329: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) 12329: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: extern int vsscanf (const char *__restrict __s, 12329: const char *__restrict __format, __gnuc_va_list __arg) 12329: noexcept (true) __attribute__ ((__format__ (__scanf__, 2, 0))); 12329: 12329: 12329: 12329: 12329: 12329: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf") 12329: 12329: 12329: 12329: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 12329: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf") 12329: 12329: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 12329: extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) noexcept (true) __asm__ ("" "__isoc99_vsscanf") 12329: 12329: 12329: 12329: __attribute__ ((__format__ (__scanf__, 2, 0))); 12329: # 513 "/usr/include/stdio.h" 3 4 12329: extern int fgetc (FILE *__stream); 12329: extern int getc (FILE *__stream); 12329: 12329: 12329: 12329: 12329: 12329: extern int getchar (void); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int getc_unlocked (FILE *__stream); 12329: extern int getchar_unlocked (void); 12329: # 538 "/usr/include/stdio.h" 3 4 12329: extern int fgetc_unlocked (FILE *__stream); 12329: # 549 "/usr/include/stdio.h" 3 4 12329: extern int fputc (int __c, FILE *__stream); 12329: extern int putc (int __c, FILE *__stream); 12329: 12329: 12329: 12329: 12329: 12329: extern int putchar (int __c); 12329: # 565 "/usr/include/stdio.h" 3 4 12329: extern int fputc_unlocked (int __c, FILE *__stream); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int putc_unlocked (int __c, FILE *__stream); 12329: extern int putchar_unlocked (int __c); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int getw (FILE *__stream); 12329: 12329: 12329: extern int putw (int __w, FILE *__stream); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: # 615 "/usr/include/stdio.h" 3 4 12329: extern char *fgets_unlocked (char *__restrict __s, int __n, 12329: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: # 632 "/usr/include/stdio.h" 3 4 12329: extern __ssize_t __getdelim (char **__restrict __lineptr, 12329: size_t *__restrict __n, int __delimiter, 12329: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 12329: extern __ssize_t getdelim (char **__restrict __lineptr, 12329: size_t *__restrict __n, int __delimiter, 12329: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern __ssize_t getline (char **__restrict __lineptr, 12329: size_t *__restrict __n, 12329: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int fputs (const char *__restrict __s, FILE *__restrict __stream); 12329: 12329: 12329: 12329: 12329: 12329: extern int puts (const char *__s); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int ungetc (int __c, FILE *__stream); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern size_t fread (void *__restrict __ptr, size_t __size, 12329: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern size_t fwrite (const void *__restrict __ptr, size_t __size, 12329: size_t __n, FILE *__restrict __s); 12329: # 691 "/usr/include/stdio.h" 3 4 12329: extern int fputs_unlocked (const char *__restrict __s, 12329: FILE *__restrict __stream); 12329: # 702 "/usr/include/stdio.h" 3 4 12329: extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, 12329: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 12329: extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, 12329: size_t __n, FILE *__restrict __stream); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int fseek (FILE *__stream, long int __off, int __whence); 12329: 12329: 12329: 12329: 12329: extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern void rewind (FILE *__stream); 12329: # 736 "/usr/include/stdio.h" 3 4 12329: extern int fseeko (FILE *__stream, __off_t __off, int __whence); 12329: 12329: 12329: 12329: 12329: extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__)); 12329: # 760 "/usr/include/stdio.h" 3 4 12329: extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); 12329: 12329: 12329: 12329: 12329: extern int fsetpos (FILE *__stream, const fpos_t *__pos); 12329: # 779 "/usr/include/stdio.h" 3 4 12329: extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); 12329: extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); 12329: extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); 12329: extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); 12329: 12329: 12329: 12329: extern void clearerr (FILE *__stream) noexcept (true); 12329: 12329: extern int feof (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: extern int ferror (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: extern void clearerr_unlocked (FILE *__stream) noexcept (true); 12329: extern int feof_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: extern int ferror_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern void perror (const char *__s); 12329: 12329: 12329: 12329: 12329: extern int fileno (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int fileno_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: # 823 "/usr/include/stdio.h" 3 4 12329: extern int pclose (FILE *__stream); 12329: 12329: 12329: 12329: 12329: 12329: extern FILE *popen (const char *__command, const char *__modes) 12329: __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern char *ctermid (char *__s) noexcept (true) 12329: __attribute__ ((__access__ (__write_only__, 1))); 12329: 12329: 12329: 12329: 12329: 12329: extern char *cuserid (char *__s) 12329: __attribute__ ((__access__ (__write_only__, 1))); 12329: 12329: 12329: 12329: 12329: struct obstack; 12329: 12329: 12329: extern int obstack_printf (struct obstack *__restrict __obstack, 12329: const char *__restrict __format, ...) 12329: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))); 12329: extern int obstack_vprintf (struct obstack *__restrict __obstack, 12329: const char *__restrict __format, 12329: __gnuc_va_list __args) 12329: noexcept (true) __attribute__ ((__format__ (__printf__, 2, 0))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern void flockfile (FILE *__stream) noexcept (true); 12329: 12329: 12329: 12329: extern int ftrylockfile (FILE *__stream) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: extern void funlockfile (FILE *__stream) noexcept (true); 12329: # 885 "/usr/include/stdio.h" 3 4 12329: extern int __uflow (FILE *); 12329: extern int __overflow (FILE *, int); 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/stdio2-decl.h" 1 3 4 12329: # 26 "/usr/include/aarch64-linux-gnu/bits/stdio2-decl.h" 3 4 12329: extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, 12329: const char *__restrict __format, ...) noexcept (true) 12329: __attribute__ ((__access__ (__write_only__, 1, 3))); 12329: extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, 12329: const char *__restrict __format, 12329: __gnuc_va_list __ap) noexcept (true) 12329: __attribute__ ((__access__ (__write_only__, 1, 3))); 12329: 12329: 12329: 12329: extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, 12329: size_t __slen, const char *__restrict __format, 12329: ...) noexcept (true) 12329: __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, 12329: size_t __slen, const char *__restrict __format, 12329: __gnuc_va_list __ap) noexcept (true) 12329: __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: 12329: 12329: 12329: 12329: 12329: extern int __fprintf_chk (FILE *__restrict __stream, int __flag, 12329: const char *__restrict __format, ...); 12329: extern int __printf_chk (int __flag, const char *__restrict __format, ...); 12329: extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, 12329: const char *__restrict __format, __gnuc_va_list __ap); 12329: extern int __vprintf_chk (int __flag, const char *__restrict __format, 12329: __gnuc_va_list __ap); 12329: 12329: 12329: extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, 12329: ...) __attribute__ ((__format__ (__printf__, 3, 4))); 12329: extern int __vdprintf_chk (int __fd, int __flag, 12329: const char *__restrict __fmt, __gnuc_va_list __arg) 12329: __attribute__ ((__format__ (__printf__, 3, 0))); 12329: 12329: 12329: 12329: 12329: extern int __asprintf_chk (char **__restrict __ptr, int __flag, 12329: const char *__restrict __fmt, ...) 12329: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); 12329: extern int __vasprintf_chk (char **__restrict __ptr, int __flag, 12329: const char *__restrict __fmt, __gnuc_va_list __arg) 12329: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); 12329: extern int __obstack_printf_chk (struct obstack *__restrict __obstack, 12329: int __flag, const char *__restrict __format, 12329: ...) 12329: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 4))); 12329: extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, 12329: int __flag, 12329: const char *__restrict __format, 12329: __gnuc_va_list __args) 12329: noexcept (true) __attribute__ ((__format__ (__printf__, 3, 0))); 12329: # 90 "/usr/include/aarch64-linux-gnu/bits/stdio2-decl.h" 3 4 12329: extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, 12329: FILE *__restrict __stream) 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 3))); 12329: 12329: extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, 12329: size_t __size, size_t __n, 12329: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, 12329: int __n, FILE *__restrict __stream) 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 3))); 12329: 12329: 12329: 12329: 12329: extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, 12329: size_t __size, size_t __n, 12329: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 12329: # 891 "/usr/include/stdio.h" 2 3 4 12329: # 902 "/usr/include/stdio.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/stdio.h" 1 3 4 12329: # 46 "/usr/include/aarch64-linux-gnu/bits/stdio.h" 3 4 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: getchar (void) 12329: { 12329: return getc (stdin); 12329: } 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: fgetc_unlocked (FILE *__fp) 12329: { 12329: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: getc_unlocked (FILE *__fp) 12329: { 12329: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 12329: } 12329: 12329: 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: getchar_unlocked (void) 12329: { 12329: return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 12329: } 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: putchar (int __c) 12329: { 12329: return putc (__c, stdout); 12329: } 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: fputc_unlocked (int __c, FILE *__stream) 12329: { 12329: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: putc_unlocked (int __c, FILE *__stream) 12329: { 12329: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 12329: } 12329: 12329: 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: putchar_unlocked (int __c) 12329: { 12329: return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__gnu_inline__)) __ssize_t 12329: getline (char **__lineptr, size_t *__n, FILE *__stream) 12329: { 12329: return __getdelim (__lineptr, __n, '\n', __stream); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: __attribute__ ((__leaf__)) feof_unlocked (FILE *__stream) noexcept (true) 12329: { 12329: return (((__stream)->_flags & 0x0010) != 0); 12329: } 12329: 12329: 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: __attribute__ ((__leaf__)) ferror_unlocked (FILE *__stream) noexcept (true) 12329: { 12329: return (((__stream)->_flags & 0x0020) != 0); 12329: } 12329: # 903 "/usr/include/stdio.h" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/stdio2.h" 1 3 4 12329: # 27 "/usr/include/aarch64-linux-gnu/bits/stdio2.h" 3 4 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) sprintf (char *__restrict __s, const char *__restrict __fmt, ...) noexcept (true) 12329: { 12329: return __builtin___sprintf_chk (__s, 2 - 1, 12329: __builtin_object_size (__s, 2 > 1), __fmt, 12329: __builtin_va_arg_pack ()); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) vsprintf (char *__restrict __s, const char *__restrict __fmt, __gnuc_va_list __ap) noexcept (true) 12329: 12329: { 12329: return __builtin___vsprintf_chk (__s, 2 - 1, 12329: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 12329: } 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...) noexcept (true) 12329: 12329: { 12329: return __builtin___snprintf_chk (__s, __n, 2 - 1, 12329: __builtin_object_size (__s, 2 > 1), __fmt, 12329: __builtin_va_arg_pack ()); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) vsnprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap) noexcept (true) 12329: 12329: { 12329: return __builtin___vsnprintf_chk (__s, __n, 2 - 1, 12329: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) 12329: { 12329: return __fprintf_chk (__stream, 2 - 1, __fmt, 12329: __builtin_va_arg_pack ()); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: printf (const char *__restrict __fmt, ...) 12329: { 12329: return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: vprintf (const char *__restrict __fmt, __gnuc_va_list __ap) 12329: { 12329: 12329: return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); 12329: 12329: 12329: 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: vfprintf (FILE *__restrict __stream, 12329: const char *__restrict __fmt, __gnuc_va_list __ap) 12329: { 12329: return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); 12329: } 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: dprintf (int __fd, const char *__restrict __fmt, ...) 12329: { 12329: return __dprintf_chk (__fd, 2 - 1, __fmt, 12329: __builtin_va_arg_pack ()); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) 12329: { 12329: return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); 12329: } 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) noexcept (true) 12329: { 12329: return __asprintf_chk (__ptr, 2 - 1, __fmt, 12329: __builtin_va_arg_pack ()); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) noexcept (true) 12329: 12329: { 12329: return __asprintf_chk (__ptr, 2 - 1, __fmt, 12329: __builtin_va_arg_pack ()); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __fmt, ...) noexcept (true) 12329: 12329: { 12329: return __obstack_printf_chk (__obstack, 2 - 1, __fmt, 12329: __builtin_va_arg_pack ()); 12329: } 12329: # 165 "/usr/include/aarch64-linux-gnu/bits/stdio2.h" 3 4 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) vasprintf (char **__restrict __ptr, const char *__restrict __fmt, __gnuc_va_list __ap) noexcept (true) 12329: 12329: { 12329: return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __fmt, __gnuc_va_list __ap) noexcept (true) 12329: 12329: { 12329: return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, 12329: __ap); 12329: } 12329: # 198 "/usr/include/aarch64-linux-gnu/bits/stdio2.h" 3 4 12329: extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))) char * 12329: fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 12329: { 12329: size_t sz = __builtin_object_size (__s, 2 > 1); 12329: if (((__builtin_constant_p (sz) && (sz) == (long unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= ((sz)) / ((sizeof (char))))) && (((long unsigned int) (__n)) <= ((sz)) / ((sizeof (char))))))) 12329: return __fgets_alias (__s, __n, __stream); 12329: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= (sz) / (sizeof (char)))) && !(((long unsigned int) (__n)) <= (sz) / (sizeof (char))))) 12329: return __fgets_chk_warn (__s, sz, __n, __stream); 12329: return __fgets_chk (__s, sz, __n, __stream); 12329: } 12329: 12329: extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)); 12329: extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") 12329: 12329: 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 12329: fread (void *__restrict __ptr, size_t __size, size_t __n, 12329: FILE *__restrict __stream) 12329: { 12329: size_t sz = __builtin_object_size (__ptr, 0); 12329: if (((__builtin_constant_p (sz) && (sz) == (long unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= ((sz)) / ((__size)))) && (((long unsigned int) (__n)) <= ((sz)) / ((__size)))))) 12329: return __fread_alias (__ptr, __size, __n, __stream); 12329: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= (sz) / (__size))) && !(((long unsigned int) (__n)) <= (sz) / (__size)))) 12329: return __fread_chk_warn (__ptr, sz, __size, __n, __stream); 12329: return __fread_chk (__ptr, sz, __size, __n, __stream); 12329: } 12329: 12329: 12329: extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))) char * 12329: fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) 12329: { 12329: size_t sz = __builtin_object_size (__s, 2 > 1); 12329: if (((__builtin_constant_p (sz) && (sz) == (long unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= ((sz)) / ((sizeof (char))))) && (((long unsigned int) (__n)) <= ((sz)) / ((sizeof (char))))))) 12329: return __fgets_unlocked_alias (__s, __n, __stream); 12329: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= (sz) / (sizeof (char)))) && !(((long unsigned int) (__n)) <= (sz) / (sizeof (char))))) 12329: return __fgets_unlocked_chk_warn (__s, sz, __n, __stream); 12329: return __fgets_unlocked_chk (__s, sz, __n, __stream); 12329: } 12329: 12329: 12329: 12329: 12329: extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)); 12329: extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk") 12329: 12329: 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 12329: fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, 12329: FILE *__restrict __stream) 12329: { 12329: size_t sz = __builtin_object_size (__ptr, 0); 12329: if (((__builtin_constant_p (sz) && (sz) == (long unsigned int) -1) || (((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= ((sz)) / ((__size)))) && (((long unsigned int) (__n)) <= ((sz)) / ((__size)))))) 12329: { 12329: 12329: if (__builtin_constant_p (__size) 12329: && __builtin_constant_p (__n) 12329: && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) 12329: && __size * __n <= 8) 12329: { 12329: size_t __cnt = __size * __n; 12329: char *__cptr = (char *) __ptr; 12329: if (__cnt == 0) 12329: return 0; 12329: 12329: for (; __cnt > 0; --__cnt) 12329: { 12329: int __c = getc_unlocked (__stream); 12329: if (__c == (-1)) 12329: break; 12329: *__cptr++ = __c; 12329: } 12329: return (__cptr - (char *) __ptr) / __size; 12329: } 12329: 12329: return __fread_unlocked_alias (__ptr, __size, __n, __stream); 12329: } 12329: if ((((__typeof (__n)) 0 < (__typeof (__n)) -1 || (__builtin_constant_p (__n) && (__n) > 0)) && __builtin_constant_p ((((long unsigned int) (__n)) <= (sz) / (__size))) && !(((long unsigned int) (__n)) <= (sz) / (__size)))) 12329: return __fread_unlocked_chk_warn (__ptr, sz, __size, __n, __stream); 12329: return __fread_unlocked_chk (__ptr, sz, __size, __n, __stream); 12329: 12329: } 12329: # 907 "/usr/include/stdio.h" 2 3 4 12329: 12329: 12329: } 12329: # 43 "/usr/include/c++/12/cstdio" 2 3 12329: # 96 "/usr/include/c++/12/cstdio" 3 12329: namespace std 12329: { 12329: using ::FILE; 12329: using ::fpos_t; 12329: 12329: using ::clearerr; 12329: using ::fclose; 12329: using ::feof; 12329: using ::ferror; 12329: using ::fflush; 12329: using ::fgetc; 12329: using ::fgetpos; 12329: using ::fgets; 12329: using ::fopen; 12329: using ::fprintf; 12329: using ::fputc; 12329: using ::fputs; 12329: using ::fread; 12329: using ::freopen; 12329: using ::fscanf; 12329: using ::fseek; 12329: using ::fsetpos; 12329: using ::ftell; 12329: using ::fwrite; 12329: using ::getc; 12329: using ::getchar; 12329: 12329: 12329: 12329: 12329: using ::perror; 12329: using ::printf; 12329: using ::putc; 12329: using ::putchar; 12329: using ::puts; 12329: using ::remove; 12329: using ::rename; 12329: using ::rewind; 12329: using ::scanf; 12329: using ::setbuf; 12329: using ::setvbuf; 12329: using ::sprintf; 12329: using ::sscanf; 12329: using ::tmpfile; 12329: 12329: using ::tmpnam; 12329: 12329: using ::ungetc; 12329: using ::vfprintf; 12329: using ::vprintf; 12329: using ::vsprintf; 12329: } 12329: # 157 "/usr/include/c++/12/cstdio" 3 12329: namespace __gnu_cxx 12329: { 12329: # 175 "/usr/include/c++/12/cstdio" 3 12329: using ::snprintf; 12329: using ::vfscanf; 12329: using ::vscanf; 12329: using ::vsnprintf; 12329: using ::vsscanf; 12329: 12329: } 12329: 12329: namespace std 12329: { 12329: using ::__gnu_cxx::snprintf; 12329: using ::__gnu_cxx::vfscanf; 12329: using ::__gnu_cxx::vscanf; 12329: using ::__gnu_cxx::vsnprintf; 12329: using ::__gnu_cxx::vsscanf; 12329: } 12329: # 44 "/usr/include/c++/12/ext/string_conversions.h" 2 3 12329: # 1 "/usr/include/c++/12/cerrno" 1 3 12329: # 39 "/usr/include/c++/12/cerrno" 3 12329: 12329: # 40 "/usr/include/c++/12/cerrno" 3 12329: 12329: 12329: # 1 "/usr/include/errno.h" 1 3 4 12329: # 28 "/usr/include/errno.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/errno.h" 1 3 4 12329: # 26 "/usr/include/aarch64-linux-gnu/bits/errno.h" 3 4 12329: # 1 "/usr/include/linux/errno.h" 1 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/asm/errno.h" 1 3 4 12329: # 1 "/usr/include/asm-generic/errno.h" 1 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 12329: # 6 "/usr/include/asm-generic/errno.h" 2 3 4 12329: # 2 "/usr/include/aarch64-linux-gnu/asm/errno.h" 2 3 4 12329: # 2 "/usr/include/linux/errno.h" 2 3 4 12329: # 27 "/usr/include/aarch64-linux-gnu/bits/errno.h" 2 3 4 12329: # 29 "/usr/include/errno.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: extern "C" { 12329: 12329: 12329: extern int *__errno_location (void) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern char *program_invocation_name; 12329: extern char *program_invocation_short_name; 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/error_t.h" 1 3 4 12329: # 22 "/usr/include/aarch64-linux-gnu/bits/types/error_t.h" 3 4 12329: typedef int error_t; 12329: # 49 "/usr/include/errno.h" 2 3 4 12329: 12329: 12329: 12329: } 12329: # 43 "/usr/include/c++/12/cerrno" 2 3 12329: # 45 "/usr/include/c++/12/ext/string_conversions.h" 2 3 12329: 12329: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: template 12329: _Ret 12329: __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), 12329: const char* __name, const _CharT* __str, std::size_t* __idx, 12329: _Base... __base) 12329: { 12329: _Ret __ret; 12329: 12329: _CharT* __endptr; 12329: 12329: struct _Save_errno { 12329: _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; } 12329: ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; } 12329: int _M_errno; 12329: } const __save_errno; 12329: 12329: struct _Range_chk { 12329: static bool 12329: _S_chk(_TRet, std::false_type) { return false; } 12329: 12329: static bool 12329: _S_chk(_TRet __val, std::true_type) 12329: { 12329: return __val < _TRet(__numeric_traits::__min) 12329: || __val > _TRet(__numeric_traits::__max); 12329: } 12329: }; 12329: 12329: const _TRet __tmp = __convf(__str, &__endptr, __base...); 12329: 12329: if (__endptr == __str) 12329: std::__throw_invalid_argument(__name); 12329: else if ((*__errno_location ()) == 34 12329: || _Range_chk::_S_chk(__tmp, std::is_same<_Ret, int>{})) 12329: std::__throw_out_of_range(__name); 12329: else 12329: __ret = __tmp; 12329: 12329: if (__idx) 12329: *__idx = __endptr - __str; 12329: 12329: return __ret; 12329: } 12329: 12329: 12329: template 12329: _String 12329: __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, 12329: __builtin_va_list), std::size_t __n, 12329: const _CharT* __fmt, ...) 12329: { 12329: 12329: 12329: _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 12329: * __n)); 12329: 12329: __builtin_va_list __args; 12329: __builtin_va_start(__args, __fmt); 12329: 12329: const int __len = __convf(__s, __n, __fmt, __args); 12329: 12329: __builtin_va_end(__args); 12329: 12329: return _String(__s, __s + __len); 12329: } 12329: 12329: 12329: } 12329: # 3961 "/usr/include/c++/12/bits/basic_string.h" 2 3 12329: # 1 "/usr/include/c++/12/bits/charconv.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/charconv.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/charconv.h" 3 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: namespace __detail 12329: { 12329: 12329: template 12329: constexpr unsigned 12329: __to_chars_len(_Tp __value, int __base = 10) noexcept 12329: { 12329: static_assert(is_integral<_Tp>::value, "implementation bug"); 12329: static_assert(is_unsigned<_Tp>::value, "implementation bug"); 12329: 12329: unsigned __n = 1; 12329: const unsigned __b2 = __base * __base; 12329: const unsigned __b3 = __b2 * __base; 12329: const unsigned long __b4 = __b3 * __base; 12329: for (;;) 12329: { 12329: if (__value < (unsigned)__base) return __n; 12329: if (__value < __b2) return __n + 1; 12329: if (__value < __b3) return __n + 2; 12329: if (__value < __b4) return __n + 3; 12329: __value /= __b4; 12329: __n += 4; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: __to_chars_10_impl(char* __first, unsigned __len, _Tp __val) noexcept 12329: { 12329: static_assert(is_integral<_Tp>::value, "implementation bug"); 12329: static_assert(is_unsigned<_Tp>::value, "implementation bug"); 12329: 12329: static constexpr char __digits[201] = 12329: "0001020304050607080910111213141516171819" 12329: "2021222324252627282930313233343536373839" 12329: "4041424344454647484950515253545556575859" 12329: "6061626364656667686970717273747576777879" 12329: "8081828384858687888990919293949596979899"; 12329: unsigned __pos = __len - 1; 12329: while (__val >= 100) 12329: { 12329: auto const __num = (__val % 100) * 2; 12329: __val /= 100; 12329: __first[__pos] = __digits[__num + 1]; 12329: __first[__pos - 1] = __digits[__num]; 12329: __pos -= 2; 12329: } 12329: if (__val >= 10) 12329: { 12329: auto const __num = __val * 2; 12329: __first[1] = __digits[__num + 1]; 12329: __first[0] = __digits[__num]; 12329: } 12329: else 12329: __first[0] = '0' + __val; 12329: } 12329: 12329: } 12329: 12329: } 12329: # 3962 "/usr/include/c++/12/bits/basic_string.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: namespace __cxx11 { 12329: 12329: 12329: 12329: inline int 12329: stoi(const string& __str, size_t* __idx = 0, int __base = 10) 12329: { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), 12329: __idx, __base); } 12329: 12329: inline long 12329: stol(const string& __str, size_t* __idx = 0, int __base = 10) 12329: { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), 12329: __idx, __base); } 12329: 12329: inline unsigned long 12329: stoul(const string& __str, size_t* __idx = 0, int __base = 10) 12329: { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), 12329: __idx, __base); } 12329: 12329: inline long long 12329: stoll(const string& __str, size_t* __idx = 0, int __base = 10) 12329: { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), 12329: __idx, __base); } 12329: 12329: inline unsigned long long 12329: stoull(const string& __str, size_t* __idx = 0, int __base = 10) 12329: { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), 12329: __idx, __base); } 12329: 12329: 12329: inline float 12329: stof(const string& __str, size_t* __idx = 0) 12329: { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } 12329: 12329: inline double 12329: stod(const string& __str, size_t* __idx = 0) 12329: { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } 12329: 12329: inline long double 12329: stold(const string& __str, size_t* __idx = 0) 12329: { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } 12329: 12329: 12329: 12329: 12329: inline string 12329: to_string(int __val) 12329: 12329: noexcept 12329: 12329: { 12329: const bool __neg = __val < 0; 12329: const unsigned __uval = __neg ? (unsigned)~__val + 1u : __val; 12329: const auto __len = __detail::__to_chars_len(__uval); 12329: string __str(__neg + __len, '-'); 12329: __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); 12329: return __str; 12329: } 12329: 12329: inline string 12329: to_string(unsigned __val) 12329: 12329: noexcept 12329: 12329: { 12329: string __str(__detail::__to_chars_len(__val), '\0'); 12329: __detail::__to_chars_10_impl(&__str[0], __str.size(), __val); 12329: return __str; 12329: } 12329: 12329: inline string 12329: to_string(long __val) 12329: 12329: 12329: 12329: { 12329: const bool __neg = __val < 0; 12329: const unsigned long __uval = __neg ? (unsigned long)~__val + 1ul : __val; 12329: const auto __len = __detail::__to_chars_len(__uval); 12329: string __str(__neg + __len, '-'); 12329: __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); 12329: return __str; 12329: } 12329: 12329: inline string 12329: to_string(unsigned long __val) 12329: 12329: 12329: 12329: { 12329: string __str(__detail::__to_chars_len(__val), '\0'); 12329: __detail::__to_chars_10_impl(&__str[0], __str.size(), __val); 12329: return __str; 12329: } 12329: 12329: inline string 12329: to_string(long long __val) 12329: { 12329: const bool __neg = __val < 0; 12329: const unsigned long long __uval 12329: = __neg ? (unsigned long long)~__val + 1ull : __val; 12329: const auto __len = __detail::__to_chars_len(__uval); 12329: string __str(__neg + __len, '-'); 12329: __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); 12329: return __str; 12329: } 12329: 12329: inline string 12329: to_string(unsigned long long __val) 12329: { 12329: string __str(__detail::__to_chars_len(__val), '\0'); 12329: __detail::__to_chars_10_impl(&__str[0], __str.size(), __val); 12329: return __str; 12329: } 12329: 12329: 12329: 12329: 12329: inline string 12329: to_string(float __val) 12329: { 12329: const int __n = 12329: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 12329: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 12329: "%f", __val); 12329: } 12329: 12329: inline string 12329: to_string(double __val) 12329: { 12329: const int __n = 12329: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 12329: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 12329: "%f", __val); 12329: } 12329: 12329: inline string 12329: to_string(long double __val) 12329: { 12329: const int __n = 12329: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 12329: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 12329: "%Lf", __val); 12329: } 12329: 12329: 12329: 12329: inline int 12329: stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) 12329: { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), 12329: __idx, __base); } 12329: 12329: inline long 12329: stol(const wstring& __str, size_t* __idx = 0, int __base = 10) 12329: { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), 12329: __idx, __base); } 12329: 12329: inline unsigned long 12329: stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) 12329: { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), 12329: __idx, __base); } 12329: 12329: inline long long 12329: stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) 12329: { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), 12329: __idx, __base); } 12329: 12329: inline unsigned long long 12329: stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) 12329: { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), 12329: __idx, __base); } 12329: 12329: 12329: inline float 12329: stof(const wstring& __str, size_t* __idx = 0) 12329: { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } 12329: 12329: inline double 12329: stod(const wstring& __str, size_t* __idx = 0) 12329: { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } 12329: 12329: inline long double 12329: stold(const wstring& __str, size_t* __idx = 0) 12329: { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } 12329: 12329: 12329: 12329: inline wstring 12329: to_wstring(int __val) 12329: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), 12329: L"%d", __val); } 12329: 12329: inline wstring 12329: to_wstring(unsigned __val) 12329: { return __gnu_cxx::__to_xstring(&std::vswprintf, 12329: 4 * sizeof(unsigned), 12329: L"%u", __val); } 12329: 12329: inline wstring 12329: to_wstring(long __val) 12329: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), 12329: L"%ld", __val); } 12329: 12329: inline wstring 12329: to_wstring(unsigned long __val) 12329: { return __gnu_cxx::__to_xstring(&std::vswprintf, 12329: 4 * sizeof(unsigned long), 12329: L"%lu", __val); } 12329: 12329: inline wstring 12329: to_wstring(long long __val) 12329: { return __gnu_cxx::__to_xstring(&std::vswprintf, 12329: 4 * sizeof(long long), 12329: L"%lld", __val); } 12329: 12329: inline wstring 12329: to_wstring(unsigned long long __val) 12329: { return __gnu_cxx::__to_xstring(&std::vswprintf, 12329: 4 * sizeof(unsigned long long), 12329: L"%llu", __val); } 12329: 12329: inline wstring 12329: to_wstring(float __val) 12329: { 12329: const int __n = 12329: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 12329: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 12329: L"%f", __val); 12329: } 12329: 12329: inline wstring 12329: to_wstring(double __val) 12329: { 12329: const int __n = 12329: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 12329: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 12329: L"%f", __val); 12329: } 12329: 12329: inline wstring 12329: to_wstring(long double __val) 12329: { 12329: const int __n = 12329: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 12329: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 12329: L"%Lf", __val); 12329: } 12329: 12329: 12329: 12329: } 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/functional_hash.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/functional_hash.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/functional_hash.h" 3 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/hash_bytes.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/hash_bytes.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/hash_bytes.h" 3 12329: 12329: 12329: 12329: namespace std 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: size_t 12329: _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); 12329: 12329: 12329: 12329: 12329: 12329: size_t 12329: _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); 12329: 12329: 12329: } 12329: # 37 "/usr/include/c++/12/bits/functional_hash.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 50 "/usr/include/c++/12/bits/functional_hash.h" 3 12329: template 12329: struct __hash_base 12329: { 12329: typedef _Result result_type ; 12329: typedef _Arg argument_type ; 12329: }; 12329: 12329: 12329: template 12329: struct hash; 12329: 12329: template 12329: struct __poison_hash 12329: { 12329: static constexpr bool __enable_hash_call = false; 12329: private: 12329: 12329: __poison_hash(__poison_hash&&); 12329: ~__poison_hash(); 12329: }; 12329: 12329: template 12329: struct __poison_hash<_Tp, __void_t()(declval<_Tp>()))>> 12329: { 12329: static constexpr bool __enable_hash_call = true; 12329: }; 12329: 12329: 12329: template::value> 12329: struct __hash_enum 12329: { 12329: private: 12329: 12329: __hash_enum(__hash_enum&&); 12329: ~__hash_enum(); 12329: }; 12329: 12329: 12329: template 12329: struct __hash_enum<_Tp, true> : public __hash_base 12329: { 12329: size_t 12329: operator()(_Tp __val) const noexcept 12329: { 12329: using __type = typename underlying_type<_Tp>::type; 12329: return hash<__type>{}(static_cast<__type>(__val)); 12329: } 12329: }; 12329: 12329: 12329: 12329: template 12329: struct hash : __hash_enum<_Tp> 12329: { }; 12329: 12329: 12329: template 12329: struct hash<_Tp*> : public __hash_base 12329: { 12329: size_t 12329: operator()(_Tp* __p) const noexcept 12329: { return reinterpret_cast(__p); } 12329: }; 12329: # 125 "/usr/include/c++/12/bits/functional_hash.h" 3 12329: template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; 12329: 12329: 12329: template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; 12329: # 201 "/usr/include/c++/12/bits/functional_hash.h" 3 12329: struct _Hash_impl 12329: { 12329: static size_t 12329: hash(const void* __ptr, size_t __clength, 12329: size_t __seed = static_cast(0xc70f6907UL)) 12329: { return _Hash_bytes(__ptr, __clength, __seed); } 12329: 12329: template 12329: static size_t 12329: hash(const _Tp& __val) 12329: { return hash(&__val, sizeof(__val)); } 12329: 12329: template 12329: static size_t 12329: __hash_combine(const _Tp& __val, size_t __hash) 12329: { return hash(&__val, sizeof(__val), __hash); } 12329: }; 12329: 12329: 12329: struct _Fnv_hash_impl 12329: { 12329: static size_t 12329: hash(const void* __ptr, size_t __clength, 12329: size_t __seed = static_cast(2166136261UL)) 12329: { return _Fnv_hash_bytes(__ptr, __clength, __seed); } 12329: 12329: template 12329: static size_t 12329: hash(const _Tp& __val) 12329: { return hash(&__val, sizeof(__val)); } 12329: 12329: template 12329: static size_t 12329: __hash_combine(const _Tp& __val, size_t __hash) 12329: { return hash(&__val, sizeof(__val), __hash); } 12329: }; 12329: 12329: 12329: template<> 12329: struct hash : public __hash_base 12329: { 12329: size_t 12329: operator()(float __val) const noexcept 12329: { 12329: 12329: return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; 12329: } 12329: }; 12329: 12329: 12329: template<> 12329: struct hash : public __hash_base 12329: { 12329: size_t 12329: operator()(double __val) const noexcept 12329: { 12329: 12329: return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; 12329: } 12329: }; 12329: 12329: 12329: template<> 12329: struct hash 12329: : public __hash_base 12329: { 12329: __attribute__ ((__pure__)) size_t 12329: operator()(long double __val) const noexcept; 12329: }; 12329: # 287 "/usr/include/c++/12/bits/functional_hash.h" 3 12329: template 12329: struct __is_fast_hash : public std::true_type 12329: { }; 12329: 12329: template<> 12329: struct __is_fast_hash> : public std::false_type 12329: { }; 12329: 12329: 12329: } 12329: # 4225 "/usr/include/c++/12/bits/basic_string.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: struct hash 12329: : public __hash_base 12329: { 12329: size_t 12329: operator()(const string& __s) const noexcept 12329: { return std::_Hash_impl::hash(__s.data(), __s.length()); } 12329: }; 12329: 12329: template<> 12329: struct __is_fast_hash> : std::false_type 12329: { }; 12329: 12329: 12329: template<> 12329: struct hash 12329: : public __hash_base 12329: { 12329: size_t 12329: operator()(const wstring& __s) const noexcept 12329: { return std::_Hash_impl::hash(__s.data(), 12329: __s.length() * sizeof(wchar_t)); } 12329: }; 12329: 12329: template<> 12329: struct __is_fast_hash> : std::false_type 12329: { }; 12329: # 4281 "/usr/include/c++/12/bits/basic_string.h" 3 12329: template<> 12329: struct hash 12329: : public __hash_base 12329: { 12329: size_t 12329: operator()(const u16string& __s) const noexcept 12329: { return std::_Hash_impl::hash(__s.data(), 12329: __s.length() * sizeof(char16_t)); } 12329: }; 12329: 12329: template<> 12329: struct __is_fast_hash> : std::false_type 12329: { }; 12329: 12329: 12329: template<> 12329: struct hash 12329: : public __hash_base 12329: { 12329: size_t 12329: operator()(const u32string& __s) const noexcept 12329: { return std::_Hash_impl::hash(__s.data(), 12329: __s.length() * sizeof(char32_t)); } 12329: }; 12329: 12329: template<> 12329: struct __is_fast_hash> : std::false_type 12329: { }; 12329: 12329: 12329: 12329: 12329: 12329: inline namespace literals 12329: { 12329: inline namespace string_literals 12329: { 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wliteral-suffix" 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: inline basic_string 12329: operator""s(const char* __str, size_t __len) 12329: { return basic_string{__str, __len}; } 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: inline basic_string 12329: operator""s(const wchar_t* __str, size_t __len) 12329: { return basic_string{__str, __len}; } 12329: # 4344 "/usr/include/c++/12/bits/basic_string.h" 3 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: inline basic_string 12329: operator""s(const char16_t* __str, size_t __len) 12329: { return basic_string{__str, __len}; } 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: inline basic_string 12329: operator""s(const char32_t* __str, size_t __len) 12329: { return basic_string{__str, __len}; } 12329: 12329: 12329: #pragma GCC diagnostic pop 12329: } 12329: } 12329: # 4377 "/usr/include/c++/12/bits/basic_string.h" 3 12329: 12329: } 12329: # 54 "/usr/include/c++/12/string" 2 3 12329: # 1 "/usr/include/c++/12/bits/basic_string.tcc" 1 3 12329: # 42 "/usr/include/c++/12/bits/basic_string.tcc" 3 12329: 12329: # 43 "/usr/include/c++/12/bits/basic_string.tcc" 3 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: template 12329: const typename basic_string<_CharT, _Traits, _Alloc>::size_type 12329: basic_string<_CharT, _Traits, _Alloc>::npos; 12329: 12329: template 12329: 12329: void 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: swap(basic_string& __s) noexcept 12329: { 12329: if (this == std::__addressof(__s)) 12329: return; 12329: 12329: _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); 12329: 12329: if (_M_is_local()) 12329: if (__s._M_is_local()) 12329: { 12329: if (length() && __s.length()) 12329: { 12329: _CharT __tmp_data[_S_local_capacity + 1]; 12329: traits_type::copy(__tmp_data, __s._M_local_buf, 12329: __s.length() + 1); 12329: traits_type::copy(__s._M_local_buf, _M_local_buf, 12329: length() + 1); 12329: traits_type::copy(_M_local_buf, __tmp_data, 12329: __s.length() + 1); 12329: } 12329: else if (__s.length()) 12329: { 12329: traits_type::copy(_M_local_buf, __s._M_local_buf, 12329: __s.length() + 1); 12329: _M_length(__s.length()); 12329: __s._M_set_length(0); 12329: return; 12329: } 12329: else if (length()) 12329: { 12329: traits_type::copy(__s._M_local_buf, _M_local_buf, 12329: length() + 1); 12329: __s._M_length(length()); 12329: _M_set_length(0); 12329: return; 12329: } 12329: } 12329: else 12329: { 12329: const size_type __tmp_capacity = __s._M_allocated_capacity; 12329: traits_type::copy(__s._M_local_buf, _M_local_buf, 12329: length() + 1); 12329: _M_data(__s._M_data()); 12329: __s._M_data(__s._M_local_buf); 12329: _M_capacity(__tmp_capacity); 12329: } 12329: else 12329: { 12329: const size_type __tmp_capacity = _M_allocated_capacity; 12329: if (__s._M_is_local()) 12329: { 12329: traits_type::copy(_M_local_buf, __s._M_local_buf, 12329: __s.length() + 1); 12329: __s._M_data(_M_data()); 12329: _M_data(_M_local_buf); 12329: } 12329: else 12329: { 12329: pointer __tmp_ptr = _M_data(); 12329: _M_data(__s._M_data()); 12329: __s._M_data(__tmp_ptr); 12329: _M_capacity(__s._M_allocated_capacity); 12329: } 12329: __s._M_capacity(__tmp_capacity); 12329: } 12329: 12329: const size_type __tmp_length = length(); 12329: _M_length(__s.length()); 12329: __s._M_length(__tmp_length); 12329: } 12329: 12329: template 12329: 12329: typename basic_string<_CharT, _Traits, _Alloc>::pointer 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: _M_create(size_type& __capacity, size_type __old_capacity) 12329: { 12329: 12329: 12329: if (__capacity > max_size()) 12329: std::__throw_length_error(("basic_string::_M_create")); 12329: 12329: 12329: 12329: 12329: if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) 12329: { 12329: __capacity = 2 * __old_capacity; 12329: 12329: if (__capacity > max_size()) 12329: __capacity = max_size(); 12329: } 12329: 12329: 12329: 12329: return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: template 12329: 12329: void 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: _M_construct(_InIterator __beg, _InIterator __end, 12329: std::input_iterator_tag) 12329: { 12329: size_type __len = 0; 12329: size_type __capacity = size_type(_S_local_capacity); 12329: 12329: pointer __p = _M_use_local_data(); 12329: 12329: while (__beg != __end && __len < __capacity) 12329: { 12329: __p[__len++] = *__beg; 12329: ++__beg; 12329: } 12329: 12329: struct _Guard 12329: { 12329: 12329: explicit _Guard(basic_string* __s) : _M_guarded(__s) { } 12329: 12329: 12329: ~_Guard() { if (_M_guarded) _M_guarded->_M_dispose(); } 12329: 12329: basic_string* _M_guarded; 12329: } __guard(this); 12329: 12329: while (__beg != __end) 12329: { 12329: if (__len == __capacity) 12329: { 12329: 12329: __capacity = __len + 1; 12329: pointer __another = _M_create(__capacity, __len); 12329: this->_S_copy(__another, _M_data(), __len); 12329: _M_dispose(); 12329: _M_data(__another); 12329: _M_capacity(__capacity); 12329: } 12329: traits_type::assign(_M_data()[__len++], *__beg); 12329: ++__beg; 12329: } 12329: 12329: __guard._M_guarded = 0; 12329: 12329: _M_set_length(__len); 12329: } 12329: 12329: template 12329: template 12329: 12329: void 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: _M_construct(_InIterator __beg, _InIterator __end, 12329: std::forward_iterator_tag) 12329: { 12329: size_type __dnew = static_cast(std::distance(__beg, __end)); 12329: 12329: if (__dnew > size_type(_S_local_capacity)) 12329: { 12329: _M_data(_M_create(__dnew, size_type(0))); 12329: _M_capacity(__dnew); 12329: } 12329: else 12329: _M_use_local_data(); 12329: 12329: 12329: struct _Guard 12329: { 12329: 12329: explicit _Guard(basic_string* __s) : _M_guarded(__s) { } 12329: 12329: 12329: ~_Guard() { if (_M_guarded) _M_guarded->_M_dispose(); } 12329: 12329: basic_string* _M_guarded; 12329: } __guard(this); 12329: 12329: this->_S_copy_chars(_M_data(), __beg, __end); 12329: 12329: __guard._M_guarded = 0; 12329: 12329: _M_set_length(__dnew); 12329: } 12329: 12329: template 12329: 12329: void 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: _M_construct(size_type __n, _CharT __c) 12329: { 12329: if (__n > size_type(_S_local_capacity)) 12329: { 12329: _M_data(_M_create(__n, size_type(0))); 12329: _M_capacity(__n); 12329: } 12329: else 12329: _M_use_local_data(); 12329: 12329: if (__n) 12329: this->_S_assign(_M_data(), __n, __c); 12329: 12329: _M_set_length(__n); 12329: } 12329: 12329: template 12329: 12329: void 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: _M_assign(const basic_string& __str) 12329: { 12329: if (this != std::__addressof(__str)) 12329: { 12329: const size_type __rsize = __str.length(); 12329: const size_type __capacity = capacity(); 12329: 12329: if (__rsize > __capacity) 12329: { 12329: size_type __new_capacity = __rsize; 12329: pointer __tmp = _M_create(__new_capacity, __capacity); 12329: _M_dispose(); 12329: _M_data(__tmp); 12329: _M_capacity(__new_capacity); 12329: } 12329: 12329: if (__rsize) 12329: this->_S_copy(_M_data(), __str._M_data(), __rsize); 12329: 12329: _M_set_length(__rsize); 12329: } 12329: } 12329: 12329: template 12329: 12329: void 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: reserve(size_type __res) 12329: { 12329: const size_type __capacity = capacity(); 12329: 12329: 12329: 12329: 12329: if (__res <= __capacity) 12329: return; 12329: 12329: pointer __tmp = _M_create(__res, __capacity); 12329: this->_S_copy(__tmp, _M_data(), length() + 1); 12329: _M_dispose(); 12329: _M_data(__tmp); 12329: _M_capacity(__res); 12329: } 12329: 12329: template 12329: 12329: void 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 12329: size_type __len2) 12329: { 12329: const size_type __how_much = length() - __pos - __len1; 12329: 12329: size_type __new_capacity = length() + __len2 - __len1; 12329: pointer __r = _M_create(__new_capacity, capacity()); 12329: 12329: if (__pos) 12329: this->_S_copy(__r, _M_data(), __pos); 12329: if (__s && __len2) 12329: this->_S_copy(__r + __pos, __s, __len2); 12329: if (__how_much) 12329: this->_S_copy(__r + __pos + __len2, 12329: _M_data() + __pos + __len1, __how_much); 12329: 12329: _M_dispose(); 12329: _M_data(__r); 12329: _M_capacity(__new_capacity); 12329: } 12329: 12329: template 12329: 12329: void 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: _M_erase(size_type __pos, size_type __n) 12329: { 12329: const size_type __how_much = length() - __pos - __n; 12329: 12329: if (__how_much && __n) 12329: this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); 12329: 12329: _M_set_length(length() - __n); 12329: } 12329: 12329: template 12329: 12329: void 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: reserve() 12329: { 12329: if (_M_is_local()) 12329: return; 12329: 12329: const size_type __length = length(); 12329: const size_type __capacity = _M_allocated_capacity; 12329: 12329: if (__length <= size_type(_S_local_capacity)) 12329: { 12329: this->_S_copy(_M_use_local_data(), _M_data(), __length + 1); 12329: _M_destroy(__capacity); 12329: _M_data(_M_local_data()); 12329: } 12329: 12329: else if (__length < __capacity) 12329: try 12329: { 12329: pointer __tmp 12329: = _Alloc_traits::allocate(_M_get_allocator(), __length + 1); 12329: this->_S_copy(__tmp, _M_data(), __length + 1); 12329: _M_dispose(); 12329: _M_data(__tmp); 12329: _M_capacity(__length); 12329: } 12329: catch (const __cxxabiv1::__forced_unwind&) 12329: { throw; } 12329: catch (...) 12329: { } 12329: 12329: } 12329: 12329: template 12329: 12329: void 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: resize(size_type __n, _CharT __c) 12329: { 12329: const size_type __size = this->size(); 12329: if (__size < __n) 12329: this->append(__n - __size, __c); 12329: else if (__n < __size) 12329: this->_M_set_length(__n); 12329: } 12329: 12329: template 12329: 12329: basic_string<_CharT, _Traits, _Alloc>& 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: _M_append(const _CharT* __s, size_type __n) 12329: { 12329: const size_type __len = __n + this->size(); 12329: 12329: if (__len <= this->capacity()) 12329: { 12329: if (__n) 12329: this->_S_copy(this->_M_data() + this->size(), __s, __n); 12329: } 12329: else 12329: this->_M_mutate(this->size(), size_type(0), __s, __n); 12329: 12329: this->_M_set_length(__len); 12329: return *this; 12329: } 12329: 12329: template 12329: template 12329: 12329: basic_string<_CharT, _Traits, _Alloc>& 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 12329: _InputIterator __k1, _InputIterator __k2, 12329: std::__false_type) 12329: { 12329: 12329: 12329: const basic_string __s(__k1, __k2, this->get_allocator()); 12329: const size_type __n1 = __i2 - __i1; 12329: return _M_replace(__i1 - begin(), __n1, __s._M_data(), 12329: __s.size()); 12329: } 12329: 12329: template 12329: 12329: basic_string<_CharT, _Traits, _Alloc>& 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 12329: _CharT __c) 12329: { 12329: _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); 12329: 12329: const size_type __old_size = this->size(); 12329: const size_type __new_size = __old_size + __n2 - __n1; 12329: 12329: if (__new_size <= this->capacity()) 12329: { 12329: pointer __p = this->_M_data() + __pos1; 12329: 12329: const size_type __how_much = __old_size - __pos1 - __n1; 12329: if (__how_much && __n1 != __n2) 12329: this->_S_move(__p + __n2, __p + __n1, __how_much); 12329: } 12329: else 12329: this->_M_mutate(__pos1, __n1, 0, __n2); 12329: 12329: if (__n2) 12329: this->_S_assign(this->_M_data() + __pos1, __n2, __c); 12329: 12329: this->_M_set_length(__new_size); 12329: return *this; 12329: } 12329: 12329: template 12329: 12329: basic_string<_CharT, _Traits, _Alloc>& 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 12329: const size_type __len2) 12329: { 12329: _M_check_length(__len1, __len2, "basic_string::_M_replace"); 12329: 12329: const size_type __old_size = this->size(); 12329: const size_type __new_size = __old_size + __len2 - __len1; 12329: 12329: if (__new_size <= this->capacity()) 12329: { 12329: pointer __p = this->_M_data() + __pos; 12329: 12329: const size_type __how_much = __old_size - __pos - __len1; 12329: # 503 "/usr/include/c++/12/bits/basic_string.tcc" 3 12329: if (_M_disjunct(__s)) 12329: { 12329: if (__how_much && __len1 != __len2) 12329: this->_S_move(__p + __len2, __p + __len1, __how_much); 12329: if (__len2) 12329: this->_S_copy(__p, __s, __len2); 12329: } 12329: else 12329: { 12329: 12329: if (__len2 && __len2 <= __len1) 12329: this->_S_move(__p, __s, __len2); 12329: if (__how_much && __len1 != __len2) 12329: this->_S_move(__p + __len2, __p + __len1, __how_much); 12329: if (__len2 > __len1) 12329: { 12329: if (__s + __len2 <= __p + __len1) 12329: this->_S_move(__p, __s, __len2); 12329: else if (__s >= __p + __len1) 12329: { 12329: 12329: 12329: const size_type __poff = (__s - __p) + (__len2 - __len1); 12329: this->_S_copy(__p, __p + __poff, __len2); 12329: } 12329: else 12329: { 12329: const size_type __nleft = (__p + __len1) - __s; 12329: this->_S_move(__p, __s, __nleft); 12329: this->_S_copy(__p + __nleft, __p + __len2, 12329: __len2 - __nleft); 12329: } 12329: } 12329: } 12329: } 12329: else 12329: this->_M_mutate(__pos, __len1, __s, __len2); 12329: 12329: this->_M_set_length(__new_size); 12329: return *this; 12329: } 12329: 12329: template 12329: 12329: typename basic_string<_CharT, _Traits, _Alloc>::size_type 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: copy(_CharT* __s, size_type __n, size_type __pos) const 12329: { 12329: _M_check(__pos, "basic_string::copy"); 12329: __n = _M_limit(__pos, __n); 12329: ; 12329: if (__n) 12329: _S_copy(__s, _M_data() + __pos, __n); 12329: 12329: return __n; 12329: } 12329: # 603 "/usr/include/c++/12/bits/basic_string.tcc" 3 12329: template 12329: 12329: basic_string<_CharT, _Traits, _Alloc> 12329: operator+(const _CharT* __lhs, 12329: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: { 12329: ; 12329: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 12329: typedef typename __string_type::size_type __size_type; 12329: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 12329: rebind<_CharT>::other _Char_alloc_type; 12329: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 12329: const __size_type __len = _Traits::length(__lhs); 12329: __string_type __str(_Alloc_traits::_S_select_on_copy( 12329: __rhs.get_allocator())); 12329: __str.reserve(__len + __rhs.size()); 12329: __str.append(__lhs, __len); 12329: __str.append(__rhs); 12329: return __str; 12329: } 12329: 12329: template 12329: 12329: basic_string<_CharT, _Traits, _Alloc> 12329: operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) 12329: { 12329: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 12329: typedef typename __string_type::size_type __size_type; 12329: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 12329: rebind<_CharT>::other _Char_alloc_type; 12329: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 12329: __string_type __str(_Alloc_traits::_S_select_on_copy( 12329: __rhs.get_allocator())); 12329: const __size_type __len = __rhs.size(); 12329: __str.reserve(__len + 1); 12329: __str.append(__size_type(1), __lhs); 12329: __str.append(__rhs); 12329: return __str; 12329: } 12329: 12329: template 12329: 12329: typename basic_string<_CharT, _Traits, _Alloc>::size_type 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: find(const _CharT* __s, size_type __pos, size_type __n) const 12329: noexcept 12329: { 12329: ; 12329: const size_type __size = this->size(); 12329: 12329: if (__n == 0) 12329: return __pos <= __size ? __pos : npos; 12329: if (__pos >= __size) 12329: return npos; 12329: 12329: const _CharT __elem0 = __s[0]; 12329: const _CharT* const __data = data(); 12329: const _CharT* __first = __data + __pos; 12329: const _CharT* const __last = __data + __size; 12329: size_type __len = __size - __pos; 12329: 12329: while (__len >= __n) 12329: { 12329: 12329: __first = traits_type::find(__first, __len - __n + 1, __elem0); 12329: if (!__first) 12329: return npos; 12329: 12329: 12329: 12329: if (traits_type::compare(__first, __s, __n) == 0) 12329: return __first - __data; 12329: __len = __last - ++__first; 12329: } 12329: return npos; 12329: } 12329: 12329: template 12329: 12329: typename basic_string<_CharT, _Traits, _Alloc>::size_type 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: find(_CharT __c, size_type __pos) const noexcept 12329: { 12329: size_type __ret = npos; 12329: const size_type __size = this->size(); 12329: if (__pos < __size) 12329: { 12329: const _CharT* __data = _M_data(); 12329: const size_type __n = __size - __pos; 12329: const _CharT* __p = traits_type::find(__data + __pos, __n, __c); 12329: if (__p) 12329: __ret = __p - __data; 12329: } 12329: return __ret; 12329: } 12329: 12329: template 12329: 12329: typename basic_string<_CharT, _Traits, _Alloc>::size_type 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: rfind(const _CharT* __s, size_type __pos, size_type __n) const 12329: noexcept 12329: { 12329: ; 12329: const size_type __size = this->size(); 12329: if (__n <= __size) 12329: { 12329: __pos = std::min(size_type(__size - __n), __pos); 12329: const _CharT* __data = _M_data(); 12329: do 12329: { 12329: if (traits_type::compare(__data + __pos, __s, __n) == 0) 12329: return __pos; 12329: } 12329: while (__pos-- > 0); 12329: } 12329: return npos; 12329: } 12329: 12329: template 12329: 12329: typename basic_string<_CharT, _Traits, _Alloc>::size_type 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: rfind(_CharT __c, size_type __pos) const noexcept 12329: { 12329: size_type __size = this->size(); 12329: if (__size) 12329: { 12329: if (--__size > __pos) 12329: __size = __pos; 12329: for (++__size; __size-- > 0; ) 12329: if (traits_type::eq(_M_data()[__size], __c)) 12329: return __size; 12329: } 12329: return npos; 12329: } 12329: 12329: template 12329: 12329: typename basic_string<_CharT, _Traits, _Alloc>::size_type 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 12329: noexcept 12329: { 12329: ; 12329: for (; __n && __pos < this->size(); ++__pos) 12329: { 12329: const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); 12329: if (__p) 12329: return __pos; 12329: } 12329: return npos; 12329: } 12329: 12329: template 12329: 12329: typename basic_string<_CharT, _Traits, _Alloc>::size_type 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 12329: noexcept 12329: { 12329: ; 12329: size_type __size = this->size(); 12329: if (__size && __n) 12329: { 12329: if (--__size > __pos) 12329: __size = __pos; 12329: do 12329: { 12329: if (traits_type::find(__s, __n, _M_data()[__size])) 12329: return __size; 12329: } 12329: while (__size-- != 0); 12329: } 12329: return npos; 12329: } 12329: 12329: template 12329: 12329: typename basic_string<_CharT, _Traits, _Alloc>::size_type 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const 12329: noexcept 12329: { 12329: ; 12329: for (; __pos < this->size(); ++__pos) 12329: if (!traits_type::find(__s, __n, _M_data()[__pos])) 12329: return __pos; 12329: return npos; 12329: } 12329: 12329: template 12329: 12329: typename basic_string<_CharT, _Traits, _Alloc>::size_type 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: find_first_not_of(_CharT __c, size_type __pos) const noexcept 12329: { 12329: for (; __pos < this->size(); ++__pos) 12329: if (!traits_type::eq(_M_data()[__pos], __c)) 12329: return __pos; 12329: return npos; 12329: } 12329: 12329: template 12329: 12329: typename basic_string<_CharT, _Traits, _Alloc>::size_type 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const 12329: noexcept 12329: { 12329: ; 12329: size_type __size = this->size(); 12329: if (__size) 12329: { 12329: if (--__size > __pos) 12329: __size = __pos; 12329: do 12329: { 12329: if (!traits_type::find(__s, __n, _M_data()[__size])) 12329: return __size; 12329: } 12329: while (__size--); 12329: } 12329: return npos; 12329: } 12329: 12329: template 12329: 12329: typename basic_string<_CharT, _Traits, _Alloc>::size_type 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: find_last_not_of(_CharT __c, size_type __pos) const noexcept 12329: { 12329: size_type __size = this->size(); 12329: if (__size) 12329: { 12329: if (--__size > __pos) 12329: __size = __pos; 12329: do 12329: { 12329: if (!traits_type::eq(_M_data()[__size], __c)) 12329: return __size; 12329: } 12329: while (__size--); 12329: } 12329: return npos; 12329: } 12329: 12329: template 12329: 12329: int 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: compare(size_type __pos, size_type __n, const basic_string& __str) const 12329: { 12329: _M_check(__pos, "basic_string::compare"); 12329: __n = _M_limit(__pos, __n); 12329: const size_type __osize = __str.size(); 12329: const size_type __len = std::min(__n, __osize); 12329: int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); 12329: if (!__r) 12329: __r = _S_compare(__n, __osize); 12329: return __r; 12329: } 12329: 12329: template 12329: 12329: int 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: compare(size_type __pos1, size_type __n1, const basic_string& __str, 12329: size_type __pos2, size_type __n2) const 12329: { 12329: _M_check(__pos1, "basic_string::compare"); 12329: __str._M_check(__pos2, "basic_string::compare"); 12329: __n1 = _M_limit(__pos1, __n1); 12329: __n2 = __str._M_limit(__pos2, __n2); 12329: const size_type __len = std::min(__n1, __n2); 12329: int __r = traits_type::compare(_M_data() + __pos1, 12329: __str.data() + __pos2, __len); 12329: if (!__r) 12329: __r = _S_compare(__n1, __n2); 12329: return __r; 12329: } 12329: 12329: template 12329: 12329: int 12329: basic_string<_CharT, _Traits, _Alloc>:: 12329: compare(const _CharT* __s) const noexcept 12329: { 12329: ; 12329: const size_type __size = this->size(); 12329: const size_type __osize = traits_type::length(__s); 12329: const size_type __len = std::min(__size, __osize); 12329: int __r = traits_type::compare(_M_data(), __s, __len); 12329: if (!__r) 12329: __r = _S_compare(__size, __osize); 12329: return __r; 12329: } 12329: 12329: template 12329: 12329: int 12329: basic_string <_CharT, _Traits, _Alloc>:: 12329: compare(size_type __pos, size_type __n1, const _CharT* __s) const 12329: { 12329: ; 12329: _M_check(__pos, "basic_string::compare"); 12329: __n1 = _M_limit(__pos, __n1); 12329: const size_type __osize = traits_type::length(__s); 12329: const size_type __len = std::min(__n1, __osize); 12329: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 12329: if (!__r) 12329: __r = _S_compare(__n1, __osize); 12329: return __r; 12329: } 12329: 12329: template 12329: 12329: int 12329: basic_string <_CharT, _Traits, _Alloc>:: 12329: compare(size_type __pos, size_type __n1, const _CharT* __s, 12329: size_type __n2) const 12329: { 12329: ; 12329: _M_check(__pos, "basic_string::compare"); 12329: __n1 = _M_limit(__pos, __n1); 12329: const size_type __len = std::min(__n1, __n2); 12329: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 12329: if (!__r) 12329: __r = _S_compare(__n1, __n2); 12329: return __r; 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: operator>>(basic_istream<_CharT, _Traits>& __in, 12329: basic_string<_CharT, _Traits, _Alloc>& __str) 12329: { 12329: typedef basic_istream<_CharT, _Traits> __istream_type; 12329: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 12329: typedef typename __istream_type::ios_base __ios_base; 12329: typedef typename __istream_type::int_type __int_type; 12329: typedef typename __string_type::size_type __size_type; 12329: typedef ctype<_CharT> __ctype_type; 12329: typedef typename __ctype_type::ctype_base __ctype_base; 12329: 12329: __size_type __extracted = 0; 12329: typename __ios_base::iostate __err = __ios_base::goodbit; 12329: typename __istream_type::sentry __cerb(__in, false); 12329: if (__cerb) 12329: { 12329: try 12329: { 12329: 12329: __str.erase(); 12329: _CharT __buf[128]; 12329: __size_type __len = 0; 12329: const streamsize __w = __in.width(); 12329: const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) 12329: : __str.max_size(); 12329: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 12329: const __int_type __eof = _Traits::eof(); 12329: __int_type __c = __in.rdbuf()->sgetc(); 12329: 12329: while (__extracted < __n 12329: && !_Traits::eq_int_type(__c, __eof) 12329: && !__ct.is(__ctype_base::space, 12329: _Traits::to_char_type(__c))) 12329: { 12329: if (__len == sizeof(__buf) / sizeof(_CharT)) 12329: { 12329: __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); 12329: __len = 0; 12329: } 12329: __buf[__len++] = _Traits::to_char_type(__c); 12329: ++__extracted; 12329: __c = __in.rdbuf()->snextc(); 12329: } 12329: __str.append(__buf, __len); 12329: 12329: if (__extracted < __n && _Traits::eq_int_type(__c, __eof)) 12329: __err |= __ios_base::eofbit; 12329: __in.width(0); 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: __in._M_setstate(__ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { 12329: 12329: 12329: 12329: __in._M_setstate(__ios_base::badbit); 12329: } 12329: } 12329: 12329: if (!__extracted) 12329: __err |= __ios_base::failbit; 12329: if (__err) 12329: __in.setstate(__err); 12329: return __in; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: getline(basic_istream<_CharT, _Traits>& __in, 12329: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 12329: { 12329: typedef basic_istream<_CharT, _Traits> __istream_type; 12329: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 12329: typedef typename __istream_type::ios_base __ios_base; 12329: typedef typename __istream_type::int_type __int_type; 12329: typedef typename __string_type::size_type __size_type; 12329: 12329: __size_type __extracted = 0; 12329: const __size_type __n = __str.max_size(); 12329: typename __ios_base::iostate __err = __ios_base::goodbit; 12329: typename __istream_type::sentry __cerb(__in, true); 12329: if (__cerb) 12329: { 12329: try 12329: { 12329: __str.erase(); 12329: const __int_type __idelim = _Traits::to_int_type(__delim); 12329: const __int_type __eof = _Traits::eof(); 12329: __int_type __c = __in.rdbuf()->sgetc(); 12329: 12329: while (__extracted < __n 12329: && !_Traits::eq_int_type(__c, __eof) 12329: && !_Traits::eq_int_type(__c, __idelim)) 12329: { 12329: __str += _Traits::to_char_type(__c); 12329: ++__extracted; 12329: __c = __in.rdbuf()->snextc(); 12329: } 12329: 12329: if (_Traits::eq_int_type(__c, __eof)) 12329: __err |= __ios_base::eofbit; 12329: else if (_Traits::eq_int_type(__c, __idelim)) 12329: { 12329: ++__extracted; 12329: __in.rdbuf()->sbumpc(); 12329: } 12329: else 12329: __err |= __ios_base::failbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: __in._M_setstate(__ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { 12329: 12329: 12329: 12329: __in._M_setstate(__ios_base::badbit); 12329: } 12329: } 12329: if (!__extracted) 12329: __err |= __ios_base::failbit; 12329: if (__err) 12329: __in.setstate(__err); 12329: return __in; 12329: } 12329: # 1082 "/usr/include/c++/12/bits/basic_string.tcc" 3 12329: extern template class basic_string; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern template 12329: basic_istream& 12329: operator>>(basic_istream&, string&); 12329: extern template 12329: basic_ostream& 12329: operator<<(basic_ostream&, const string&); 12329: extern template 12329: basic_istream& 12329: getline(basic_istream&, string&, char); 12329: extern template 12329: basic_istream& 12329: getline(basic_istream&, string&); 12329: 12329: 12329: 12329: extern template class basic_string; 12329: 12329: 12329: 12329: 12329: 12329: extern template 12329: basic_istream& 12329: operator>>(basic_istream&, wstring&); 12329: extern template 12329: basic_ostream& 12329: operator<<(basic_ostream&, const wstring&); 12329: extern template 12329: basic_istream& 12329: getline(basic_istream&, wstring&, wchar_t); 12329: extern template 12329: basic_istream& 12329: getline(basic_istream&, wstring&); 12329: 12329: 12329: 12329: 12329: } 12329: # 55 "/usr/include/c++/12/string" 2 3 12329: # 7 "OjaNewton.cc" 2 12329: # 1 "gd.h" 1 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "parse_regressor.h" 1 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/program_options.hpp" 1 3 4 12329: # 15 "/usr/include/boost/program_options.hpp" 3 4 12329: # 1 "/usr/include/boost/program_options/options_description.hpp" 1 3 4 12329: # 11 "/usr/include/boost/program_options/options_description.hpp" 3 4 12329: # 1 "/usr/include/boost/program_options/config.hpp" 1 3 4 12329: # 10 "/usr/include/boost/program_options/config.hpp" 3 4 12329: # 1 "/usr/include/boost/config.hpp" 1 3 4 12329: # 30 "/usr/include/boost/config.hpp" 3 4 12329: # 1 "/usr/include/boost/config/user.hpp" 1 3 4 12329: # 31 "/usr/include/boost/config.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/config/detail/select_compiler_config.hpp" 1 3 4 12329: # 36 "/usr/include/boost/config.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/config/compiler/gcc.hpp" 1 3 4 12329: # 165 "/usr/include/boost/config/compiler/gcc.hpp" 3 4 12329: # 1 "/usr/include/c++/12/cstddef" 1 3 4 12329: # 42 "/usr/include/c++/12/cstddef" 3 4 12329: 12329: # 43 "/usr/include/c++/12/cstddef" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 145 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 3 4 12329: typedef long int ptrdiff_t; 12329: # 424 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 3 4 12329: typedef struct { 12329: long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); 12329: long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); 12329: # 435 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 3 4 12329: } max_align_t; 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef decltype(nullptr) nullptr_t; 12329: # 51 "/usr/include/c++/12/cstddef" 2 3 12329: 12329: extern "C++" 12329: { 12329: 12329: namespace std 12329: { 12329: 12329: using ::max_align_t; 12329: } 12329: # 178 "/usr/include/c++/12/cstddef" 3 12329: } 12329: # 166 "/usr/include/boost/config/compiler/gcc.hpp" 2 3 4 12329: # 40 "/usr/include/boost/config.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/config/detail/select_stdlib_config.hpp" 1 3 4 12329: # 24 "/usr/include/boost/config/detail/select_stdlib_config.hpp" 3 4 12329: # 1 "/usr/include/c++/12/version" 1 3 4 12329: # 33 "/usr/include/c++/12/version" 3 4 12329: 12329: # 34 "/usr/include/c++/12/version" 3 12329: # 25 "/usr/include/boost/config/detail/select_stdlib_config.hpp" 2 3 4 12329: # 45 "/usr/include/boost/config.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/config/stdlib/libstdcpp3.hpp" 1 3 4 12329: # 78 "/usr/include/boost/config/stdlib/libstdcpp3.hpp" 3 4 12329: # 1 "/usr/include/unistd.h" 1 3 4 12329: # 27 "/usr/include/unistd.h" 3 4 12329: extern "C" { 12329: # 202 "/usr/include/unistd.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/posix_opt.h" 1 3 4 12329: # 203 "/usr/include/unistd.h" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/environments.h" 1 3 4 12329: # 22 "/usr/include/aarch64-linux-gnu/bits/environments.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4 12329: # 23 "/usr/include/aarch64-linux-gnu/bits/environments.h" 2 3 4 12329: # 207 "/usr/include/unistd.h" 2 3 4 12329: # 226 "/usr/include/unistd.h" 3 4 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 227 "/usr/include/unistd.h" 2 3 4 12329: # 274 "/usr/include/unistd.h" 3 4 12329: typedef __socklen_t socklen_t; 12329: # 287 "/usr/include/unistd.h" 3 4 12329: extern int access (const char *__name, int __type) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: extern int euidaccess (const char *__name, int __type) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int eaccess (const char *__name, int __type) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int execveat (int __fd, const char *__path, char *const __argv[], 12329: char *const __envp[], int __flags) 12329: noexcept (true) __attribute__ ((__nonnull__ (2, 3))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int faccessat (int __fd, const char *__file, int __type, int __flag) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); 12329: # 339 "/usr/include/unistd.h" 3 4 12329: extern __off_t lseek (int __fd, __off_t __offset, int __whence) noexcept (true); 12329: # 350 "/usr/include/unistd.h" 3 4 12329: extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) 12329: noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int close (int __fd); 12329: 12329: 12329: 12329: 12329: extern void closefrom (int __lowfd) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: 12329: 12329: 12329: 12329: 12329: extern ssize_t write (int __fd, const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__read_only__, 2, 3))); 12329: # 389 "/usr/include/unistd.h" 3 4 12329: extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, 12329: __off_t __offset) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern ssize_t pwrite (int __fd, const void *__buf, size_t __n, 12329: __off_t __offset) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__read_only__, 2, 3))); 12329: # 422 "/usr/include/unistd.h" 3 4 12329: extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, 12329: __off64_t __offset) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: 12329: 12329: extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n, 12329: __off64_t __offset) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__read_only__, 2, 3))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int pipe (int __pipedes[2]) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int pipe2 (int __pipedes[2], int __flags) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: # 452 "/usr/include/unistd.h" 3 4 12329: extern unsigned int alarm (unsigned int __seconds) noexcept (true); 12329: # 464 "/usr/include/unistd.h" 3 4 12329: extern unsigned int sleep (unsigned int __seconds); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) 12329: noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int usleep (__useconds_t __useconds); 12329: # 489 "/usr/include/unistd.h" 3 4 12329: extern int pause (void); 12329: 12329: 12329: 12329: extern int chown (const char *__file, __uid_t __owner, __gid_t __group) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: extern int fchown (int __fd, __uid_t __owner, __gid_t __group) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int lchown (const char *__file, __uid_t __owner, __gid_t __group) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int fchownat (int __fd, const char *__file, __uid_t __owner, 12329: __gid_t __group, int __flag) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: extern int chdir (const char *__path) noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: extern int fchdir (int __fd) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: # 531 "/usr/include/unistd.h" 3 4 12329: extern char *getcwd (char *__buf, size_t __size) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: extern char *get_current_dir_name (void) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern char *getwd (char *__buf) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__write_only__, 1))); 12329: 12329: 12329: 12329: 12329: extern int dup (int __fd) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: extern int dup2 (int __fd, int __fd2) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int dup3 (int __fd, int __fd2, int __flags) noexcept (true); 12329: 12329: 12329: 12329: extern char **__environ; 12329: 12329: extern char **environ; 12329: 12329: 12329: 12329: 12329: 12329: extern int execve (const char *__path, char *const __argv[], 12329: char *const __envp[]) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: extern int fexecve (int __fd, char *const __argv[], char *const __envp[]) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: 12329: extern int execv (const char *__path, char *const __argv[]) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: extern int execle (const char *__path, const char *__arg, ...) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: extern int execl (const char *__path, const char *__arg, ...) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: extern int execvp (const char *__file, char *const __argv[]) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: extern int execlp (const char *__file, const char *__arg, ...) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: extern int execvpe (const char *__file, char *const __argv[], 12329: char *const __envp[]) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: 12329: extern int nice (int __inc) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern void _exit (int __status) __attribute__ ((__noreturn__)); 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/confname.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/confname.h" 3 4 12329: enum 12329: { 12329: _PC_LINK_MAX, 12329: 12329: _PC_MAX_CANON, 12329: 12329: _PC_MAX_INPUT, 12329: 12329: _PC_NAME_MAX, 12329: 12329: _PC_PATH_MAX, 12329: 12329: _PC_PIPE_BUF, 12329: 12329: _PC_CHOWN_RESTRICTED, 12329: 12329: _PC_NO_TRUNC, 12329: 12329: _PC_VDISABLE, 12329: 12329: _PC_SYNC_IO, 12329: 12329: _PC_ASYNC_IO, 12329: 12329: _PC_PRIO_IO, 12329: 12329: _PC_SOCK_MAXBUF, 12329: 12329: _PC_FILESIZEBITS, 12329: 12329: _PC_REC_INCR_XFER_SIZE, 12329: 12329: _PC_REC_MAX_XFER_SIZE, 12329: 12329: _PC_REC_MIN_XFER_SIZE, 12329: 12329: _PC_REC_XFER_ALIGN, 12329: 12329: _PC_ALLOC_SIZE_MIN, 12329: 12329: _PC_SYMLINK_MAX, 12329: 12329: _PC_2_SYMLINKS 12329: 12329: }; 12329: 12329: 12329: enum 12329: { 12329: _SC_ARG_MAX, 12329: 12329: _SC_CHILD_MAX, 12329: 12329: _SC_CLK_TCK, 12329: 12329: _SC_NGROUPS_MAX, 12329: 12329: _SC_OPEN_MAX, 12329: 12329: _SC_STREAM_MAX, 12329: 12329: _SC_TZNAME_MAX, 12329: 12329: _SC_JOB_CONTROL, 12329: 12329: _SC_SAVED_IDS, 12329: 12329: _SC_REALTIME_SIGNALS, 12329: 12329: _SC_PRIORITY_SCHEDULING, 12329: 12329: _SC_TIMERS, 12329: 12329: _SC_ASYNCHRONOUS_IO, 12329: 12329: _SC_PRIORITIZED_IO, 12329: 12329: _SC_SYNCHRONIZED_IO, 12329: 12329: _SC_FSYNC, 12329: 12329: _SC_MAPPED_FILES, 12329: 12329: _SC_MEMLOCK, 12329: 12329: _SC_MEMLOCK_RANGE, 12329: 12329: _SC_MEMORY_PROTECTION, 12329: 12329: _SC_MESSAGE_PASSING, 12329: 12329: _SC_SEMAPHORES, 12329: 12329: _SC_SHARED_MEMORY_OBJECTS, 12329: 12329: _SC_AIO_LISTIO_MAX, 12329: 12329: _SC_AIO_MAX, 12329: 12329: _SC_AIO_PRIO_DELTA_MAX, 12329: 12329: _SC_DELAYTIMER_MAX, 12329: 12329: _SC_MQ_OPEN_MAX, 12329: 12329: _SC_MQ_PRIO_MAX, 12329: 12329: _SC_VERSION, 12329: 12329: _SC_PAGESIZE, 12329: 12329: 12329: _SC_RTSIG_MAX, 12329: 12329: _SC_SEM_NSEMS_MAX, 12329: 12329: _SC_SEM_VALUE_MAX, 12329: 12329: _SC_SIGQUEUE_MAX, 12329: 12329: _SC_TIMER_MAX, 12329: 12329: 12329: 12329: 12329: _SC_BC_BASE_MAX, 12329: 12329: _SC_BC_DIM_MAX, 12329: 12329: _SC_BC_SCALE_MAX, 12329: 12329: _SC_BC_STRING_MAX, 12329: 12329: _SC_COLL_WEIGHTS_MAX, 12329: 12329: _SC_EQUIV_CLASS_MAX, 12329: 12329: _SC_EXPR_NEST_MAX, 12329: 12329: _SC_LINE_MAX, 12329: 12329: _SC_RE_DUP_MAX, 12329: 12329: _SC_CHARCLASS_NAME_MAX, 12329: 12329: 12329: _SC_2_VERSION, 12329: 12329: _SC_2_C_BIND, 12329: 12329: _SC_2_C_DEV, 12329: 12329: _SC_2_FORT_DEV, 12329: 12329: _SC_2_FORT_RUN, 12329: 12329: _SC_2_SW_DEV, 12329: 12329: _SC_2_LOCALEDEF, 12329: 12329: 12329: _SC_PII, 12329: 12329: _SC_PII_XTI, 12329: 12329: _SC_PII_SOCKET, 12329: 12329: _SC_PII_INTERNET, 12329: 12329: _SC_PII_OSI, 12329: 12329: _SC_POLL, 12329: 12329: _SC_SELECT, 12329: 12329: _SC_UIO_MAXIOV, 12329: 12329: _SC_IOV_MAX = _SC_UIO_MAXIOV, 12329: 12329: _SC_PII_INTERNET_STREAM, 12329: 12329: _SC_PII_INTERNET_DGRAM, 12329: 12329: _SC_PII_OSI_COTS, 12329: 12329: _SC_PII_OSI_CLTS, 12329: 12329: _SC_PII_OSI_M, 12329: 12329: _SC_T_IOV_MAX, 12329: 12329: 12329: 12329: _SC_THREADS, 12329: 12329: _SC_THREAD_SAFE_FUNCTIONS, 12329: 12329: _SC_GETGR_R_SIZE_MAX, 12329: 12329: _SC_GETPW_R_SIZE_MAX, 12329: 12329: _SC_LOGIN_NAME_MAX, 12329: 12329: _SC_TTY_NAME_MAX, 12329: 12329: _SC_THREAD_DESTRUCTOR_ITERATIONS, 12329: 12329: _SC_THREAD_KEYS_MAX, 12329: 12329: _SC_THREAD_STACK_MIN, 12329: 12329: _SC_THREAD_THREADS_MAX, 12329: 12329: _SC_THREAD_ATTR_STACKADDR, 12329: 12329: _SC_THREAD_ATTR_STACKSIZE, 12329: 12329: _SC_THREAD_PRIORITY_SCHEDULING, 12329: 12329: _SC_THREAD_PRIO_INHERIT, 12329: 12329: _SC_THREAD_PRIO_PROTECT, 12329: 12329: _SC_THREAD_PROCESS_SHARED, 12329: 12329: 12329: _SC_NPROCESSORS_CONF, 12329: 12329: _SC_NPROCESSORS_ONLN, 12329: 12329: _SC_PHYS_PAGES, 12329: 12329: _SC_AVPHYS_PAGES, 12329: 12329: _SC_ATEXIT_MAX, 12329: 12329: _SC_PASS_MAX, 12329: 12329: 12329: _SC_XOPEN_VERSION, 12329: 12329: _SC_XOPEN_XCU_VERSION, 12329: 12329: _SC_XOPEN_UNIX, 12329: 12329: _SC_XOPEN_CRYPT, 12329: 12329: _SC_XOPEN_ENH_I18N, 12329: 12329: _SC_XOPEN_SHM, 12329: 12329: 12329: _SC_2_CHAR_TERM, 12329: 12329: _SC_2_C_VERSION, 12329: 12329: _SC_2_UPE, 12329: 12329: 12329: _SC_XOPEN_XPG2, 12329: 12329: _SC_XOPEN_XPG3, 12329: 12329: _SC_XOPEN_XPG4, 12329: 12329: 12329: _SC_CHAR_BIT, 12329: 12329: _SC_CHAR_MAX, 12329: 12329: _SC_CHAR_MIN, 12329: 12329: _SC_INT_MAX, 12329: 12329: _SC_INT_MIN, 12329: 12329: _SC_LONG_BIT, 12329: 12329: _SC_WORD_BIT, 12329: 12329: _SC_MB_LEN_MAX, 12329: 12329: _SC_NZERO, 12329: 12329: _SC_SSIZE_MAX, 12329: 12329: _SC_SCHAR_MAX, 12329: 12329: _SC_SCHAR_MIN, 12329: 12329: _SC_SHRT_MAX, 12329: 12329: _SC_SHRT_MIN, 12329: 12329: _SC_UCHAR_MAX, 12329: 12329: _SC_UINT_MAX, 12329: 12329: _SC_ULONG_MAX, 12329: 12329: _SC_USHRT_MAX, 12329: 12329: 12329: _SC_NL_ARGMAX, 12329: 12329: _SC_NL_LANGMAX, 12329: 12329: _SC_NL_MSGMAX, 12329: 12329: _SC_NL_NMAX, 12329: 12329: _SC_NL_SETMAX, 12329: 12329: _SC_NL_TEXTMAX, 12329: 12329: 12329: _SC_XBS5_ILP32_OFF32, 12329: 12329: _SC_XBS5_ILP32_OFFBIG, 12329: 12329: _SC_XBS5_LP64_OFF64, 12329: 12329: _SC_XBS5_LPBIG_OFFBIG, 12329: 12329: 12329: _SC_XOPEN_LEGACY, 12329: 12329: _SC_XOPEN_REALTIME, 12329: 12329: _SC_XOPEN_REALTIME_THREADS, 12329: 12329: 12329: _SC_ADVISORY_INFO, 12329: 12329: _SC_BARRIERS, 12329: 12329: _SC_BASE, 12329: 12329: _SC_C_LANG_SUPPORT, 12329: 12329: _SC_C_LANG_SUPPORT_R, 12329: 12329: _SC_CLOCK_SELECTION, 12329: 12329: _SC_CPUTIME, 12329: 12329: _SC_THREAD_CPUTIME, 12329: 12329: _SC_DEVICE_IO, 12329: 12329: _SC_DEVICE_SPECIFIC, 12329: 12329: _SC_DEVICE_SPECIFIC_R, 12329: 12329: _SC_FD_MGMT, 12329: 12329: _SC_FIFO, 12329: 12329: _SC_PIPE, 12329: 12329: _SC_FILE_ATTRIBUTES, 12329: 12329: _SC_FILE_LOCKING, 12329: 12329: _SC_FILE_SYSTEM, 12329: 12329: _SC_MONOTONIC_CLOCK, 12329: 12329: _SC_MULTI_PROCESS, 12329: 12329: _SC_SINGLE_PROCESS, 12329: 12329: _SC_NETWORKING, 12329: 12329: _SC_READER_WRITER_LOCKS, 12329: 12329: _SC_SPIN_LOCKS, 12329: 12329: _SC_REGEXP, 12329: 12329: _SC_REGEX_VERSION, 12329: 12329: _SC_SHELL, 12329: 12329: _SC_SIGNALS, 12329: 12329: _SC_SPAWN, 12329: 12329: _SC_SPORADIC_SERVER, 12329: 12329: _SC_THREAD_SPORADIC_SERVER, 12329: 12329: _SC_SYSTEM_DATABASE, 12329: 12329: _SC_SYSTEM_DATABASE_R, 12329: 12329: _SC_TIMEOUTS, 12329: 12329: _SC_TYPED_MEMORY_OBJECTS, 12329: 12329: _SC_USER_GROUPS, 12329: 12329: _SC_USER_GROUPS_R, 12329: 12329: _SC_2_PBS, 12329: 12329: _SC_2_PBS_ACCOUNTING, 12329: 12329: _SC_2_PBS_LOCATE, 12329: 12329: _SC_2_PBS_MESSAGE, 12329: 12329: _SC_2_PBS_TRACK, 12329: 12329: _SC_SYMLOOP_MAX, 12329: 12329: _SC_STREAMS, 12329: 12329: _SC_2_PBS_CHECKPOINT, 12329: 12329: 12329: _SC_V6_ILP32_OFF32, 12329: 12329: _SC_V6_ILP32_OFFBIG, 12329: 12329: _SC_V6_LP64_OFF64, 12329: 12329: _SC_V6_LPBIG_OFFBIG, 12329: 12329: 12329: _SC_HOST_NAME_MAX, 12329: 12329: _SC_TRACE, 12329: 12329: _SC_TRACE_EVENT_FILTER, 12329: 12329: _SC_TRACE_INHERIT, 12329: 12329: _SC_TRACE_LOG, 12329: 12329: 12329: _SC_LEVEL1_ICACHE_SIZE, 12329: 12329: _SC_LEVEL1_ICACHE_ASSOC, 12329: 12329: _SC_LEVEL1_ICACHE_LINESIZE, 12329: 12329: _SC_LEVEL1_DCACHE_SIZE, 12329: 12329: _SC_LEVEL1_DCACHE_ASSOC, 12329: 12329: _SC_LEVEL1_DCACHE_LINESIZE, 12329: 12329: _SC_LEVEL2_CACHE_SIZE, 12329: 12329: _SC_LEVEL2_CACHE_ASSOC, 12329: 12329: _SC_LEVEL2_CACHE_LINESIZE, 12329: 12329: _SC_LEVEL3_CACHE_SIZE, 12329: 12329: _SC_LEVEL3_CACHE_ASSOC, 12329: 12329: _SC_LEVEL3_CACHE_LINESIZE, 12329: 12329: _SC_LEVEL4_CACHE_SIZE, 12329: 12329: _SC_LEVEL4_CACHE_ASSOC, 12329: 12329: _SC_LEVEL4_CACHE_LINESIZE, 12329: 12329: 12329: 12329: _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, 12329: 12329: _SC_RAW_SOCKETS, 12329: 12329: 12329: _SC_V7_ILP32_OFF32, 12329: 12329: _SC_V7_ILP32_OFFBIG, 12329: 12329: _SC_V7_LP64_OFF64, 12329: 12329: _SC_V7_LPBIG_OFFBIG, 12329: 12329: 12329: _SC_SS_REPL_MAX, 12329: 12329: 12329: _SC_TRACE_EVENT_NAME_MAX, 12329: 12329: _SC_TRACE_NAME_MAX, 12329: 12329: _SC_TRACE_SYS_MAX, 12329: 12329: _SC_TRACE_USER_EVENT_MAX, 12329: 12329: 12329: _SC_XOPEN_STREAMS, 12329: 12329: 12329: _SC_THREAD_ROBUST_PRIO_INHERIT, 12329: 12329: _SC_THREAD_ROBUST_PRIO_PROTECT, 12329: 12329: 12329: _SC_MINSIGSTKSZ, 12329: 12329: 12329: _SC_SIGSTKSZ 12329: 12329: }; 12329: 12329: 12329: enum 12329: { 12329: _CS_PATH, 12329: 12329: 12329: _CS_V6_WIDTH_RESTRICTED_ENVS, 12329: 12329: 12329: 12329: _CS_GNU_LIBC_VERSION, 12329: 12329: _CS_GNU_LIBPTHREAD_VERSION, 12329: 12329: 12329: _CS_V5_WIDTH_RESTRICTED_ENVS, 12329: 12329: 12329: 12329: _CS_V7_WIDTH_RESTRICTED_ENVS, 12329: 12329: 12329: 12329: _CS_LFS_CFLAGS = 1000, 12329: 12329: _CS_LFS_LDFLAGS, 12329: 12329: _CS_LFS_LIBS, 12329: 12329: _CS_LFS_LINTFLAGS, 12329: 12329: _CS_LFS64_CFLAGS, 12329: 12329: _CS_LFS64_LDFLAGS, 12329: 12329: _CS_LFS64_LIBS, 12329: 12329: _CS_LFS64_LINTFLAGS, 12329: 12329: 12329: _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, 12329: 12329: _CS_XBS5_ILP32_OFF32_LDFLAGS, 12329: 12329: _CS_XBS5_ILP32_OFF32_LIBS, 12329: 12329: _CS_XBS5_ILP32_OFF32_LINTFLAGS, 12329: 12329: _CS_XBS5_ILP32_OFFBIG_CFLAGS, 12329: 12329: _CS_XBS5_ILP32_OFFBIG_LDFLAGS, 12329: 12329: _CS_XBS5_ILP32_OFFBIG_LIBS, 12329: 12329: _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, 12329: 12329: _CS_XBS5_LP64_OFF64_CFLAGS, 12329: 12329: _CS_XBS5_LP64_OFF64_LDFLAGS, 12329: 12329: _CS_XBS5_LP64_OFF64_LIBS, 12329: 12329: _CS_XBS5_LP64_OFF64_LINTFLAGS, 12329: 12329: _CS_XBS5_LPBIG_OFFBIG_CFLAGS, 12329: 12329: _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, 12329: 12329: _CS_XBS5_LPBIG_OFFBIG_LIBS, 12329: 12329: _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, 12329: 12329: 12329: _CS_POSIX_V6_ILP32_OFF32_CFLAGS, 12329: 12329: _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, 12329: 12329: _CS_POSIX_V6_ILP32_OFF32_LIBS, 12329: 12329: _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, 12329: 12329: _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, 12329: 12329: _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, 12329: 12329: _CS_POSIX_V6_ILP32_OFFBIG_LIBS, 12329: 12329: _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, 12329: 12329: _CS_POSIX_V6_LP64_OFF64_CFLAGS, 12329: 12329: _CS_POSIX_V6_LP64_OFF64_LDFLAGS, 12329: 12329: _CS_POSIX_V6_LP64_OFF64_LIBS, 12329: 12329: _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, 12329: 12329: _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, 12329: 12329: _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, 12329: 12329: _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, 12329: 12329: _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, 12329: 12329: 12329: _CS_POSIX_V7_ILP32_OFF32_CFLAGS, 12329: 12329: _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, 12329: 12329: _CS_POSIX_V7_ILP32_OFF32_LIBS, 12329: 12329: _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, 12329: 12329: _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, 12329: 12329: _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, 12329: 12329: _CS_POSIX_V7_ILP32_OFFBIG_LIBS, 12329: 12329: _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, 12329: 12329: _CS_POSIX_V7_LP64_OFF64_CFLAGS, 12329: 12329: _CS_POSIX_V7_LP64_OFF64_LDFLAGS, 12329: 12329: _CS_POSIX_V7_LP64_OFF64_LIBS, 12329: 12329: _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, 12329: 12329: _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, 12329: 12329: _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, 12329: 12329: _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, 12329: 12329: _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, 12329: 12329: 12329: _CS_V6_ENV, 12329: 12329: _CS_V7_ENV 12329: 12329: }; 12329: # 631 "/usr/include/unistd.h" 2 3 4 12329: 12329: 12329: extern long int pathconf (const char *__path, int __name) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern long int fpathconf (int __fd, int __name) noexcept (true); 12329: 12329: 12329: extern long int sysconf (int __name) noexcept (true); 12329: 12329: 12329: 12329: extern size_t confstr (int __name, char *__buf, size_t __len) noexcept (true) 12329: __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: 12329: 12329: 12329: 12329: extern __pid_t getpid (void) noexcept (true); 12329: 12329: 12329: extern __pid_t getppid (void) noexcept (true); 12329: 12329: 12329: extern __pid_t getpgrp (void) noexcept (true); 12329: 12329: 12329: extern __pid_t __getpgid (__pid_t __pid) noexcept (true); 12329: 12329: extern __pid_t getpgid (__pid_t __pid) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int setpgid (__pid_t __pid, __pid_t __pgid) noexcept (true); 12329: # 682 "/usr/include/unistd.h" 3 4 12329: extern int setpgrp (void) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern __pid_t setsid (void) noexcept (true); 12329: 12329: 12329: 12329: extern __pid_t getsid (__pid_t __pid) noexcept (true); 12329: 12329: 12329: 12329: extern __uid_t getuid (void) noexcept (true); 12329: 12329: 12329: extern __uid_t geteuid (void) noexcept (true); 12329: 12329: 12329: extern __gid_t getgid (void) noexcept (true); 12329: 12329: 12329: extern __gid_t getegid (void) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int getgroups (int __size, __gid_t __list[]) noexcept (true) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__write_only__, 2, 1))); 12329: 12329: 12329: extern int group_member (__gid_t __gid) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int setuid (__uid_t __uid) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int setreuid (__uid_t __ruid, __uid_t __euid) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int seteuid (__uid_t __uid) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int setgid (__gid_t __gid) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int setregid (__gid_t __rgid, __gid_t __egid) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int setegid (__gid_t __gid) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) 12329: noexcept (true); 12329: 12329: 12329: 12329: extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) 12329: noexcept (true); 12329: 12329: 12329: 12329: extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) 12329: noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) 12329: noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern __pid_t fork (void) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern __pid_t vfork (void) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern __pid_t _Fork (void) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern char *ttyname (int __fd) noexcept (true); 12329: 12329: 12329: 12329: extern int ttyname_r (int __fd, char *__buf, size_t __buflen) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: 12329: 12329: 12329: extern int isatty (int __fd) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int ttyslot (void) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int link (const char *__from, const char *__to) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int linkat (int __fromfd, const char *__from, int __tofd, 12329: const char *__to, int __flags) 12329: noexcept (true) __attribute__ ((__nonnull__ (2, 4))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern int symlink (const char *__from, const char *__to) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: extern ssize_t readlink (const char *__restrict __path, 12329: char *__restrict __buf, size_t __len) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: 12329: 12329: 12329: 12329: 12329: extern int symlinkat (const char *__from, int __tofd, 12329: const char *__to) noexcept (true) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: extern ssize_t readlinkat (int __fd, const char *__restrict __path, 12329: char *__restrict __buf, size_t __len) 12329: noexcept (true) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__write_only__, 3, 4))); 12329: 12329: 12329: 12329: extern int unlink (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern int unlinkat (int __fd, const char *__name, int __flag) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: extern int rmdir (const char *__path) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern __pid_t tcgetpgrp (int __fd) noexcept (true); 12329: 12329: 12329: extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern char *getlogin (void); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))) 12329: __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: 12329: 12329: 12329: 12329: extern int setlogin (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/getopt_posix.h" 1 3 4 12329: # 27 "/usr/include/aarch64-linux-gnu/bits/getopt_posix.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/getopt_core.h" 1 3 4 12329: # 28 "/usr/include/aarch64-linux-gnu/bits/getopt_core.h" 3 4 12329: extern "C" { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern char *optarg; 12329: # 50 "/usr/include/aarch64-linux-gnu/bits/getopt_core.h" 3 4 12329: extern int optind; 12329: 12329: 12329: 12329: 12329: extern int opterr; 12329: 12329: 12329: 12329: extern int optopt; 12329: # 91 "/usr/include/aarch64-linux-gnu/bits/getopt_core.h" 3 4 12329: extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) 12329: noexcept (true) __attribute__ ((__nonnull__ (2, 3))); 12329: 12329: } 12329: # 28 "/usr/include/aarch64-linux-gnu/bits/getopt_posix.h" 2 3 4 12329: 12329: extern "C" { 12329: # 49 "/usr/include/aarch64-linux-gnu/bits/getopt_posix.h" 3 4 12329: } 12329: # 904 "/usr/include/unistd.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int gethostname (char *__name, size_t __len) noexcept (true) __attribute__ ((__nonnull__ (1))) 12329: __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int sethostname (const char *__name, size_t __len) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__read_only__, 1, 2))); 12329: 12329: 12329: 12329: extern int sethostid (long int __id) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: extern int getdomainname (char *__name, size_t __len) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: extern int setdomainname (const char *__name, size_t __len) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__read_only__, 1, 2))); 12329: 12329: 12329: 12329: 12329: extern int vhangup (void) noexcept (true); 12329: 12329: 12329: extern int revoke (const char *__file) noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int profil (unsigned short int *__sample_buffer, size_t __size, 12329: size_t __offset, unsigned int __scale) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: extern int acct (const char *__name) noexcept (true); 12329: 12329: 12329: 12329: extern char *getusershell (void) noexcept (true); 12329: extern void endusershell (void) noexcept (true); 12329: extern void setusershell (void) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern int daemon (int __nochdir, int __noclose) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int chroot (const char *__path) noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int fsync (int __fd); 12329: 12329: 12329: 12329: 12329: 12329: extern int syncfs (int __fd) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long int gethostid (void); 12329: 12329: 12329: extern void sync (void) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern int getpagesize (void) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern int getdtablesize (void) noexcept (true); 12329: # 1026 "/usr/include/unistd.h" 3 4 12329: extern int truncate (const char *__file, __off_t __length) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: # 1038 "/usr/include/unistd.h" 3 4 12329: extern int truncate64 (const char *__file, __off64_t __length) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 12329: # 1049 "/usr/include/unistd.h" 3 4 12329: extern int ftruncate (int __fd, __off_t __length) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: # 1059 "/usr/include/unistd.h" 3 4 12329: extern int ftruncate64 (int __fd, __off64_t __length) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: # 1070 "/usr/include/unistd.h" 3 4 12329: extern int brk (void *__addr) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: 12329: 12329: 12329: 12329: 12329: extern void *sbrk (intptr_t __delta) noexcept (true); 12329: # 1091 "/usr/include/unistd.h" 3 4 12329: extern long int syscall (long int __sysno, ...) noexcept (true); 12329: # 1114 "/usr/include/unistd.h" 3 4 12329: extern int lockf (int __fd, int __cmd, __off_t __len) __attribute__ ((__warn_unused_result__)); 12329: # 1124 "/usr/include/unistd.h" 3 4 12329: extern int lockf64 (int __fd, int __cmd, __off64_t __len) __attribute__ ((__warn_unused_result__)); 12329: # 1142 "/usr/include/unistd.h" 3 4 12329: ssize_t copy_file_range (int __infd, __off64_t *__pinoff, 12329: int __outfd, __off64_t *__poutoff, 12329: size_t __length, unsigned int __flags); 12329: 12329: 12329: 12329: 12329: 12329: extern int fdatasync (int __fildes); 12329: # 1159 "/usr/include/unistd.h" 3 4 12329: extern char *crypt (const char *__key, const char *__salt) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern void swab (const void *__restrict __from, void *__restrict __to, 12329: ssize_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))) 12329: __attribute__ ((__access__ (__read_only__, 1, 3))) 12329: __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: # 1198 "/usr/include/unistd.h" 3 4 12329: int getentropy (void *__buffer, size_t __length) __attribute__ ((__warn_unused_result__)) 12329: __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: # 1208 "/usr/include/unistd.h" 3 4 12329: extern int close_range (unsigned int __fd, unsigned int __max_fd, 12329: int __flags) noexcept (true); 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/unistd.h" 1 3 4 12329: # 23 "/usr/include/aarch64-linux-gnu/bits/unistd.h" 3 4 12329: extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes, 12329: size_t __buflen) 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read") 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern ssize_t __read_chk_warn (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("" "__read_chk") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("read called with bigger length than size of " "the destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t 12329: read (int __fd, void *__buf, size_t __nbytes) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__buf, 0)) && (__builtin_object_size (__buf, 0)) == (long unsigned int) -1) || (((__typeof (__nbytes)) 0 < (__typeof (__nbytes)) -1 || (__builtin_constant_p (__nbytes) && (__nbytes) > 0)) && __builtin_constant_p ((((long unsigned int) (__nbytes)) <= ((__builtin_object_size (__buf, 0))) / ((sizeof (char))))) && (((long unsigned int) (__nbytes)) <= ((__builtin_object_size (__buf, 0))) / ((sizeof (char)))))) ? __read_alias (__fd, __buf, __nbytes) : ((((__typeof (__nbytes)) 0 < (__typeof (__nbytes)) -1 || (__builtin_constant_p (__nbytes) && (__nbytes) > 0)) && __builtin_constant_p ((((long unsigned int) (__nbytes)) <= (__builtin_object_size (__buf, 0)) / (sizeof (char)))) && !(((long unsigned int) (__nbytes)) <= (__builtin_object_size (__buf, 0)) / (sizeof (char)))) ? __read_chk_warn (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)) : __read_chk (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)))) 12329: 12329: ; 12329: } 12329: 12329: 12329: extern ssize_t __pread_chk (int __fd, void *__buf, size_t __nbytes, 12329: __off_t __offset, size_t __bufsize) 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern ssize_t __pread64_chk (int __fd, void *__buf, size_t __nbytes, 12329: __off64_t __offset, size_t __bufsize) 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern ssize_t __pread_alias (int __fd, void *__buf, size_t __nbytes, __off_t __offset) __asm__ ("" "pread") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern ssize_t __pread64_alias (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern ssize_t __pread_chk_warn (int __fd, void *__buf, size_t __nbytes, __off_t __offset, size_t __bufsize) __asm__ ("" "__pread_chk") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread called with bigger length than size of " "the destination buffer"))) 12329: ; 12329: extern ssize_t __pread64_chk_warn (int __fd, void *__buf, size_t __nbytes, __off64_t __offset, size_t __bufsize) __asm__ ("" "__pread64_chk") 12329: 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread64 called with bigger length than size of " "the destination buffer"))) 12329: ; 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t 12329: pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__buf, 0)) && (__builtin_object_size (__buf, 0)) == (long unsigned int) -1) || (((__typeof (__nbytes)) 0 < (__typeof (__nbytes)) -1 || (__builtin_constant_p (__nbytes) && (__nbytes) > 0)) && __builtin_constant_p ((((long unsigned int) (__nbytes)) <= ((__builtin_object_size (__buf, 0))) / ((sizeof (char))))) && (((long unsigned int) (__nbytes)) <= ((__builtin_object_size (__buf, 0))) / ((sizeof (char)))))) ? __pread_alias (__fd, __buf, __nbytes, __offset) : ((((__typeof (__nbytes)) 0 < (__typeof (__nbytes)) -1 || (__builtin_constant_p (__nbytes) && (__nbytes) > 0)) && __builtin_constant_p ((((long unsigned int) (__nbytes)) <= (__builtin_object_size (__buf, 0)) / (sizeof (char)))) && !(((long unsigned int) (__nbytes)) <= (__builtin_object_size (__buf, 0)) / (sizeof (char)))) ? __pread_chk_warn (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)) : __pread_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)))) 12329: 12329: ; 12329: } 12329: # 89 "/usr/include/aarch64-linux-gnu/bits/unistd.h" 3 4 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t 12329: pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__buf, 0)) && (__builtin_object_size (__buf, 0)) == (long unsigned int) -1) || (((__typeof (__nbytes)) 0 < (__typeof (__nbytes)) -1 || (__builtin_constant_p (__nbytes) && (__nbytes) > 0)) && __builtin_constant_p ((((long unsigned int) (__nbytes)) <= ((__builtin_object_size (__buf, 0))) / ((sizeof (char))))) && (((long unsigned int) (__nbytes)) <= ((__builtin_object_size (__buf, 0))) / ((sizeof (char)))))) ? __pread64_alias (__fd, __buf, __nbytes, __offset) : ((((__typeof (__nbytes)) 0 < (__typeof (__nbytes)) -1 || (__builtin_constant_p (__nbytes) && (__nbytes) > 0)) && __builtin_constant_p ((((long unsigned int) (__nbytes)) <= (__builtin_object_size (__buf, 0)) / (sizeof (char)))) && !(((long unsigned int) (__nbytes)) <= (__builtin_object_size (__buf, 0)) / (sizeof (char)))) ? __pread64_chk_warn (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)) : __pread64_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)))) 12329: 12329: ; 12329: } 12329: 12329: 12329: 12329: 12329: extern ssize_t __readlink_chk (const char *__restrict __path, 12329: char *__restrict __buf, size_t __len, 12329: size_t __buflen) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern ssize_t __readlink_alias (const char *__restrict __path, char *__restrict __buf, size_t __len) noexcept (true) __asm__ ("" "readlink") 12329: 12329: 12329: __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern ssize_t __readlink_chk_warn (const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) noexcept (true) __asm__ ("" "__readlink_chk") 12329: 12329: 12329: 12329: __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlink called with bigger length " "than size of destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) ssize_t 12329: __attribute__ ((__leaf__)) readlink (const char *__restrict __path, char *__restrict __buf, size_t __len) noexcept (true) 12329: 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__buf, 2 > 1)) && (__builtin_object_size (__buf, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char))))) && (((long unsigned int) (__len)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char)))))) ? __readlink_alias (__path, __buf, __len) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) && !(((long unsigned int) (__len)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) ? __readlink_chk_warn (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)) : __readlink_chk (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)))) 12329: 12329: ; 12329: } 12329: 12329: 12329: 12329: extern ssize_t __readlinkat_chk (int __fd, const char *__restrict __path, 12329: char *__restrict __buf, size_t __len, 12329: size_t __buflen) 12329: noexcept (true) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 3, 4))); 12329: extern ssize_t __readlinkat_alias (int __fd, const char *__restrict __path, char *__restrict __buf, size_t __len) noexcept (true) __asm__ ("" "readlinkat") 12329: 12329: 12329: 12329: __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 3, 4))); 12329: extern ssize_t __readlinkat_chk_warn (int __fd, const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) noexcept (true) __asm__ ("" "__readlinkat_chk") 12329: 12329: 12329: 12329: __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlinkat called with bigger " "length than size of destination " "buffer"))) 12329: 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) ssize_t 12329: __attribute__ ((__leaf__)) readlinkat (int __fd, const char *__restrict __path, char *__restrict __buf, size_t __len) noexcept (true) 12329: 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__buf, 2 > 1)) && (__builtin_object_size (__buf, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char))))) && (((long unsigned int) (__len)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char)))))) ? __readlinkat_alias (__fd, __path, __buf, __len) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) && !(((long unsigned int) (__len)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) ? __readlinkat_chk_warn (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1)) : __readlinkat_chk (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1)))) 12329: 12329: ; 12329: } 12329: 12329: 12329: extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen) 12329: noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: extern char *__getcwd_alias (char *__buf, size_t __size) noexcept (true) __asm__ ("" "getcwd") 12329: __attribute__ ((__warn_unused_result__)); 12329: extern char *__getcwd_chk_warn (char *__buf, size_t __size, size_t __buflen) noexcept (true) __asm__ ("" "__getcwd_chk") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getcwd caller with bigger length than size of " "destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 12329: __attribute__ ((__leaf__)) getcwd (char *__buf, size_t __size) noexcept (true) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__buf, 2 > 1)) && (__builtin_object_size (__buf, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__size)) 0 < (__typeof (__size)) -1 || (__builtin_constant_p (__size) && (__size) > 0)) && __builtin_constant_p ((((long unsigned int) (__size)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char))))) && (((long unsigned int) (__size)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char)))))) ? __getcwd_alias (__buf, __size) : ((((__typeof (__size)) 0 < (__typeof (__size)) -1 || (__builtin_constant_p (__size) && (__size) > 0)) && __builtin_constant_p ((((long unsigned int) (__size)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) && !(((long unsigned int) (__size)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) ? __getcwd_chk_warn (__buf, __size, __builtin_object_size (__buf, 2 > 1)) : __getcwd_chk (__buf, __size, __builtin_object_size (__buf, 2 > 1)))) 12329: 12329: ; 12329: } 12329: 12329: 12329: extern char *__getwd_chk (char *__buf, size_t buflen) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: extern char *__getwd_warn (char *__buf) noexcept (true) __asm__ ("" "getwd") 12329: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use getcwd instead, as getwd " "doesn't specify buffer size"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) char * 12329: __attribute__ ((__leaf__)) getwd (char *__buf) noexcept (true) 12329: { 12329: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 12329: return __getwd_chk (__buf, __builtin_object_size (__buf, 2 > 1)); 12329: return __getwd_warn (__buf); 12329: } 12329: 12329: 12329: extern size_t __confstr_chk (int __name, char *__buf, size_t __len, 12329: size_t __buflen) noexcept (true) 12329: __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern size_t __confstr_alias (int __name, char *__buf, size_t __len) noexcept (true) __asm__ ("" "confstr") 12329: 12329: __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern size_t __confstr_chk_warn (int __name, char *__buf, size_t __len, size_t __buflen) noexcept (true) __asm__ ("" "__confstr_chk") 12329: 12329: 12329: __attribute__((__warning__ ("confstr called with bigger length than size of destination " "buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 12329: __attribute__ ((__leaf__)) confstr (int __name, char *__buf, size_t __len) noexcept (true) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__buf, 2 > 1)) && (__builtin_object_size (__buf, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char))))) && (((long unsigned int) (__len)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char)))))) ? __confstr_alias (__name, __buf, __len) : ((((__typeof (__len)) 0 < (__typeof (__len)) -1 || (__builtin_constant_p (__len) && (__len) > 0)) && __builtin_constant_p ((((long unsigned int) (__len)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) && !(((long unsigned int) (__len)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) ? __confstr_chk_warn (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)) : __confstr_chk (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)))) 12329: 12329: ; 12329: } 12329: 12329: 12329: extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen) 12329: noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 2, 1))); 12329: extern int __getgroups_alias (int __size, __gid_t __list[]) noexcept (true) __asm__ ("" "getgroups") 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 2, 1))); 12329: extern int __getgroups_chk_warn (int __size, __gid_t __list[], size_t __listlen) noexcept (true) __asm__ ("" "__getgroups_chk") 12329: 12329: 12329: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getgroups called with bigger group count than what " "can fit into destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) getgroups (int __size, __gid_t __list[]) noexcept (true) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__list, 2 > 1)) && (__builtin_object_size (__list, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__size)) 0 < (__typeof (__size)) -1 || (__builtin_constant_p (__size) && (__size) > 0)) && __builtin_constant_p ((((long unsigned int) (__size)) <= ((__builtin_object_size (__list, 2 > 1))) / ((sizeof (__gid_t))))) && (((long unsigned int) (__size)) <= ((__builtin_object_size (__list, 2 > 1))) / ((sizeof (__gid_t)))))) ? __getgroups_alias (__size, __list) : ((((__typeof (__size)) 0 < (__typeof (__size)) -1 || (__builtin_constant_p (__size) && (__size) > 0)) && __builtin_constant_p ((((long unsigned int) (__size)) <= (__builtin_object_size (__list, 2 > 1)) / (sizeof (__gid_t)))) && !(((long unsigned int) (__size)) <= (__builtin_object_size (__list, 2 > 1)) / (sizeof (__gid_t)))) ? __getgroups_chk_warn (__size, __list, __builtin_object_size (__list, 2 > 1)) : __getgroups_chk (__size, __list, __builtin_object_size (__list, 2 > 1)))) 12329: 12329: ; 12329: } 12329: 12329: 12329: extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen, 12329: size_t __nreal) noexcept (true) __attribute__ ((__nonnull__ (2))) 12329: __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) noexcept (true) __asm__ ("" "ttyname_r") 12329: 12329: __attribute__ ((__nonnull__ (2))); 12329: extern int __ttyname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) noexcept (true) __asm__ ("" "__ttyname_r_chk") 12329: 12329: 12329: __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ttyname_r called with bigger buflen than " "size of destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) ttyname_r (int __fd, char *__buf, size_t __buflen) noexcept (true) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__buf, 2 > 1)) && (__builtin_object_size (__buf, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__buflen)) 0 < (__typeof (__buflen)) -1 || (__builtin_constant_p (__buflen) && (__buflen) > 0)) && __builtin_constant_p ((((long unsigned int) (__buflen)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char))))) && (((long unsigned int) (__buflen)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char)))))) ? __ttyname_r_alias (__fd, __buf, __buflen) : ((((__typeof (__buflen)) 0 < (__typeof (__buflen)) -1 || (__builtin_constant_p (__buflen) && (__buflen) > 0)) && __builtin_constant_p ((((long unsigned int) (__buflen)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) && !(((long unsigned int) (__buflen)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) ? __ttyname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)) : __ttyname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)))) 12329: 12329: ; 12329: } 12329: 12329: 12329: 12329: extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal) 12329: __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r") 12329: __attribute__ ((__nonnull__ (1))); 12329: extern int __getlogin_r_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getlogin_r_chk") 12329: 12329: 12329: __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("getlogin_r called with bigger buflen than " "size of destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: getlogin_r (char *__buf, size_t __buflen) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__buf, 2 > 1)) && (__builtin_object_size (__buf, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__buflen)) 0 < (__typeof (__buflen)) -1 || (__builtin_constant_p (__buflen) && (__buflen) > 0)) && __builtin_constant_p ((((long unsigned int) (__buflen)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char))))) && (((long unsigned int) (__buflen)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char)))))) ? __getlogin_r_alias (__buf, __buflen) : ((((__typeof (__buflen)) 0 < (__typeof (__buflen)) -1 || (__builtin_constant_p (__buflen) && (__buflen) > 0)) && __builtin_constant_p ((((long unsigned int) (__buflen)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) && !(((long unsigned int) (__buflen)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) ? __getlogin_r_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)) : __getlogin_r_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)))) 12329: 12329: ; 12329: } 12329: 12329: 12329: 12329: 12329: extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: extern int __gethostname_alias (char *__buf, size_t __buflen) noexcept (true) __asm__ ("" "gethostname") 12329: 12329: __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: extern int __gethostname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) noexcept (true) __asm__ ("" "__gethostname_chk") 12329: 12329: 12329: __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("gethostname called with bigger buflen than " "size of destination buffer"))) 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) gethostname (char *__buf, size_t __buflen) noexcept (true) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__buf, 2 > 1)) && (__builtin_object_size (__buf, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__buflen)) 0 < (__typeof (__buflen)) -1 || (__builtin_constant_p (__buflen) && (__buflen) > 0)) && __builtin_constant_p ((((long unsigned int) (__buflen)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char))))) && (((long unsigned int) (__buflen)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char)))))) ? __gethostname_alias (__buf, __buflen) : ((((__typeof (__buflen)) 0 < (__typeof (__buflen)) -1 || (__builtin_constant_p (__buflen) && (__buflen) > 0)) && __builtin_constant_p ((((long unsigned int) (__buflen)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) && !(((long unsigned int) (__buflen)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) ? __gethostname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)) : __gethostname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)))) 12329: 12329: ; 12329: } 12329: 12329: 12329: 12329: 12329: extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: extern int __getdomainname_alias (char *__buf, size_t __buflen) noexcept (true) __asm__ ("" "getdomainname") 12329: 12329: __attribute__ ((__nonnull__ (1))) 12329: __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: extern int __getdomainname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) noexcept (true) __asm__ ("" "__getdomainname_chk") 12329: 12329: 12329: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getdomainname called with bigger " "buflen than size of destination " "buffer"))) 12329: 12329: ; 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 12329: __attribute__ ((__leaf__)) getdomainname (char *__buf, size_t __buflen) noexcept (true) 12329: { 12329: return (((__builtin_constant_p (__builtin_object_size (__buf, 2 > 1)) && (__builtin_object_size (__buf, 2 > 1)) == (long unsigned int) -1) || (((__typeof (__buflen)) 0 < (__typeof (__buflen)) -1 || (__builtin_constant_p (__buflen) && (__buflen) > 0)) && __builtin_constant_p ((((long unsigned int) (__buflen)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char))))) && (((long unsigned int) (__buflen)) <= ((__builtin_object_size (__buf, 2 > 1))) / ((sizeof (char)))))) ? __getdomainname_alias (__buf, __buflen) : ((((__typeof (__buflen)) 0 < (__typeof (__buflen)) -1 || (__builtin_constant_p (__buflen) && (__buflen) > 0)) && __builtin_constant_p ((((long unsigned int) (__buflen)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) && !(((long unsigned int) (__buflen)) <= (__builtin_object_size (__buf, 2 > 1)) / (sizeof (char)))) ? __getdomainname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)) : __getdomainname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)))) 12329: 12329: ; 12329: } 12329: # 1215 "/usr/include/unistd.h" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/unistd_ext.h" 1 3 4 12329: # 34 "/usr/include/aarch64-linux-gnu/bits/unistd_ext.h" 3 4 12329: extern __pid_t gettid (void) noexcept (true); 12329: 12329: 12329: 12329: # 1 "/usr/include/linux/close_range.h" 1 3 4 12329: # 39 "/usr/include/aarch64-linux-gnu/bits/unistd_ext.h" 2 3 4 12329: # 1219 "/usr/include/unistd.h" 2 3 4 12329: 12329: } 12329: # 79 "/usr/include/boost/config/stdlib/libstdcpp3.hpp" 2 3 4 12329: # 49 "/usr/include/boost/config.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/config/detail/select_platform_config.hpp" 1 3 4 12329: # 54 "/usr/include/boost/config.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/config/platform/linux.hpp" 1 3 4 12329: # 15 "/usr/include/boost/config/platform/linux.hpp" 3 4 12329: # 1 "/usr/include/c++/12/cstdlib" 1 3 4 12329: # 39 "/usr/include/c++/12/cstdlib" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cstdlib" 3 12329: # 16 "/usr/include/boost/config/platform/linux.hpp" 2 3 4 12329: # 75 "/usr/include/boost/config/platform/linux.hpp" 3 4 12329: # 1 "/usr/include/boost/config/detail/posix_features.hpp" 1 3 4 12329: # 76 "/usr/include/boost/config/platform/linux.hpp" 2 3 4 12329: # 58 "/usr/include/boost/config.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/config/detail/suffix.hpp" 1 3 4 12329: # 34 "/usr/include/boost/config/detail/suffix.hpp" 3 4 12329: 12329: # 35 "/usr/include/boost/config/detail/suffix.hpp" 3 12329: # 484 "/usr/include/boost/config/detail/suffix.hpp" 3 12329: namespace boost{ 12329: 12329: __extension__ typedef long long long_long_type; 12329: __extension__ typedef unsigned long long ulong_long_type; 12329: 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: namespace boost{ 12329: 12329: __extension__ typedef __int128 int128_type; 12329: __extension__ typedef unsigned __int128 uint128_type; 12329: 12329: 12329: 12329: 12329: } 12329: # 543 "/usr/include/boost/config/detail/suffix.hpp" 3 12329: # 1 "/usr/include/boost/config/helper_macros.hpp" 1 3 4 12329: # 544 "/usr/include/boost/config/detail/suffix.hpp" 2 3 12329: # 62 "/usr/include/boost/config.hpp" 2 3 4 12329: 12329: 12329: 12329: # 11 "/usr/include/boost/program_options/config.hpp" 2 3 4 12329: # 1 "/usr/include/boost/version.hpp" 1 3 4 12329: # 12 "/usr/include/boost/program_options/config.hpp" 2 3 4 12329: # 30 "/usr/include/boost/program_options/config.hpp" 3 4 12329: # 1 "/usr/include/boost/config/auto_link.hpp" 1 3 4 12329: # 31 "/usr/include/boost/program_options/config.hpp" 2 3 4 12329: # 12 "/usr/include/boost/program_options/options_description.hpp" 2 3 4 12329: # 1 "/usr/include/boost/program_options/errors.hpp" 1 3 4 12329: # 13 "/usr/include/boost/program_options/errors.hpp" 3 4 12329: # 1 "/usr/include/c++/12/stdexcept" 1 3 4 12329: # 36 "/usr/include/c++/12/stdexcept" 3 4 12329: 12329: # 37 "/usr/include/c++/12/stdexcept" 3 12329: 12329: # 1 "/usr/include/c++/12/exception" 1 3 12329: # 33 "/usr/include/c++/12/exception" 3 12329: 12329: # 34 "/usr/include/c++/12/exception" 3 12329: 12329: #pragma GCC visibility push(default) 12329: 12329: 12329: 12329: 12329: extern "C++" { 12329: 12329: namespace std 12329: { 12329: # 53 "/usr/include/c++/12/exception" 3 12329: class bad_exception : public exception 12329: { 12329: public: 12329: bad_exception() noexcept { } 12329: 12329: 12329: 12329: virtual ~bad_exception() noexcept; 12329: 12329: 12329: virtual const char* 12329: what() const noexcept; 12329: }; 12329: 12329: 12329: typedef void (*terminate_handler) (); 12329: 12329: 12329: terminate_handler set_terminate(terminate_handler) noexcept; 12329: 12329: 12329: 12329: terminate_handler get_terminate() noexcept; 12329: 12329: 12329: 12329: 12329: void terminate() noexcept __attribute__ ((__noreturn__)); 12329: 12329: 12329: 12329: typedef void (*__attribute__ ((__deprecated__)) unexpected_handler) (); 12329: 12329: 12329: 12329: 12329: 12329: __attribute__ ((__deprecated__)) 12329: unexpected_handler set_unexpected(unexpected_handler) noexcept; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: __attribute__ ((__deprecated__)) 12329: unexpected_handler get_unexpected() noexcept; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: __attribute__ ((__deprecated__)) 12329: void unexpected() __attribute__ ((__noreturn__)); 12329: # 123 "/usr/include/c++/12/exception" 3 12329: 12329: bool uncaught_exception() noexcept __attribute__ ((__pure__)); 12329: # 136 "/usr/include/c++/12/exception" 3 12329: } 12329: 12329: namespace __gnu_cxx 12329: { 12329: 12329: # 158 "/usr/include/c++/12/exception" 3 12329: void __verbose_terminate_handler(); 12329: 12329: 12329: } 12329: 12329: } 12329: 12329: #pragma GCC visibility pop 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/exception_ptr.h" 1 3 12329: # 34 "/usr/include/c++/12/bits/exception_ptr.h" 3 12329: #pragma GCC visibility push(default) 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/cxxabi_init_exception.h" 1 3 12329: # 34 "/usr/include/c++/12/bits/cxxabi_init_exception.h" 3 12329: 12329: # 35 "/usr/include/c++/12/bits/cxxabi_init_exception.h" 3 12329: 12329: #pragma GCC visibility push(default) 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 39 "/usr/include/c++/12/bits/cxxabi_init_exception.h" 2 3 12329: # 50 "/usr/include/c++/12/bits/cxxabi_init_exception.h" 3 12329: namespace std 12329: { 12329: class type_info; 12329: } 12329: 12329: namespace __cxxabiv1 12329: { 12329: struct __cxa_refcounted_exception; 12329: 12329: extern "C" 12329: { 12329: 12329: void* 12329: __cxa_allocate_exception(size_t) noexcept; 12329: 12329: void 12329: __cxa_free_exception(void*) noexcept; 12329: 12329: 12329: __cxa_refcounted_exception* 12329: __cxa_init_primary_exception(void *object, std::type_info *tinfo, 12329: void ( *dest) (void *)) noexcept; 12329: 12329: } 12329: } 12329: 12329: 12329: 12329: #pragma GCC visibility pop 12329: # 39 "/usr/include/c++/12/bits/exception_ptr.h" 2 3 12329: # 1 "/usr/include/c++/12/typeinfo" 1 3 12329: # 32 "/usr/include/c++/12/typeinfo" 3 12329: 12329: # 33 "/usr/include/c++/12/typeinfo" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: #pragma GCC visibility push(default) 12329: 12329: 12329: 12329: 12329: 12329: extern "C++" { 12329: 12329: namespace __cxxabiv1 12329: { 12329: class __class_type_info; 12329: } 12329: # 84 "/usr/include/c++/12/typeinfo" 3 12329: namespace std 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: class type_info 12329: { 12329: public: 12329: 12329: 12329: 12329: 12329: virtual ~type_info(); 12329: 12329: 12329: 12329: const char* name() const noexcept 12329: { return __name[0] == '*' ? __name + 1 : __name; } 12329: 12329: 12329: 12329: bool before(const type_info& __arg) const noexcept; 12329: 12329: 12329: bool operator==(const type_info& __arg) const noexcept; 12329: 12329: 12329: bool operator!=(const type_info& __arg) const noexcept 12329: { return !operator==(__arg); } 12329: 12329: 12329: 12329: size_t hash_code() const noexcept 12329: { 12329: 12329: return _Hash_bytes(name(), __builtin_strlen(name()), 12329: static_cast(0xc70f6907UL)); 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: virtual bool __is_pointer_p() const; 12329: 12329: 12329: virtual bool __is_function_p() const; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, 12329: unsigned __outer) const; 12329: 12329: 12329: virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, 12329: void **__obj_ptr) const; 12329: 12329: protected: 12329: const char *__name; 12329: 12329: explicit type_info(const char *__n): __name(__n) { } 12329: 12329: private: 12329: 12329: 12329: type_info& operator=(const type_info&) = delete; 12329: type_info(const type_info&) = delete; 12329: # 167 "/usr/include/c++/12/typeinfo" 3 12329: }; 12329: 12329: 12329: inline bool 12329: type_info::before(const type_info& __arg) const noexcept 12329: { 12329: 12329: 12329: 12329: 12329: if (__name[0] != '*' || __arg.__name[0] != '*') 12329: return __builtin_strcmp (__name, __arg.__name) < 0; 12329: # 187 "/usr/include/c++/12/typeinfo" 3 12329: return __name < __arg.__name; 12329: } 12329: 12329: 12329: 12329: inline bool 12329: type_info::operator==(const type_info& __arg) const noexcept 12329: { 12329: if (std::__is_constant_evaluated()) 12329: return this == &__arg; 12329: 12329: if (__name == __arg.__name) 12329: return true; 12329: 12329: 12329: 12329: 12329: 12329: 12329: return __name[0] != '*' && __builtin_strcmp (__name, __arg.name()) == 0; 12329: 12329: 12329: 12329: } 12329: # 220 "/usr/include/c++/12/typeinfo" 3 12329: class bad_cast : public exception 12329: { 12329: public: 12329: bad_cast() noexcept { } 12329: 12329: 12329: 12329: virtual ~bad_cast() noexcept; 12329: 12329: 12329: virtual const char* what() const noexcept; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: class bad_typeid : public exception 12329: { 12329: public: 12329: bad_typeid () noexcept { } 12329: 12329: 12329: 12329: virtual ~bad_typeid() noexcept; 12329: 12329: 12329: virtual const char* what() const noexcept; 12329: }; 12329: } 12329: 12329: } 12329: 12329: #pragma GCC visibility pop 12329: # 40 "/usr/include/c++/12/bits/exception_ptr.h" 2 3 12329: # 52 "/usr/include/c++/12/bits/exception_ptr.h" 3 12329: extern "C++" { 12329: 12329: namespace std 12329: { 12329: class type_info; 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace __exception_ptr 12329: { 12329: class exception_ptr; 12329: } 12329: 12329: using __exception_ptr::exception_ptr; 12329: 12329: 12329: 12329: 12329: 12329: exception_ptr current_exception() noexcept; 12329: 12329: template 12329: exception_ptr make_exception_ptr(_Ex) noexcept; 12329: 12329: 12329: void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); 12329: 12329: namespace __exception_ptr 12329: { 12329: using std::rethrow_exception; 12329: 12329: 12329: 12329: 12329: 12329: class exception_ptr 12329: { 12329: void* _M_exception_object; 12329: 12329: explicit exception_ptr(void* __e) noexcept; 12329: 12329: void _M_addref() noexcept; 12329: void _M_release() noexcept; 12329: 12329: void *_M_get() const noexcept __attribute__ ((__pure__)); 12329: 12329: friend exception_ptr std::current_exception() noexcept; 12329: friend void std::rethrow_exception(exception_ptr); 12329: template 12329: friend exception_ptr std::make_exception_ptr(_Ex) noexcept; 12329: 12329: public: 12329: exception_ptr() noexcept; 12329: 12329: exception_ptr(const exception_ptr&) noexcept; 12329: 12329: 12329: exception_ptr(nullptr_t) noexcept 12329: : _M_exception_object(nullptr) 12329: { } 12329: 12329: exception_ptr(exception_ptr&& __o) noexcept 12329: : _M_exception_object(__o._M_exception_object) 12329: { __o._M_exception_object = nullptr; } 12329: # 128 "/usr/include/c++/12/bits/exception_ptr.h" 3 12329: exception_ptr& 12329: operator=(const exception_ptr&) noexcept; 12329: 12329: 12329: exception_ptr& 12329: operator=(exception_ptr&& __o) noexcept 12329: { 12329: exception_ptr(static_cast(__o)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: ~exception_ptr() noexcept; 12329: 12329: void 12329: swap(exception_ptr&) noexcept; 12329: # 155 "/usr/include/c++/12/bits/exception_ptr.h" 3 12329: explicit operator bool() const noexcept 12329: { return _M_exception_object; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: friend bool 12329: operator==(const exception_ptr& __x, const exception_ptr& __y) 12329: noexcept 12329: { return __x._M_exception_object == __y._M_exception_object; } 12329: 12329: friend bool 12329: operator!=(const exception_ptr& __x, const exception_ptr& __y) 12329: noexcept 12329: { return __x._M_exception_object != __y._M_exception_object; } 12329: 12329: 12329: const class std::type_info* 12329: __cxa_exception_type() const noexcept 12329: __attribute__ ((__pure__)); 12329: }; 12329: 12329: 12329: inline 12329: exception_ptr::exception_ptr() noexcept 12329: : _M_exception_object(0) 12329: { } 12329: 12329: 12329: inline 12329: exception_ptr::exception_ptr(const exception_ptr& __other) 12329: noexcept 12329: : _M_exception_object(__other._M_exception_object) 12329: { 12329: if (_M_exception_object) 12329: _M_addref(); 12329: } 12329: 12329: 12329: inline 12329: exception_ptr::~exception_ptr() noexcept 12329: { 12329: if (_M_exception_object) 12329: _M_release(); 12329: } 12329: 12329: 12329: inline exception_ptr& 12329: exception_ptr::operator=(const exception_ptr& __other) noexcept 12329: { 12329: exception_ptr(__other).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: inline void 12329: exception_ptr::swap(exception_ptr &__other) noexcept 12329: { 12329: void *__tmp = _M_exception_object; 12329: _M_exception_object = __other._M_exception_object; 12329: __other._M_exception_object = __tmp; 12329: } 12329: 12329: 12329: inline void 12329: swap(exception_ptr& __lhs, exception_ptr& __rhs) 12329: { __lhs.swap(__rhs); } 12329: 12329: 12329: template 12329: 12329: inline void 12329: __dest_thunk(void* __x) 12329: { static_cast<_Ex*>(__x)->~_Ex(); } 12329: 12329: 12329: } 12329: 12329: 12329: 12329: template 12329: exception_ptr 12329: make_exception_ptr(_Ex __ex) noexcept 12329: { 12329: 12329: using _Ex2 = typename decay<_Ex>::type; 12329: void* __e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); 12329: (void) __cxxabiv1::__cxa_init_primary_exception( 12329: __e, const_cast(&typeid(_Ex)), 12329: __exception_ptr::__dest_thunk<_Ex2>); 12329: try 12329: { 12329: ::new (__e) _Ex2(__ex); 12329: return exception_ptr(__e); 12329: } 12329: catch(...) 12329: { 12329: __cxxabiv1::__cxa_free_exception(__e); 12329: return current_exception(); 12329: } 12329: # 268 "/usr/include/c++/12/bits/exception_ptr.h" 3 12329: } 12329: # 282 "/usr/include/c++/12/bits/exception_ptr.h" 3 12329: } 12329: 12329: } 12329: 12329: #pragma GCC visibility pop 12329: # 169 "/usr/include/c++/12/exception" 2 3 12329: # 1 "/usr/include/c++/12/bits/nested_exception.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/nested_exception.h" 3 12329: #pragma GCC visibility push(default) 12329: # 42 "/usr/include/c++/12/bits/nested_exception.h" 3 12329: extern "C++" { 12329: 12329: namespace std 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: class nested_exception 12329: { 12329: exception_ptr _M_ptr; 12329: 12329: public: 12329: nested_exception() noexcept : _M_ptr(current_exception()) { } 12329: 12329: nested_exception(const nested_exception&) noexcept = default; 12329: 12329: nested_exception& operator=(const nested_exception&) noexcept = default; 12329: 12329: virtual ~nested_exception() noexcept; 12329: 12329: [[noreturn]] 12329: void 12329: rethrow_nested() const 12329: { 12329: if (_M_ptr) 12329: rethrow_exception(_M_ptr); 12329: std::terminate(); 12329: } 12329: 12329: exception_ptr 12329: nested_ptr() const noexcept 12329: { return _M_ptr; } 12329: }; 12329: 12329: 12329: 12329: template 12329: struct _Nested_exception : public _Except, public nested_exception 12329: { 12329: explicit _Nested_exception(const _Except& __ex) 12329: : _Except(__ex) 12329: { } 12329: 12329: explicit _Nested_exception(_Except&& __ex) 12329: : _Except(static_cast<_Except&&>(__ex)) 12329: { } 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: [[noreturn]] 12329: inline void 12329: __throw_with_nested_impl(_Tp&& __t, true_type) 12329: { 12329: using _Up = typename remove_reference<_Tp>::type; 12329: throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; 12329: } 12329: 12329: template 12329: [[noreturn]] 12329: inline void 12329: __throw_with_nested_impl(_Tp&& __t, false_type) 12329: { throw std::forward<_Tp>(__t); } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: [[noreturn]] 12329: inline void 12329: throw_with_nested(_Tp&& __t) 12329: { 12329: using _Up = typename decay<_Tp>::type; 12329: using _CopyConstructible 12329: = __and_, is_move_constructible<_Up>>; 12329: static_assert(_CopyConstructible::value, 12329: "throw_with_nested argument must be CopyConstructible"); 12329: using __nest = __and_, __bool_constant, 12329: __not_>>; 12329: std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{}); 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: using __rethrow_if_nested_cond = typename enable_if< 12329: __and_, 12329: __or_<__not_>, 12329: is_convertible<_Tp*, nested_exception*>>>::value 12329: >::type; 12329: 12329: 12329: template 12329: inline __rethrow_if_nested_cond<_Ex> 12329: __rethrow_if_nested_impl(const _Ex* __ptr) 12329: { 12329: if (auto __ne_ptr = dynamic_cast(__ptr)) 12329: __ne_ptr->rethrow_nested(); 12329: } 12329: 12329: 12329: inline void 12329: __rethrow_if_nested_impl(const void*) 12329: { } 12329: 12329: 12329: 12329: 12329: template 12329: inline void 12329: rethrow_if_nested(const _Ex& __ex) 12329: { std::__rethrow_if_nested_impl(std::__addressof(__ex)); } 12329: 12329: 12329: } 12329: 12329: } 12329: 12329: 12329: 12329: #pragma GCC visibility pop 12329: # 170 "/usr/include/c++/12/exception" 2 3 12329: # 39 "/usr/include/c++/12/stdexcept" 2 3 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: struct __cow_string 12329: { 12329: union { 12329: const char* _M_p; 12329: char _M_bytes[sizeof(const char*)]; 12329: }; 12329: 12329: __cow_string(); 12329: __cow_string(const std::string&); 12329: __cow_string(const char*, size_t); 12329: __cow_string(const __cow_string&) noexcept; 12329: __cow_string& operator=(const __cow_string&) noexcept; 12329: ~__cow_string(); 12329: 12329: __cow_string(__cow_string&&) noexcept; 12329: __cow_string& operator=(__cow_string&&) noexcept; 12329: 12329: }; 12329: 12329: typedef basic_string __sso_string; 12329: # 113 "/usr/include/c++/12/stdexcept" 3 12329: class logic_error : public exception 12329: { 12329: __cow_string _M_msg; 12329: 12329: public: 12329: 12329: explicit 12329: logic_error(const string& __arg) ; 12329: 12329: 12329: explicit 12329: logic_error(const char*) ; 12329: 12329: logic_error(logic_error&&) noexcept; 12329: logic_error& operator=(logic_error&&) noexcept; 12329: 12329: 12329: 12329: logic_error(const logic_error&) noexcept; 12329: logic_error& operator=(const logic_error&) noexcept; 12329: 12329: 12329: 12329: 12329: 12329: virtual ~logic_error() noexcept; 12329: 12329: 12329: 12329: virtual const char* 12329: what() const noexcept; 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: 12329: 12329: class domain_error : public logic_error 12329: { 12329: public: 12329: explicit domain_error(const string& __arg) ; 12329: 12329: explicit domain_error(const char*) ; 12329: domain_error(const domain_error&) = default; 12329: domain_error& operator=(const domain_error&) = default; 12329: domain_error(domain_error&&) = default; 12329: domain_error& operator=(domain_error&&) = default; 12329: 12329: virtual ~domain_error() noexcept; 12329: }; 12329: 12329: 12329: class invalid_argument : public logic_error 12329: { 12329: public: 12329: explicit invalid_argument(const string& __arg) ; 12329: 12329: explicit invalid_argument(const char*) ; 12329: invalid_argument(const invalid_argument&) = default; 12329: invalid_argument& operator=(const invalid_argument&) = default; 12329: invalid_argument(invalid_argument&&) = default; 12329: invalid_argument& operator=(invalid_argument&&) = default; 12329: 12329: virtual ~invalid_argument() noexcept; 12329: }; 12329: 12329: 12329: 12329: class length_error : public logic_error 12329: { 12329: public: 12329: explicit length_error(const string& __arg) ; 12329: 12329: explicit length_error(const char*) ; 12329: length_error(const length_error&) = default; 12329: length_error& operator=(const length_error&) = default; 12329: length_error(length_error&&) = default; 12329: length_error& operator=(length_error&&) = default; 12329: 12329: virtual ~length_error() noexcept; 12329: }; 12329: 12329: 12329: 12329: class out_of_range : public logic_error 12329: { 12329: public: 12329: explicit out_of_range(const string& __arg) ; 12329: 12329: explicit out_of_range(const char*) ; 12329: out_of_range(const out_of_range&) = default; 12329: out_of_range& operator=(const out_of_range&) = default; 12329: out_of_range(out_of_range&&) = default; 12329: out_of_range& operator=(out_of_range&&) = default; 12329: 12329: virtual ~out_of_range() noexcept; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: class runtime_error : public exception 12329: { 12329: __cow_string _M_msg; 12329: 12329: public: 12329: 12329: explicit 12329: runtime_error(const string& __arg) ; 12329: 12329: 12329: explicit 12329: runtime_error(const char*) ; 12329: 12329: runtime_error(runtime_error&&) noexcept; 12329: runtime_error& operator=(runtime_error&&) noexcept; 12329: 12329: 12329: 12329: runtime_error(const runtime_error&) noexcept; 12329: runtime_error& operator=(const runtime_error&) noexcept; 12329: 12329: 12329: 12329: 12329: 12329: virtual ~runtime_error() noexcept; 12329: 12329: 12329: 12329: virtual const char* 12329: what() const noexcept; 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: 12329: class range_error : public runtime_error 12329: { 12329: public: 12329: explicit range_error(const string& __arg) ; 12329: 12329: explicit range_error(const char*) ; 12329: range_error(const range_error&) = default; 12329: range_error& operator=(const range_error&) = default; 12329: range_error(range_error&&) = default; 12329: range_error& operator=(range_error&&) = default; 12329: 12329: virtual ~range_error() noexcept; 12329: }; 12329: 12329: 12329: class overflow_error : public runtime_error 12329: { 12329: public: 12329: explicit overflow_error(const string& __arg) ; 12329: 12329: explicit overflow_error(const char*) ; 12329: overflow_error(const overflow_error&) = default; 12329: overflow_error& operator=(const overflow_error&) = default; 12329: overflow_error(overflow_error&&) = default; 12329: overflow_error& operator=(overflow_error&&) = default; 12329: 12329: virtual ~overflow_error() noexcept; 12329: }; 12329: 12329: 12329: class underflow_error : public runtime_error 12329: { 12329: public: 12329: explicit underflow_error(const string& __arg) ; 12329: 12329: explicit underflow_error(const char*) ; 12329: underflow_error(const underflow_error&) = default; 12329: underflow_error& operator=(const underflow_error&) = default; 12329: underflow_error(underflow_error&&) = default; 12329: underflow_error& operator=(underflow_error&&) = default; 12329: 12329: virtual ~underflow_error() noexcept; 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 14 "/usr/include/boost/program_options/errors.hpp" 2 3 4 12329: # 1 "/usr/include/c++/12/vector" 1 3 4 12329: # 58 "/usr/include/c++/12/vector" 3 4 12329: 12329: # 59 "/usr/include/c++/12/vector" 3 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/stl_uninitialized.h" 1 3 12329: # 70 "/usr/include/c++/12/bits/stl_uninitialized.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 81 "/usr/include/c++/12/bits/stl_uninitialized.h" 3 12329: template 12329: constexpr bool 12329: __check_constructible() 12329: { 12329: 12329: 12329: 12329: 12329: 12329: static_assert(is_constructible<_ValueType, _Tp>::value, 12329: "result type must be constructible from input type"); 12329: 12329: return true; 12329: } 12329: # 110 "/usr/include/c++/12/bits/stl_uninitialized.h" 3 12329: template 12329: 12329: _ForwardIterator 12329: __do_uninit_copy(_InputIterator __first, _InputIterator __last, 12329: _ForwardIterator __result) 12329: { 12329: _ForwardIterator __cur = __result; 12329: try 12329: { 12329: for (; __first != __last; ++__first, (void)++__cur) 12329: std::_Construct(std::__addressof(*__cur), *__first); 12329: return __cur; 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__result, __cur); 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: struct __uninitialized_copy 12329: { 12329: template 12329: static _ForwardIterator 12329: __uninit_copy(_InputIterator __first, _InputIterator __last, 12329: _ForwardIterator __result) 12329: { return std::__do_uninit_copy(__first, __last, __result); } 12329: }; 12329: 12329: template<> 12329: struct __uninitialized_copy 12329: { 12329: template 12329: static _ForwardIterator 12329: __uninit_copy(_InputIterator __first, _InputIterator __last, 12329: _ForwardIterator __result) 12329: { return std::copy(__first, __last, __result); } 12329: }; 12329: # 161 "/usr/include/c++/12/bits/stl_uninitialized.h" 3 12329: template 12329: inline _ForwardIterator 12329: uninitialized_copy(_InputIterator __first, _InputIterator __last, 12329: _ForwardIterator __result) 12329: { 12329: typedef typename iterator_traits<_InputIterator>::value_type 12329: _ValueType1; 12329: typedef typename iterator_traits<_ForwardIterator>::value_type 12329: _ValueType2; 12329: 12329: 12329: 12329: 12329: const bool __can_memmove = __is_trivial(_ValueType1); 12329: 12329: 12329: 12329: 12329: using _From = decltype(*__first); 12329: 12329: const bool __assignable 12329: = __is_trivial(_ValueType2) && __is_assignable(_ValueType2&, _From) && std::__check_constructible<_ValueType2, _From>(); 12329: 12329: return std::__uninitialized_copy<__can_memmove && __assignable>:: 12329: __uninit_copy(__first, __last, __result); 12329: } 12329: 12329: 12329: 12329: template 12329: void 12329: __do_uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __x) 12329: { 12329: _ForwardIterator __cur = __first; 12329: try 12329: { 12329: for (; __cur != __last; ++__cur) 12329: std::_Construct(std::__addressof(*__cur), __x); 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__first, __cur); 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: struct __uninitialized_fill 12329: { 12329: template 12329: static void 12329: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __x) 12329: { std::__do_uninit_fill(__first, __last, __x); } 12329: }; 12329: 12329: template<> 12329: struct __uninitialized_fill 12329: { 12329: template 12329: static void 12329: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __x) 12329: { std::fill(__first, __last, __x); } 12329: }; 12329: # 239 "/usr/include/c++/12/bits/stl_uninitialized.h" 3 12329: template 12329: inline void 12329: uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __x) 12329: { 12329: typedef typename iterator_traits<_ForwardIterator>::value_type 12329: _ValueType; 12329: 12329: 12329: 12329: const bool __can_fill 12329: = __is_trivial(_ValueType) && __is_assignable(_ValueType&, const _Tp&) && std::__check_constructible<_ValueType, const _Tp&>(); 12329: 12329: std::__uninitialized_fill<__can_fill>:: 12329: __uninit_fill(__first, __last, __x); 12329: } 12329: 12329: 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __do_uninit_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 12329: { 12329: _ForwardIterator __cur = __first; 12329: try 12329: { 12329: for (; __n > 0; --__n, (void) ++__cur) 12329: std::_Construct(std::__addressof(*__cur), __x); 12329: return __cur; 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__first, __cur); 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: struct __uninitialized_fill_n 12329: { 12329: template 12329: static _ForwardIterator 12329: __uninit_fill_n(_ForwardIterator __first, _Size __n, 12329: const _Tp& __x) 12329: { return std::__do_uninit_fill_n(__first, __n, __x); } 12329: }; 12329: 12329: template<> 12329: struct __uninitialized_fill_n 12329: { 12329: template 12329: static _ForwardIterator 12329: __uninit_fill_n(_ForwardIterator __first, _Size __n, 12329: const _Tp& __x) 12329: { return std::fill_n(__first, __n, __x); } 12329: }; 12329: # 310 "/usr/include/c++/12/bits/stl_uninitialized.h" 3 12329: template 12329: inline _ForwardIterator 12329: uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 12329: { 12329: typedef typename iterator_traits<_ForwardIterator>::value_type 12329: _ValueType; 12329: 12329: 12329: 12329: const bool __can_fill 12329: = __is_trivial(_ValueType) && __is_assignable(_ValueType&, const _Tp&) && std::__check_constructible<_ValueType, const _Tp&>() 12329: 12329: 12329: 12329: && __is_integer<_Size>::__value; 12329: 12329: return __uninitialized_fill_n<__can_fill>:: 12329: __uninit_fill_n(__first, __n, __x); 12329: } 12329: # 340 "/usr/include/c++/12/bits/stl_uninitialized.h" 3 12329: template 12329: 12329: _ForwardIterator 12329: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 12329: _ForwardIterator __result, _Allocator& __alloc) 12329: { 12329: _ForwardIterator __cur = __result; 12329: try 12329: { 12329: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 12329: for (; __first != __last; ++__first, (void)++__cur) 12329: __traits::construct(__alloc, std::__addressof(*__cur), *__first); 12329: return __cur; 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__result, __cur, __alloc); 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: 12329: inline _ForwardIterator 12329: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 12329: _ForwardIterator __result, allocator<_Tp>&) 12329: { 12329: 12329: 12329: 12329: 12329: return std::uninitialized_copy(__first, __last, __result); 12329: } 12329: 12329: template 12329: 12329: inline _ForwardIterator 12329: __uninitialized_move_a(_InputIterator __first, _InputIterator __last, 12329: _ForwardIterator __result, _Allocator& __alloc) 12329: { 12329: return std::__uninitialized_copy_a(std::make_move_iterator(__first), 12329: std::make_move_iterator(__last), 12329: __result, __alloc); 12329: } 12329: 12329: template 12329: 12329: inline _ForwardIterator 12329: __uninitialized_move_if_noexcept_a(_InputIterator __first, 12329: _InputIterator __last, 12329: _ForwardIterator __result, 12329: _Allocator& __alloc) 12329: { 12329: return std::__uninitialized_copy_a 12329: (std::__make_move_if_noexcept_iterator(__first), 12329: std::__make_move_if_noexcept_iterator(__last), __result, __alloc); 12329: } 12329: 12329: template 12329: 12329: void 12329: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __x, _Allocator& __alloc) 12329: { 12329: _ForwardIterator __cur = __first; 12329: try 12329: { 12329: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 12329: for (; __cur != __last; ++__cur) 12329: __traits::construct(__alloc, std::__addressof(*__cur), __x); 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__first, __cur, __alloc); 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: 12329: inline void 12329: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __x, allocator<_Tp2>&) 12329: { 12329: 12329: 12329: 12329: 12329: std::uninitialized_fill(__first, __last, __x); 12329: } 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 12329: const _Tp& __x, _Allocator& __alloc) 12329: { 12329: _ForwardIterator __cur = __first; 12329: try 12329: { 12329: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 12329: for (; __n > 0; --__n, (void) ++__cur) 12329: __traits::construct(__alloc, std::__addressof(*__cur), __x); 12329: return __cur; 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__first, __cur, __alloc); 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: 12329: inline _ForwardIterator 12329: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 12329: const _Tp& __x, allocator<_Tp2>&) 12329: { 12329: 12329: 12329: 12329: 12329: return std::uninitialized_fill_n(__first, __n, __x); 12329: } 12329: # 480 "/usr/include/c++/12/bits/stl_uninitialized.h" 3 12329: template 12329: inline _ForwardIterator 12329: __uninitialized_copy_move(_InputIterator1 __first1, 12329: _InputIterator1 __last1, 12329: _InputIterator2 __first2, 12329: _InputIterator2 __last2, 12329: _ForwardIterator __result, 12329: _Allocator& __alloc) 12329: { 12329: _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, 12329: __result, 12329: __alloc); 12329: try 12329: { 12329: return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__result, __mid, __alloc); 12329: throw; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline _ForwardIterator 12329: __uninitialized_move_copy(_InputIterator1 __first1, 12329: _InputIterator1 __last1, 12329: _InputIterator2 __first2, 12329: _InputIterator2 __last2, 12329: _ForwardIterator __result, 12329: _Allocator& __alloc) 12329: { 12329: _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, 12329: __result, 12329: __alloc); 12329: try 12329: { 12329: return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__result, __mid, __alloc); 12329: throw; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: inline _ForwardIterator 12329: __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, 12329: const _Tp& __x, _InputIterator __first, 12329: _InputIterator __last, _Allocator& __alloc) 12329: { 12329: std::__uninitialized_fill_a(__result, __mid, __x, __alloc); 12329: try 12329: { 12329: return std::__uninitialized_move_a(__first, __last, __mid, __alloc); 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__result, __mid, __alloc); 12329: throw; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: inline void 12329: __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, 12329: _ForwardIterator __first2, 12329: _ForwardIterator __last2, const _Tp& __x, 12329: _Allocator& __alloc) 12329: { 12329: _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, 12329: __first2, 12329: __alloc); 12329: try 12329: { 12329: std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__first2, __mid2, __alloc); 12329: throw; 12329: } 12329: } 12329: # 587 "/usr/include/c++/12/bits/stl_uninitialized.h" 3 12329: template 12329: struct __uninitialized_default_1 12329: { 12329: template 12329: static void 12329: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 12329: { 12329: _ForwardIterator __cur = __first; 12329: try 12329: { 12329: for (; __cur != __last; ++__cur) 12329: std::_Construct(std::__addressof(*__cur)); 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__first, __cur); 12329: throw; 12329: } 12329: } 12329: }; 12329: 12329: template<> 12329: struct __uninitialized_default_1 12329: { 12329: template 12329: static void 12329: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 12329: { 12329: if (__first == __last) 12329: return; 12329: 12329: typename iterator_traits<_ForwardIterator>::value_type* __val 12329: = std::__addressof(*__first); 12329: std::_Construct(__val); 12329: if (++__first != __last) 12329: std::fill(__first, __last, *__val); 12329: } 12329: }; 12329: 12329: template 12329: struct __uninitialized_default_n_1 12329: { 12329: template 12329: 12329: static _ForwardIterator 12329: __uninit_default_n(_ForwardIterator __first, _Size __n) 12329: { 12329: _ForwardIterator __cur = __first; 12329: try 12329: { 12329: for (; __n > 0; --__n, (void) ++__cur) 12329: std::_Construct(std::__addressof(*__cur)); 12329: return __cur; 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__first, __cur); 12329: throw; 12329: } 12329: } 12329: }; 12329: 12329: template<> 12329: struct __uninitialized_default_n_1 12329: { 12329: template 12329: 12329: static _ForwardIterator 12329: __uninit_default_n(_ForwardIterator __first, _Size __n) 12329: { 12329: if (__n > 0) 12329: { 12329: typename iterator_traits<_ForwardIterator>::value_type* __val 12329: = std::__addressof(*__first); 12329: std::_Construct(__val); 12329: ++__first; 12329: __first = std::fill_n(__first, __n - 1, *__val); 12329: } 12329: return __first; 12329: } 12329: }; 12329: 12329: 12329: 12329: template 12329: inline void 12329: __uninitialized_default(_ForwardIterator __first, 12329: _ForwardIterator __last) 12329: { 12329: typedef typename iterator_traits<_ForwardIterator>::value_type 12329: _ValueType; 12329: 12329: const bool __assignable = is_copy_assignable<_ValueType>::value; 12329: 12329: std::__uninitialized_default_1<__is_trivial(_ValueType) 12329: && __assignable>:: 12329: __uninit_default(__first, __last); 12329: } 12329: 12329: 12329: 12329: template 12329: 12329: inline _ForwardIterator 12329: __uninitialized_default_n(_ForwardIterator __first, _Size __n) 12329: { 12329: typedef typename iterator_traits<_ForwardIterator>::value_type 12329: _ValueType; 12329: 12329: constexpr bool __can_fill 12329: = __and_, is_copy_assignable<_ValueType>>::value; 12329: 12329: return __uninitialized_default_n_1<__is_trivial(_ValueType) 12329: && __can_fill>:: 12329: __uninit_default_n(__first, __n); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: __uninitialized_default_a(_ForwardIterator __first, 12329: _ForwardIterator __last, 12329: _Allocator& __alloc) 12329: { 12329: _ForwardIterator __cur = __first; 12329: try 12329: { 12329: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 12329: for (; __cur != __last; ++__cur) 12329: __traits::construct(__alloc, std::__addressof(*__cur)); 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__first, __cur, __alloc); 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: inline void 12329: __uninitialized_default_a(_ForwardIterator __first, 12329: _ForwardIterator __last, 12329: allocator<_Tp>&) 12329: { std::__uninitialized_default(__first, __last); } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: _ForwardIterator 12329: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 12329: _Allocator& __alloc) 12329: { 12329: _ForwardIterator __cur = __first; 12329: try 12329: { 12329: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 12329: for (; __n > 0; --__n, (void) ++__cur) 12329: __traits::construct(__alloc, std::__addressof(*__cur)); 12329: return __cur; 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__first, __cur, __alloc); 12329: throw; 12329: } 12329: } 12329: 12329: 12329: 12329: template 12329: 12329: inline _ForwardIterator 12329: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 12329: allocator<_Tp>&) 12329: { return std::__uninitialized_default_n(__first, __n); } 12329: 12329: template 12329: struct __uninitialized_default_novalue_1 12329: { 12329: template 12329: static void 12329: __uninit_default_novalue(_ForwardIterator __first, 12329: _ForwardIterator __last) 12329: { 12329: _ForwardIterator __cur = __first; 12329: try 12329: { 12329: for (; __cur != __last; ++__cur) 12329: std::_Construct_novalue(std::__addressof(*__cur)); 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__first, __cur); 12329: throw; 12329: } 12329: } 12329: }; 12329: 12329: template<> 12329: struct __uninitialized_default_novalue_1 12329: { 12329: template 12329: static void 12329: __uninit_default_novalue(_ForwardIterator __first, 12329: _ForwardIterator __last) 12329: { 12329: } 12329: }; 12329: 12329: template 12329: struct __uninitialized_default_novalue_n_1 12329: { 12329: template 12329: static _ForwardIterator 12329: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 12329: { 12329: _ForwardIterator __cur = __first; 12329: try 12329: { 12329: for (; __n > 0; --__n, (void) ++__cur) 12329: std::_Construct_novalue(std::__addressof(*__cur)); 12329: return __cur; 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__first, __cur); 12329: throw; 12329: } 12329: } 12329: }; 12329: 12329: template<> 12329: struct __uninitialized_default_novalue_n_1 12329: { 12329: template 12329: static _ForwardIterator 12329: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 12329: { return std::next(__first, __n); } 12329: }; 12329: 12329: 12329: 12329: template 12329: inline void 12329: __uninitialized_default_novalue(_ForwardIterator __first, 12329: _ForwardIterator __last) 12329: { 12329: typedef typename iterator_traits<_ForwardIterator>::value_type 12329: _ValueType; 12329: 12329: std::__uninitialized_default_novalue_1< 12329: is_trivially_default_constructible<_ValueType>::value>:: 12329: __uninit_default_novalue(__first, __last); 12329: } 12329: 12329: 12329: 12329: template 12329: inline _ForwardIterator 12329: __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) 12329: { 12329: typedef typename iterator_traits<_ForwardIterator>::value_type 12329: _ValueType; 12329: 12329: return __uninitialized_default_novalue_n_1< 12329: is_trivially_default_constructible<_ValueType>::value>:: 12329: __uninit_default_novalue_n(__first, __n); 12329: } 12329: 12329: template 12329: _ForwardIterator 12329: __uninitialized_copy_n(_InputIterator __first, _Size __n, 12329: _ForwardIterator __result, input_iterator_tag) 12329: { 12329: _ForwardIterator __cur = __result; 12329: try 12329: { 12329: for (; __n > 0; --__n, (void) ++__first, ++__cur) 12329: std::_Construct(std::__addressof(*__cur), *__first); 12329: return __cur; 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__result, __cur); 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: inline _ForwardIterator 12329: __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, 12329: _ForwardIterator __result, 12329: random_access_iterator_tag) 12329: { return std::uninitialized_copy(__first, __first + __n, __result); } 12329: 12329: template 12329: pair<_InputIterator, _ForwardIterator> 12329: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 12329: _ForwardIterator __result, input_iterator_tag) 12329: { 12329: _ForwardIterator __cur = __result; 12329: try 12329: { 12329: for (; __n > 0; --__n, (void) ++__first, ++__cur) 12329: std::_Construct(std::__addressof(*__cur), *__first); 12329: return {__first, __cur}; 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__result, __cur); 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: inline pair<_RandomAccessIterator, _ForwardIterator> 12329: __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, 12329: _ForwardIterator __result, 12329: random_access_iterator_tag) 12329: { 12329: auto __second_res = uninitialized_copy(__first, __first + __n, __result); 12329: auto __first_res = std::next(__first, __n); 12329: return {__first_res, __second_res}; 12329: } 12329: # 933 "/usr/include/c++/12/bits/stl_uninitialized.h" 3 12329: template 12329: inline _ForwardIterator 12329: uninitialized_copy_n(_InputIterator __first, _Size __n, 12329: _ForwardIterator __result) 12329: { return std::__uninitialized_copy_n(__first, __n, __result, 12329: std::__iterator_category(__first)); } 12329: 12329: 12329: template 12329: inline pair<_InputIterator, _ForwardIterator> 12329: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 12329: _ForwardIterator __result) 12329: { 12329: return 12329: std::__uninitialized_copy_n_pair(__first, __n, __result, 12329: std::__iterator_category(__first)); 12329: } 12329: # 1053 "/usr/include/c++/12/bits/stl_uninitialized.h" 3 12329: template 12329: 12329: inline void 12329: __relocate_object_a(_Tp* __restrict __dest, _Up* __restrict __orig, 12329: _Allocator& __alloc) 12329: noexcept(noexcept(std::allocator_traits<_Allocator>::construct(__alloc, 12329: __dest, std::move(*__orig))) 12329: && noexcept(std::allocator_traits<_Allocator>::destroy( 12329: __alloc, std::__addressof(*__orig)))) 12329: { 12329: typedef std::allocator_traits<_Allocator> __traits; 12329: __traits::construct(__alloc, __dest, std::move(*__orig)); 12329: __traits::destroy(__alloc, std::__addressof(*__orig)); 12329: } 12329: 12329: 12329: 12329: template 12329: struct __is_bitwise_relocatable 12329: : is_trivial<_Tp> { }; 12329: 12329: template 12329: 12329: inline _ForwardIterator 12329: __relocate_a_1(_InputIterator __first, _InputIterator __last, 12329: _ForwardIterator __result, _Allocator& __alloc) 12329: noexcept(noexcept(std::__relocate_object_a(std::addressof(*__result), 12329: std::addressof(*__first), 12329: __alloc))) 12329: { 12329: typedef typename iterator_traits<_InputIterator>::value_type 12329: _ValueType; 12329: typedef typename iterator_traits<_ForwardIterator>::value_type 12329: _ValueType2; 12329: static_assert(std::is_same<_ValueType, _ValueType2>::value, 12329: "relocation is only possible for values of the same type"); 12329: _ForwardIterator __cur = __result; 12329: for (; __first != __last; ++__first, (void)++__cur) 12329: std::__relocate_object_a(std::__addressof(*__cur), 12329: std::__addressof(*__first), __alloc); 12329: return __cur; 12329: } 12329: 12329: template 12329: 12329: inline __enable_if_t::value, _Tp*> 12329: __relocate_a_1(_Tp* __first, _Tp* __last, 12329: _Tp* __result, 12329: [[__maybe_unused__]] allocator<_Up>& __alloc) noexcept 12329: { 12329: ptrdiff_t __count = __last - __first; 12329: if (__count > 0) 12329: { 12329: # 1117 "/usr/include/c++/12/bits/stl_uninitialized.h" 3 12329: __builtin_memmove(__result, __first, __count * sizeof(_Tp)); 12329: } 12329: return __result + __count; 12329: } 12329: 12329: 12329: template 12329: 12329: inline _ForwardIterator 12329: __relocate_a(_InputIterator __first, _InputIterator __last, 12329: _ForwardIterator __result, _Allocator& __alloc) 12329: noexcept(noexcept(__relocate_a_1(std::__niter_base(__first), 12329: std::__niter_base(__last), 12329: std::__niter_base(__result), __alloc))) 12329: { 12329: return std::__relocate_a_1(std::__niter_base(__first), 12329: std::__niter_base(__last), 12329: std::__niter_base(__result), __alloc); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 64 "/usr/include/c++/12/vector" 2 3 12329: # 1 "/usr/include/c++/12/bits/stl_vector.h" 1 3 12329: # 78 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: template 12329: struct _Vector_base 12329: { 12329: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 12329: rebind<_Tp>::other _Tp_alloc_type; 12329: typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer 12329: pointer; 12329: 12329: struct _Vector_impl_data 12329: { 12329: pointer _M_start; 12329: pointer _M_finish; 12329: pointer _M_end_of_storage; 12329: 12329: 12329: _Vector_impl_data() noexcept 12329: : _M_start(), _M_finish(), _M_end_of_storage() 12329: { } 12329: 12329: 12329: 12329: _Vector_impl_data(_Vector_impl_data&& __x) noexcept 12329: : _M_start(__x._M_start), _M_finish(__x._M_finish), 12329: _M_end_of_storage(__x._M_end_of_storage) 12329: { __x._M_start = __x._M_finish = __x._M_end_of_storage = pointer(); } 12329: 12329: 12329: 12329: void 12329: _M_copy_data(_Vector_impl_data const& __x) noexcept 12329: { 12329: _M_start = __x._M_start; 12329: _M_finish = __x._M_finish; 12329: _M_end_of_storage = __x._M_end_of_storage; 12329: } 12329: 12329: 12329: void 12329: _M_swap_data(_Vector_impl_data& __x) noexcept 12329: { 12329: 12329: 12329: _Vector_impl_data __tmp; 12329: __tmp._M_copy_data(*this); 12329: _M_copy_data(__x); 12329: __x._M_copy_data(__tmp); 12329: } 12329: }; 12329: 12329: struct _Vector_impl 12329: : public _Tp_alloc_type, public _Vector_impl_data 12329: { 12329: 12329: _Vector_impl() noexcept(is_nothrow_default_constructible<_Tp_alloc_type>::value) 12329: 12329: : _Tp_alloc_type() 12329: { } 12329: 12329: 12329: _Vector_impl(_Tp_alloc_type const& __a) noexcept 12329: : _Tp_alloc_type(__a) 12329: { } 12329: 12329: 12329: 12329: 12329: 12329: _Vector_impl(_Vector_impl&& __x) noexcept 12329: : _Tp_alloc_type(std::move(__x)), _Vector_impl_data(std::move(__x)) 12329: { } 12329: 12329: 12329: _Vector_impl(_Tp_alloc_type&& __a) noexcept 12329: : _Tp_alloc_type(std::move(__a)) 12329: { } 12329: 12329: 12329: _Vector_impl(_Tp_alloc_type&& __a, _Vector_impl&& __rv) noexcept 12329: : _Tp_alloc_type(std::move(__a)), _Vector_impl_data(std::move(__rv)) 12329: { } 12329: # 291 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: }; 12329: 12329: public: 12329: typedef _Alloc allocator_type; 12329: 12329: 12329: _Tp_alloc_type& 12329: _M_get_Tp_allocator() noexcept 12329: { return this->_M_impl; } 12329: 12329: 12329: const _Tp_alloc_type& 12329: _M_get_Tp_allocator() const noexcept 12329: { return this->_M_impl; } 12329: 12329: 12329: allocator_type 12329: get_allocator() const noexcept 12329: { return allocator_type(_M_get_Tp_allocator()); } 12329: 12329: 12329: _Vector_base() = default; 12329: 12329: 12329: 12329: 12329: 12329: _Vector_base(const allocator_type& __a) noexcept 12329: : _M_impl(__a) { } 12329: 12329: 12329: 12329: 12329: _Vector_base(size_t __n) 12329: : _M_impl() 12329: { _M_create_storage(__n); } 12329: 12329: 12329: 12329: _Vector_base(size_t __n, const allocator_type& __a) 12329: : _M_impl(__a) 12329: { _M_create_storage(__n); } 12329: 12329: 12329: _Vector_base(_Vector_base&&) = default; 12329: 12329: 12329: 12329: 12329: _Vector_base(_Tp_alloc_type&& __a) noexcept 12329: : _M_impl(std::move(__a)) { } 12329: 12329: 12329: _Vector_base(_Vector_base&& __x, const allocator_type& __a) 12329: : _M_impl(__a) 12329: { 12329: if (__x.get_allocator() == __a) 12329: this->_M_impl._M_swap_data(__x._M_impl); 12329: else 12329: { 12329: size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; 12329: _M_create_storage(__n); 12329: } 12329: } 12329: 12329: 12329: 12329: _Vector_base(const allocator_type& __a, _Vector_base&& __x) 12329: : _M_impl(_Tp_alloc_type(__a), std::move(__x._M_impl)) 12329: { } 12329: 12329: 12329: 12329: ~_Vector_base() noexcept 12329: { 12329: _M_deallocate(_M_impl._M_start, 12329: _M_impl._M_end_of_storage - _M_impl._M_start); 12329: } 12329: 12329: public: 12329: _Vector_impl _M_impl; 12329: 12329: 12329: pointer 12329: _M_allocate(size_t __n) 12329: { 12329: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 12329: return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); 12329: } 12329: 12329: 12329: void 12329: _M_deallocate(pointer __p, size_t __n) 12329: { 12329: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 12329: if (__p) 12329: _Tr::deallocate(_M_impl, __p, __n); 12329: } 12329: 12329: protected: 12329: 12329: void 12329: _M_create_storage(size_t __n) 12329: { 12329: this->_M_impl._M_start = this->_M_allocate(__n); 12329: this->_M_impl._M_finish = this->_M_impl._M_start; 12329: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 12329: } 12329: }; 12329: # 422 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: template > 12329: class vector : protected _Vector_base<_Tp, _Alloc> 12329: { 12329: # 435 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: static_assert(is_same::type, _Tp>::value, 12329: "std::vector must have a non-const, non-volatile value_type"); 12329: 12329: static_assert(is_same::value, 12329: "std::vector must have the same value_type as its allocator"); 12329: 12329: 12329: 12329: typedef _Vector_base<_Tp, _Alloc> _Base; 12329: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 12329: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 12329: 12329: public: 12329: typedef _Tp value_type; 12329: typedef typename _Base::pointer pointer; 12329: typedef typename _Alloc_traits::const_pointer const_pointer; 12329: typedef typename _Alloc_traits::reference reference; 12329: typedef typename _Alloc_traits::const_reference const_reference; 12329: typedef __gnu_cxx::__normal_iterator iterator; 12329: typedef __gnu_cxx::__normal_iterator 12329: const_iterator; 12329: typedef std::reverse_iterator const_reverse_iterator; 12329: typedef std::reverse_iterator reverse_iterator; 12329: typedef size_t size_type; 12329: typedef ptrdiff_t difference_type; 12329: typedef _Alloc allocator_type; 12329: 12329: private: 12329: 12329: static constexpr bool 12329: _S_nothrow_relocate(true_type) 12329: { 12329: return noexcept(std::__relocate_a(std::declval(), 12329: std::declval(), 12329: std::declval(), 12329: std::declval<_Tp_alloc_type&>())); 12329: } 12329: 12329: static constexpr bool 12329: _S_nothrow_relocate(false_type) 12329: { return false; } 12329: 12329: static constexpr bool 12329: _S_use_relocate() 12329: { 12329: 12329: 12329: 12329: return _S_nothrow_relocate(__is_move_insertable<_Tp_alloc_type>{}); 12329: } 12329: 12329: static pointer 12329: _S_do_relocate(pointer __first, pointer __last, pointer __result, 12329: _Tp_alloc_type& __alloc, true_type) noexcept 12329: { 12329: return std::__relocate_a(__first, __last, __result, __alloc); 12329: } 12329: 12329: static pointer 12329: _S_do_relocate(pointer, pointer, pointer __result, 12329: _Tp_alloc_type&, false_type) noexcept 12329: { return __result; } 12329: 12329: static pointer 12329: _S_relocate(pointer __first, pointer __last, pointer __result, 12329: _Tp_alloc_type& __alloc) noexcept 12329: { 12329: 12329: 12329: 12329: 12329: using __do_it = __bool_constant<_S_use_relocate()>; 12329: return _S_do_relocate(__first, __last, __result, __alloc, __do_it{}); 12329: 12329: } 12329: 12329: 12329: protected: 12329: using _Base::_M_allocate; 12329: using _Base::_M_deallocate; 12329: using _Base::_M_impl; 12329: using _Base::_M_get_Tp_allocator; 12329: 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: vector() = default; 12329: # 535 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: explicit 12329: 12329: vector(const allocator_type& __a) noexcept 12329: : _Base(__a) { } 12329: # 549 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: explicit 12329: 12329: vector(size_type __n, const allocator_type& __a = allocator_type()) 12329: : _Base(_S_check_init_len(__n, __a), __a) 12329: { _M_default_initialize(__n); } 12329: # 563 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: vector(size_type __n, const value_type& __value, 12329: const allocator_type& __a = allocator_type()) 12329: : _Base(_S_check_init_len(__n, __a), __a) 12329: { _M_fill_initialize(__n, __value); } 12329: # 595 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: vector(const vector& __x) 12329: : _Base(__x.size(), 12329: _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) 12329: { 12329: this->_M_impl._M_finish = 12329: std::__uninitialized_copy_a(__x.begin(), __x.end(), 12329: this->_M_impl._M_start, 12329: _M_get_Tp_allocator()); 12329: } 12329: # 615 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: vector(vector&&) noexcept = default; 12329: 12329: 12329: 12329: vector(const vector& __x, const __type_identity_t& __a) 12329: : _Base(__x.size(), __a) 12329: { 12329: this->_M_impl._M_finish = 12329: std::__uninitialized_copy_a(__x.begin(), __x.end(), 12329: this->_M_impl._M_start, 12329: _M_get_Tp_allocator()); 12329: } 12329: 12329: private: 12329: 12329: vector(vector&& __rv, const allocator_type& __m, true_type) noexcept 12329: : _Base(__m, std::move(__rv)) 12329: { } 12329: 12329: 12329: vector(vector&& __rv, const allocator_type& __m, false_type) 12329: : _Base(__m) 12329: { 12329: if (__rv.get_allocator() == __m) 12329: this->_M_impl._M_swap_data(__rv._M_impl); 12329: else if (!__rv.empty()) 12329: { 12329: this->_M_create_storage(__rv.size()); 12329: this->_M_impl._M_finish = 12329: std::__uninitialized_move_a(__rv.begin(), __rv.end(), 12329: this->_M_impl._M_start, 12329: _M_get_Tp_allocator()); 12329: __rv.clear(); 12329: } 12329: } 12329: 12329: public: 12329: 12329: 12329: vector(vector&& __rv, const __type_identity_t& __m) 12329: noexcept( noexcept( 12329: vector(std::declval(), std::declval(), 12329: std::declval())) ) 12329: : vector(std::move(__rv), __m, typename _Alloc_traits::is_always_equal{}) 12329: { } 12329: # 672 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: vector(initializer_list __l, 12329: const allocator_type& __a = allocator_type()) 12329: : _Base(__a) 12329: { 12329: _M_range_initialize(__l.begin(), __l.end(), 12329: random_access_iterator_tag()); 12329: } 12329: # 699 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: template> 12329: 12329: vector(_InputIterator __first, _InputIterator __last, 12329: const allocator_type& __a = allocator_type()) 12329: : _Base(__a) 12329: { 12329: _M_range_initialize(__first, __last, 12329: std::__iterator_category(__first)); 12329: } 12329: # 727 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: ~vector() noexcept 12329: { 12329: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: ; 12329: } 12329: # 744 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: vector& 12329: operator=(const vector& __x); 12329: # 759 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: vector& 12329: operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) 12329: { 12329: constexpr bool __move_storage = 12329: _Alloc_traits::_S_propagate_on_move_assign() 12329: || _Alloc_traits::_S_always_equal(); 12329: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 12329: return *this; 12329: } 12329: # 781 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: vector& 12329: operator=(initializer_list __l) 12329: { 12329: this->_M_assign_aux(__l.begin(), __l.end(), 12329: random_access_iterator_tag()); 12329: return *this; 12329: } 12329: # 801 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: void 12329: assign(size_type __n, const value_type& __val) 12329: { _M_fill_assign(__n, __val); } 12329: # 819 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: template> 12329: 12329: void 12329: assign(_InputIterator __first, _InputIterator __last) 12329: { _M_assign_dispatch(__first, __last, __false_type()); } 12329: # 848 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: void 12329: assign(initializer_list __l) 12329: { 12329: this->_M_assign_aux(__l.begin(), __l.end(), 12329: random_access_iterator_tag()); 12329: } 12329: 12329: 12329: 12329: using _Base::get_allocator; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: begin() noexcept 12329: { return iterator(this->_M_impl._M_start); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: begin() const noexcept 12329: { return const_iterator(this->_M_impl._M_start); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: end() noexcept 12329: { return iterator(this->_M_impl._M_finish); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: end() const noexcept 12329: { return const_iterator(this->_M_impl._M_finish); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: rbegin() noexcept 12329: { return reverse_iterator(end()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: rbegin() const noexcept 12329: { return const_reverse_iterator(end()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: rend() noexcept 12329: { return reverse_iterator(begin()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: rend() const noexcept 12329: { return const_reverse_iterator(begin()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: [[__nodiscard__]] 12329: const_iterator 12329: cbegin() const noexcept 12329: { return const_iterator(this->_M_impl._M_start); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: [[__nodiscard__]] 12329: const_iterator 12329: cend() const noexcept 12329: { return const_iterator(this->_M_impl._M_finish); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: [[__nodiscard__]] 12329: const_reverse_iterator 12329: crbegin() const noexcept 12329: { return const_reverse_iterator(end()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: [[__nodiscard__]] 12329: const_reverse_iterator 12329: crend() const noexcept 12329: { return const_reverse_iterator(begin()); } 12329: 12329: 12329: 12329: 12329: 12329: size_type 12329: size() const noexcept 12329: { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } 12329: 12329: 12329: 12329: size_type 12329: max_size() const noexcept 12329: { return _S_max_size(_M_get_Tp_allocator()); } 12329: # 1006 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: void 12329: resize(size_type __new_size) 12329: { 12329: if (__new_size > size()) 12329: _M_default_append(__new_size - size()); 12329: else if (__new_size < size()) 12329: _M_erase_at_end(this->_M_impl._M_start + __new_size); 12329: } 12329: # 1027 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: void 12329: resize(size_type __new_size, const value_type& __x) 12329: { 12329: if (__new_size > size()) 12329: _M_fill_insert(end(), __new_size - size(), __x); 12329: else if (__new_size < size()) 12329: _M_erase_at_end(this->_M_impl._M_start + __new_size); 12329: } 12329: # 1061 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: void 12329: shrink_to_fit() 12329: { _M_shrink_to_fit(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: size_type 12329: capacity() const noexcept 12329: { return size_type(this->_M_impl._M_end_of_storage 12329: - this->_M_impl._M_start); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: bool 12329: empty() const noexcept 12329: { return begin() == end(); } 12329: # 1103 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: void 12329: reserve(size_type __n); 12329: # 1119 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: reference 12329: operator[](size_type __n) noexcept 12329: { 12329: ; 12329: return *(this->_M_impl._M_start + __n); 12329: } 12329: # 1138 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: const_reference 12329: operator[](size_type __n) const noexcept 12329: { 12329: ; 12329: return *(this->_M_impl._M_start + __n); 12329: } 12329: 12329: protected: 12329: 12329: 12329: void 12329: _M_range_check(size_type __n) const 12329: { 12329: if (__n >= this->size()) 12329: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 12329: 12329: , 12329: __n, this->size()); 12329: } 12329: 12329: public: 12329: # 1171 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: reference 12329: at(size_type __n) 12329: { 12329: _M_range_check(__n); 12329: return (*this)[__n]; 12329: } 12329: # 1190 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: const_reference 12329: at(size_type __n) const 12329: { 12329: _M_range_check(__n); 12329: return (*this)[__n]; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reference 12329: front() noexcept 12329: { 12329: ; 12329: return *begin(); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reference 12329: front() const noexcept 12329: { 12329: ; 12329: return *begin(); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reference 12329: back() noexcept 12329: { 12329: ; 12329: return *(end() - 1); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reference 12329: back() const noexcept 12329: { 12329: ; 12329: return *(end() - 1); 12329: } 12329: # 1253 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: _Tp* 12329: data() noexcept 12329: { return _M_data_ptr(this->_M_impl._M_start); } 12329: 12329: 12329: const _Tp* 12329: data() const noexcept 12329: { return _M_data_ptr(this->_M_impl._M_start); } 12329: # 1274 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: void 12329: push_back(const value_type& __x) 12329: { 12329: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 12329: { 12329: ; 12329: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 12329: __x); 12329: ++this->_M_impl._M_finish; 12329: ; 12329: } 12329: else 12329: _M_realloc_insert(end(), __x); 12329: } 12329: 12329: 12329: 12329: void 12329: push_back(value_type&& __x) 12329: { emplace_back(std::move(__x)); } 12329: 12329: template 12329: 12329: 12329: 12329: 12329: void 12329: 12329: emplace_back(_Args&&... __args); 12329: # 1315 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: void 12329: pop_back() noexcept 12329: { 12329: ; 12329: --this->_M_impl._M_finish; 12329: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 12329: ; 12329: } 12329: # 1338 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: template 12329: 12329: iterator 12329: emplace(const_iterator __position, _Args&&... __args) 12329: { return _M_emplace_aux(__position, std::forward<_Args>(__args)...); } 12329: # 1355 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: iterator 12329: insert(const_iterator __position, const value_type& __x); 12329: # 1386 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: iterator 12329: insert(const_iterator __position, value_type&& __x) 12329: { return _M_insert_rval(__position, std::move(__x)); } 12329: # 1404 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: iterator 12329: insert(const_iterator __position, initializer_list __l) 12329: { 12329: auto __offset = __position - cbegin(); 12329: _M_range_insert(begin() + __offset, __l.begin(), __l.end(), 12329: std::random_access_iterator_tag()); 12329: return begin() + __offset; 12329: } 12329: # 1430 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: iterator 12329: insert(const_iterator __position, size_type __n, const value_type& __x) 12329: { 12329: difference_type __offset = __position - cbegin(); 12329: _M_fill_insert(begin() + __offset, __n, __x); 12329: return begin() + __offset; 12329: } 12329: # 1473 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: template> 12329: 12329: iterator 12329: insert(const_iterator __position, _InputIterator __first, 12329: _InputIterator __last) 12329: { 12329: difference_type __offset = __position - cbegin(); 12329: _M_insert_dispatch(begin() + __offset, 12329: __first, __last, __false_type()); 12329: return begin() + __offset; 12329: } 12329: # 1526 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: iterator 12329: 12329: erase(const_iterator __position) 12329: { return _M_erase(begin() + (__position - cbegin())); } 12329: # 1554 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: iterator 12329: 12329: erase(const_iterator __first, const_iterator __last) 12329: { 12329: const auto __beg = begin(); 12329: const auto __cbeg = cbegin(); 12329: return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); 12329: } 12329: # 1579 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: void 12329: swap(vector& __x) noexcept 12329: { 12329: 12329: do { if (std::__is_constant_evaluated() && !bool(_Alloc_traits::propagate_on_container_swap::value || _M_get_Tp_allocator() == __x._M_get_Tp_allocator())) __builtin_unreachable(); } while (false) 12329: ; 12329: 12329: this->_M_impl._M_swap_data(__x._M_impl); 12329: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 12329: __x._M_get_Tp_allocator()); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: clear() noexcept 12329: { _M_erase_at_end(this->_M_impl._M_start); } 12329: 12329: protected: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: pointer 12329: _M_allocate_and_copy(size_type __n, 12329: _ForwardIterator __first, _ForwardIterator __last) 12329: { 12329: pointer __result = this->_M_allocate(__n); 12329: try 12329: { 12329: std::__uninitialized_copy_a(__first, __last, __result, 12329: _M_get_Tp_allocator()); 12329: return __result; 12329: } 12329: catch(...) 12329: { 12329: _M_deallocate(__result, __n); 12329: throw; 12329: } 12329: } 12329: # 1659 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: template 12329: 12329: void 12329: _M_range_initialize(_InputIterator __first, _InputIterator __last, 12329: std::input_iterator_tag) 12329: { 12329: try { 12329: for (; __first != __last; ++__first) 12329: 12329: emplace_back(*__first); 12329: 12329: 12329: 12329: } catch(...) { 12329: clear(); 12329: throw; 12329: } 12329: } 12329: 12329: 12329: template 12329: 12329: void 12329: _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, 12329: std::forward_iterator_tag) 12329: { 12329: const size_type __n = std::distance(__first, __last); 12329: this->_M_impl._M_start 12329: = this->_M_allocate(_S_check_init_len(__n, _M_get_Tp_allocator())); 12329: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 12329: this->_M_impl._M_finish = 12329: std::__uninitialized_copy_a(__first, __last, 12329: this->_M_impl._M_start, 12329: _M_get_Tp_allocator()); 12329: } 12329: 12329: 12329: 12329: 12329: void 12329: _M_fill_initialize(size_type __n, const value_type& __value) 12329: { 12329: this->_M_impl._M_finish = 12329: std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, 12329: _M_get_Tp_allocator()); 12329: } 12329: 12329: 12329: 12329: 12329: void 12329: _M_default_initialize(size_type __n) 12329: { 12329: this->_M_impl._M_finish = 12329: std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, 12329: _M_get_Tp_allocator()); 12329: } 12329: # 1725 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: template 12329: 12329: void 12329: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 12329: { _M_fill_assign(__n, __val); } 12329: 12329: 12329: template 12329: 12329: void 12329: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 12329: __false_type) 12329: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 12329: 12329: 12329: template 12329: 12329: void 12329: _M_assign_aux(_InputIterator __first, _InputIterator __last, 12329: std::input_iterator_tag); 12329: 12329: 12329: template 12329: 12329: void 12329: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 12329: std::forward_iterator_tag); 12329: 12329: 12329: 12329: 12329: void 12329: _M_fill_assign(size_type __n, const value_type& __val); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: void 12329: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, 12329: __true_type) 12329: { _M_fill_insert(__pos, __n, __val); } 12329: 12329: 12329: template 12329: 12329: void 12329: _M_insert_dispatch(iterator __pos, _InputIterator __first, 12329: _InputIterator __last, __false_type) 12329: { 12329: _M_range_insert(__pos, __first, __last, 12329: std::__iterator_category(__first)); 12329: } 12329: 12329: 12329: template 12329: 12329: void 12329: _M_range_insert(iterator __pos, _InputIterator __first, 12329: _InputIterator __last, std::input_iterator_tag); 12329: 12329: 12329: template 12329: 12329: void 12329: _M_range_insert(iterator __pos, _ForwardIterator __first, 12329: _ForwardIterator __last, std::forward_iterator_tag); 12329: 12329: 12329: 12329: 12329: void 12329: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 12329: 12329: 12329: 12329: 12329: void 12329: _M_default_append(size_type __n); 12329: 12329: 12329: bool 12329: _M_shrink_to_fit(); 12329: # 1824 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: struct _Temporary_value 12329: { 12329: template 12329: explicit 12329: _Temporary_value(vector* __vec, _Args&&... __args) : _M_this(__vec) 12329: { 12329: _Alloc_traits::construct(_M_this->_M_impl, _M_ptr(), 12329: std::forward<_Args>(__args)...); 12329: } 12329: 12329: 12329: ~_Temporary_value() 12329: { _Alloc_traits::destroy(_M_this->_M_impl, _M_ptr()); } 12329: 12329: value_type& 12329: _M_val() noexcept { return _M_storage._M_val; } 12329: 12329: private: 12329: _Tp* 12329: _M_ptr() noexcept { return std::__addressof(_M_storage._M_val); } 12329: 12329: union _Storage 12329: { 12329: constexpr _Storage() : _M_byte() { } 12329: ~_Storage() { } 12329: _Storage& operator=(const _Storage&) = delete; 12329: unsigned char _M_byte; 12329: _Tp _M_val; 12329: }; 12329: 12329: vector* _M_this; 12329: _Storage _M_storage; 12329: }; 12329: 12329: 12329: 12329: template 12329: 12329: void 12329: _M_insert_aux(iterator __position, _Arg&& __arg); 12329: 12329: template 12329: 12329: void 12329: _M_realloc_insert(iterator __position, _Args&&... __args); 12329: 12329: 12329: 12329: iterator 12329: _M_insert_rval(const_iterator __position, value_type&& __v); 12329: 12329: 12329: template 12329: 12329: iterator 12329: _M_emplace_aux(const_iterator __position, _Args&&... __args); 12329: 12329: 12329: 12329: iterator 12329: _M_emplace_aux(const_iterator __position, value_type&& __v) 12329: { return _M_insert_rval(__position, std::move(__v)); } 12329: 12329: 12329: 12329: 12329: size_type 12329: _M_check_len(size_type __n, const char* __s) const 12329: { 12329: if (max_size() - size() < __n) 12329: __throw_length_error((__s)); 12329: 12329: const size_type __len = size() + (std::max)(size(), __n); 12329: return (__len < size() || __len > max_size()) ? max_size() : __len; 12329: } 12329: 12329: 12329: static size_type 12329: _S_check_init_len(size_type __n, const allocator_type& __a) 12329: { 12329: if (__n > _S_max_size(_Tp_alloc_type(__a))) 12329: __throw_length_error( 12329: ("cannot create std::vector larger than max_size()")); 12329: return __n; 12329: } 12329: 12329: static size_type 12329: _S_max_size(const _Tp_alloc_type& __a) noexcept 12329: { 12329: 12329: 12329: 12329: const size_t __diffmax 12329: = __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 12329: const size_t __allocmax = _Alloc_traits::max_size(__a); 12329: return (std::min)(__diffmax, __allocmax); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: _M_erase_at_end(pointer __pos) noexcept 12329: { 12329: if (size_type __n = this->_M_impl._M_finish - __pos) 12329: { 12329: std::_Destroy(__pos, this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: this->_M_impl._M_finish = __pos; 12329: ; 12329: } 12329: } 12329: 12329: 12329: iterator 12329: _M_erase(iterator __position); 12329: 12329: 12329: iterator 12329: _M_erase(iterator __first, iterator __last); 12329: 12329: 12329: private: 12329: 12329: 12329: 12329: 12329: void 12329: _M_move_assign(vector&& __x, true_type) noexcept 12329: { 12329: vector __tmp(get_allocator()); 12329: this->_M_impl._M_swap_data(__x._M_impl); 12329: __tmp._M_impl._M_swap_data(__x._M_impl); 12329: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 12329: } 12329: 12329: 12329: 12329: 12329: void 12329: _M_move_assign(vector&& __x, false_type) 12329: { 12329: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 12329: _M_move_assign(std::move(__x), true_type()); 12329: else 12329: { 12329: 12329: 12329: this->_M_assign_aux(std::make_move_iterator(__x.begin()), 12329: std::make_move_iterator(__x.end()), 12329: std::random_access_iterator_tag()); 12329: __x.clear(); 12329: } 12329: } 12329: 12329: 12329: template 12329: 12329: _Up* 12329: _M_data_ptr(_Up* __ptr) const noexcept 12329: { return __ptr; } 12329: 12329: 12329: template 12329: 12329: typename std::pointer_traits<_Ptr>::element_type* 12329: _M_data_ptr(_Ptr __ptr) const 12329: { return empty() ? nullptr : std::__to_address(__ptr); } 12329: # 2010 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: }; 12329: # 2032 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: template 12329: 12329: inline bool 12329: operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 12329: { return (__x.size() == __y.size() 12329: && std::equal(__x.begin(), __x.end(), __y.begin())); } 12329: # 2072 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: template 12329: inline bool 12329: operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 12329: { return std::lexicographical_compare(__x.begin(), __x.end(), 12329: __y.begin(), __y.end()); } 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 12329: { return !(__x == __y); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 12329: { return __y < __x; } 12329: 12329: 12329: template 12329: inline bool 12329: operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 12329: { return !(__y < __x); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 12329: { return !(__x < __y); } 12329: 12329: 12329: 12329: template 12329: 12329: inline void 12329: swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) 12329: noexcept(noexcept(__x.swap(__y))) 12329: { __x.swap(__y); } 12329: 12329: 12329: # 2127 "/usr/include/c++/12/bits/stl_vector.h" 3 12329: 12329: } 12329: # 65 "/usr/include/c++/12/vector" 2 3 12329: # 1 "/usr/include/c++/12/bits/stl_bvector.h" 1 3 12329: # 64 "/usr/include/c++/12/bits/stl_bvector.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: typedef unsigned long _Bit_type; 12329: enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; 12329: 12329: __attribute__((__nonnull__)) 12329: 12329: void 12329: __fill_bvector_n(_Bit_type*, size_t, bool) noexcept; 12329: 12329: 12329: 12329: struct _Bit_reference 12329: { 12329: _Bit_type * _M_p; 12329: _Bit_type _M_mask; 12329: 12329: 12329: _Bit_reference(_Bit_type * __x, _Bit_type __y) 12329: : _M_p(__x), _M_mask(__y) { } 12329: 12329: 12329: _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } 12329: 12329: 12329: _Bit_reference(const _Bit_reference&) = default; 12329: 12329: 12329: 12329: operator bool() const noexcept 12329: { return !!(*_M_p & _M_mask); } 12329: 12329: 12329: _Bit_reference& 12329: operator=(bool __x) noexcept 12329: { 12329: if (__x) 12329: *_M_p |= _M_mask; 12329: else 12329: *_M_p &= ~_M_mask; 12329: return *this; 12329: } 12329: 12329: 12329: _Bit_reference& 12329: operator=(const _Bit_reference& __x) noexcept 12329: { return *this = bool(__x); } 12329: 12329: 12329: bool 12329: operator==(const _Bit_reference& __x) const 12329: { return bool(*this) == bool(__x); } 12329: 12329: 12329: bool 12329: operator<(const _Bit_reference& __x) const 12329: { return !bool(*this) && bool(__x); } 12329: 12329: 12329: void 12329: flip() noexcept 12329: { *_M_p ^= _M_mask; } 12329: 12329: 12329: 12329: friend void 12329: swap(_Bit_reference __x, _Bit_reference __y) noexcept 12329: { 12329: bool __tmp = __x; 12329: __x = __y; 12329: __y = __tmp; 12329: } 12329: 12329: 12329: friend void 12329: swap(_Bit_reference __x, bool& __y) noexcept 12329: { 12329: bool __tmp = __x; 12329: __x = __y; 12329: __y = __tmp; 12329: } 12329: 12329: 12329: friend void 12329: swap(bool& __x, _Bit_reference __y) noexcept 12329: { 12329: bool __tmp = __x; 12329: __x = __y; 12329: __y = __tmp; 12329: } 12329: 12329: }; 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: struct _Bit_iterator_base 12329: : public std::iterator 12329: { 12329: _Bit_type * _M_p; 12329: unsigned int _M_offset; 12329: 12329: 12329: _Bit_iterator_base(_Bit_type * __x, unsigned int __y) 12329: : _M_p(__x), _M_offset(__y) { } 12329: 12329: 12329: void 12329: _M_bump_up() 12329: { 12329: if (_M_offset++ == int(_S_word_bit) - 1) 12329: { 12329: _M_offset = 0; 12329: ++_M_p; 12329: } 12329: } 12329: 12329: 12329: void 12329: _M_bump_down() 12329: { 12329: if (_M_offset-- == 0) 12329: { 12329: _M_offset = int(_S_word_bit) - 1; 12329: --_M_p; 12329: } 12329: } 12329: 12329: 12329: void 12329: _M_incr(ptrdiff_t __i) 12329: { 12329: difference_type __n = __i + _M_offset; 12329: _M_p += __n / int(_S_word_bit); 12329: __n = __n % int(_S_word_bit); 12329: if (__n < 0) 12329: { 12329: __n += int(_S_word_bit); 12329: --_M_p; 12329: } 12329: _M_offset = static_cast(__n); 12329: } 12329: 12329: 12329: friend bool 12329: operator==(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 12329: { return __x._M_p == __y._M_p && __x._M_offset == __y._M_offset; } 12329: # 225 "/usr/include/c++/12/bits/stl_bvector.h" 3 12329: 12329: friend bool 12329: operator<(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 12329: { 12329: return __x._M_p < __y._M_p 12329: || (__x._M_p == __y._M_p && __x._M_offset < __y._M_offset); 12329: } 12329: 12329: 12329: friend bool 12329: operator!=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 12329: { return !(__x == __y); } 12329: 12329: 12329: friend bool 12329: operator>(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 12329: { return __y < __x; } 12329: 12329: 12329: friend bool 12329: operator<=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 12329: { return !(__y < __x); } 12329: 12329: 12329: friend bool 12329: operator>=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 12329: { return !(__x < __y); } 12329: 12329: 12329: friend ptrdiff_t 12329: operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 12329: { 12329: return (int(_S_word_bit) * (__x._M_p - __y._M_p) 12329: + __x._M_offset - __y._M_offset); 12329: } 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: struct _Bit_iterator : public _Bit_iterator_base 12329: { 12329: typedef _Bit_reference reference; 12329: 12329: 12329: 12329: typedef _Bit_reference* pointer; 12329: 12329: typedef _Bit_iterator iterator; 12329: 12329: 12329: _Bit_iterator() : _Bit_iterator_base(0, 0) { } 12329: 12329: 12329: _Bit_iterator(_Bit_type * __x, unsigned int __y) 12329: : _Bit_iterator_base(__x, __y) { } 12329: 12329: 12329: iterator 12329: _M_const_cast() const 12329: { return *this; } 12329: 12329: 12329: reference 12329: operator*() const 12329: { return reference(_M_p, 1UL << _M_offset); } 12329: 12329: 12329: iterator& 12329: operator++() 12329: { 12329: _M_bump_up(); 12329: return *this; 12329: } 12329: 12329: 12329: iterator 12329: operator++(int) 12329: { 12329: iterator __tmp = *this; 12329: _M_bump_up(); 12329: return __tmp; 12329: } 12329: 12329: 12329: iterator& 12329: operator--() 12329: { 12329: _M_bump_down(); 12329: return *this; 12329: } 12329: 12329: 12329: iterator 12329: operator--(int) 12329: { 12329: iterator __tmp = *this; 12329: _M_bump_down(); 12329: return __tmp; 12329: } 12329: 12329: 12329: iterator& 12329: operator+=(difference_type __i) 12329: { 12329: _M_incr(__i); 12329: return *this; 12329: } 12329: 12329: 12329: iterator& 12329: operator-=(difference_type __i) 12329: { 12329: *this += -__i; 12329: return *this; 12329: } 12329: 12329: 12329: reference 12329: operator[](difference_type __i) const 12329: { return *(*this + __i); } 12329: 12329: 12329: friend iterator 12329: operator+(const iterator& __x, difference_type __n) 12329: { 12329: iterator __tmp = __x; 12329: __tmp += __n; 12329: return __tmp; 12329: } 12329: 12329: 12329: friend iterator 12329: operator+(difference_type __n, const iterator& __x) 12329: { return __x + __n; } 12329: 12329: 12329: friend iterator 12329: operator-(const iterator& __x, difference_type __n) 12329: { 12329: iterator __tmp = __x; 12329: __tmp -= __n; 12329: return __tmp; 12329: } 12329: }; 12329: 12329: struct _Bit_const_iterator : public _Bit_iterator_base 12329: { 12329: typedef bool reference; 12329: typedef bool const_reference; 12329: 12329: 12329: 12329: typedef const bool* pointer; 12329: 12329: typedef _Bit_const_iterator const_iterator; 12329: 12329: 12329: _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } 12329: 12329: 12329: _Bit_const_iterator(_Bit_type * __x, unsigned int __y) 12329: : _Bit_iterator_base(__x, __y) { } 12329: 12329: 12329: _Bit_const_iterator(const _Bit_iterator& __x) 12329: : _Bit_iterator_base(__x._M_p, __x._M_offset) { } 12329: 12329: 12329: _Bit_iterator 12329: _M_const_cast() const 12329: { return _Bit_iterator(_M_p, _M_offset); } 12329: 12329: 12329: const_reference 12329: operator*() const 12329: { return _Bit_reference(_M_p, 1UL << _M_offset); } 12329: 12329: 12329: const_iterator& 12329: operator++() 12329: { 12329: _M_bump_up(); 12329: return *this; 12329: } 12329: 12329: 12329: const_iterator 12329: operator++(int) 12329: { 12329: const_iterator __tmp = *this; 12329: _M_bump_up(); 12329: return __tmp; 12329: } 12329: 12329: 12329: const_iterator& 12329: operator--() 12329: { 12329: _M_bump_down(); 12329: return *this; 12329: } 12329: 12329: 12329: const_iterator 12329: operator--(int) 12329: { 12329: const_iterator __tmp = *this; 12329: _M_bump_down(); 12329: return __tmp; 12329: } 12329: 12329: 12329: const_iterator& 12329: operator+=(difference_type __i) 12329: { 12329: _M_incr(__i); 12329: return *this; 12329: } 12329: 12329: 12329: const_iterator& 12329: operator-=(difference_type __i) 12329: { 12329: *this += -__i; 12329: return *this; 12329: } 12329: 12329: 12329: const_reference 12329: operator[](difference_type __i) const 12329: { return *(*this + __i); } 12329: 12329: 12329: friend const_iterator 12329: operator+(const const_iterator& __x, difference_type __n) 12329: { 12329: const_iterator __tmp = __x; 12329: __tmp += __n; 12329: return __tmp; 12329: } 12329: 12329: 12329: friend const_iterator 12329: operator-(const const_iterator& __x, difference_type __n) 12329: { 12329: const_iterator __tmp = __x; 12329: __tmp -= __n; 12329: return __tmp; 12329: } 12329: 12329: 12329: friend const_iterator 12329: operator+(difference_type __n, const const_iterator& __x) 12329: { return __x + __n; } 12329: }; 12329: 12329: template 12329: struct _Bvector_base 12329: { 12329: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 12329: rebind<_Bit_type>::other _Bit_alloc_type; 12329: typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> 12329: _Bit_alloc_traits; 12329: typedef typename _Bit_alloc_traits::pointer _Bit_pointer; 12329: 12329: struct _Bvector_impl_data 12329: { 12329: 12329: _Bit_iterator _M_start; 12329: # 502 "/usr/include/c++/12/bits/stl_bvector.h" 3 12329: _Bit_iterator _M_finish; 12329: _Bit_pointer _M_end_of_storage; 12329: 12329: 12329: _Bvector_impl_data() noexcept 12329: : _M_start(), _M_finish(), _M_end_of_storage() 12329: { } 12329: 12329: 12329: _Bvector_impl_data(const _Bvector_impl_data&) = default; 12329: 12329: _Bvector_impl_data& 12329: operator=(const _Bvector_impl_data&) = default; 12329: 12329: 12329: _Bvector_impl_data(_Bvector_impl_data&& __x) noexcept 12329: : _Bvector_impl_data(__x) 12329: { __x._M_reset(); } 12329: 12329: 12329: void 12329: _M_move_data(_Bvector_impl_data&& __x) noexcept 12329: { 12329: *this = __x; 12329: __x._M_reset(); 12329: } 12329: 12329: 12329: 12329: void 12329: _M_reset() noexcept 12329: { *this = _Bvector_impl_data(); } 12329: 12329: 12329: void 12329: _M_swap_data(_Bvector_impl_data& __x) noexcept 12329: { 12329: 12329: 12329: std::swap(*this, __x); 12329: } 12329: }; 12329: 12329: struct _Bvector_impl 12329: : public _Bit_alloc_type, public _Bvector_impl_data 12329: { 12329: 12329: _Bvector_impl() noexcept(is_nothrow_default_constructible<_Bit_alloc_type>::value) 12329: 12329: : _Bit_alloc_type() 12329: { } 12329: 12329: 12329: _Bvector_impl(const _Bit_alloc_type& __a) noexcept 12329: : _Bit_alloc_type(__a) 12329: { } 12329: 12329: 12329: 12329: 12329: 12329: _Bvector_impl(_Bvector_impl&& __x) noexcept 12329: : _Bit_alloc_type(std::move(__x)), _Bvector_impl_data(std::move(__x)) 12329: { } 12329: 12329: 12329: _Bvector_impl(_Bit_alloc_type&& __a, _Bvector_impl&& __x) noexcept 12329: : _Bit_alloc_type(std::move(__a)), _Bvector_impl_data(std::move(__x)) 12329: { } 12329: 12329: 12329: 12329: _Bit_type* 12329: _M_end_addr() const noexcept 12329: { 12329: if (this->_M_end_of_storage) 12329: return std::__addressof(this->_M_end_of_storage[-1]) + 1; 12329: return 0; 12329: } 12329: }; 12329: 12329: public: 12329: typedef _Alloc allocator_type; 12329: 12329: 12329: _Bit_alloc_type& 12329: _M_get_Bit_allocator() noexcept 12329: { return this->_M_impl; } 12329: 12329: 12329: const _Bit_alloc_type& 12329: _M_get_Bit_allocator() const noexcept 12329: { return this->_M_impl; } 12329: 12329: 12329: allocator_type 12329: get_allocator() const noexcept 12329: { return allocator_type(_M_get_Bit_allocator()); } 12329: 12329: 12329: _Bvector_base() = default; 12329: 12329: 12329: 12329: 12329: 12329: _Bvector_base(const allocator_type& __a) 12329: : _M_impl(__a) { } 12329: 12329: 12329: _Bvector_base(_Bvector_base&&) = default; 12329: 12329: 12329: _Bvector_base(_Bvector_base&& __x, const allocator_type& __a) noexcept 12329: : _M_impl(_Bit_alloc_type(__a), std::move(__x._M_impl)) 12329: { } 12329: 12329: 12329: 12329: ~_Bvector_base() 12329: { this->_M_deallocate(); } 12329: 12329: protected: 12329: _Bvector_impl _M_impl; 12329: 12329: 12329: _Bit_pointer 12329: _M_allocate(size_t __n) 12329: { 12329: _Bit_pointer __p = _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); 12329: # 640 "/usr/include/c++/12/bits/stl_bvector.h" 3 12329: return __p; 12329: } 12329: 12329: 12329: void 12329: _M_deallocate() 12329: { 12329: if (_M_impl._M_start._M_p) 12329: { 12329: const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; 12329: _Bit_alloc_traits::deallocate(_M_impl, 12329: _M_impl._M_end_of_storage - __n, 12329: __n); 12329: _M_impl._M_reset(); 12329: } 12329: } 12329: 12329: 12329: 12329: void 12329: _M_move_data(_Bvector_base&& __x) noexcept 12329: { _M_impl._M_move_data(std::move(__x._M_impl)); } 12329: 12329: 12329: constexpr 12329: static size_t 12329: _S_nword(size_t __n) 12329: { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } 12329: }; 12329: # 689 "/usr/include/c++/12/bits/stl_bvector.h" 3 12329: template 12329: class vector : protected _Bvector_base<_Alloc> 12329: { 12329: typedef _Bvector_base<_Alloc> _Base; 12329: typedef typename _Base::_Bit_pointer _Bit_pointer; 12329: typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; 12329: 12329: 12329: friend struct std::hash; 12329: 12329: 12329: public: 12329: typedef bool value_type; 12329: typedef size_t size_type; 12329: typedef ptrdiff_t difference_type; 12329: typedef _Bit_reference reference; 12329: typedef bool const_reference; 12329: typedef _Bit_reference* pointer; 12329: typedef const bool* const_pointer; 12329: typedef _Bit_iterator iterator; 12329: typedef _Bit_const_iterator const_iterator; 12329: typedef std::reverse_iterator const_reverse_iterator; 12329: typedef std::reverse_iterator reverse_iterator; 12329: typedef _Alloc allocator_type; 12329: 12329: 12329: allocator_type 12329: get_allocator() const 12329: { return _Base::get_allocator(); } 12329: 12329: protected: 12329: using _Base::_M_allocate; 12329: using _Base::_M_deallocate; 12329: using _Base::_S_nword; 12329: using _Base::_M_get_Bit_allocator; 12329: 12329: public: 12329: 12329: vector() = default; 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: vector(const allocator_type& __a) 12329: : _Base(__a) { } 12329: 12329: 12329: 12329: explicit 12329: vector(size_type __n, const allocator_type& __a = allocator_type()) 12329: : vector(__n, false, __a) 12329: { } 12329: 12329: 12329: vector(size_type __n, const bool& __value, 12329: const allocator_type& __a = allocator_type()) 12329: 12329: 12329: 12329: 12329: 12329: : _Base(__a) 12329: { 12329: _M_initialize(__n); 12329: _M_initialize_value(__value); 12329: } 12329: 12329: 12329: vector(const vector& __x) 12329: : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) 12329: { 12329: _M_initialize(__x.size()); 12329: _M_copy_aligned(__x.begin(), __x.end(), begin()); 12329: } 12329: 12329: 12329: vector(vector&&) = default; 12329: 12329: private: 12329: 12329: vector(vector&& __x, const allocator_type& __a, true_type) noexcept 12329: : _Base(std::move(__x), __a) 12329: { } 12329: 12329: 12329: vector(vector&& __x, const allocator_type& __a, false_type) 12329: : _Base(__a) 12329: { 12329: if (__x.get_allocator() == __a) 12329: this->_M_move_data(std::move(__x)); 12329: else 12329: { 12329: _M_initialize(__x.size()); 12329: _M_copy_aligned(__x.begin(), __x.end(), begin()); 12329: __x.clear(); 12329: } 12329: } 12329: 12329: public: 12329: 12329: vector(vector&& __x, const __type_identity_t& __a) 12329: noexcept(_Bit_alloc_traits::_S_always_equal()) 12329: : vector(std::move(__x), __a, 12329: typename _Bit_alloc_traits::is_always_equal{}) 12329: { } 12329: 12329: 12329: vector(const vector& __x, const __type_identity_t& __a) 12329: : _Base(__a) 12329: { 12329: _M_initialize(__x.size()); 12329: _M_copy_aligned(__x.begin(), __x.end(), begin()); 12329: } 12329: 12329: 12329: vector(initializer_list __l, 12329: const allocator_type& __a = allocator_type()) 12329: : _Base(__a) 12329: { 12329: _M_initialize_range(__l.begin(), __l.end(), 12329: random_access_iterator_tag()); 12329: } 12329: 12329: 12329: 12329: template> 12329: 12329: vector(_InputIterator __first, _InputIterator __last, 12329: const allocator_type& __a = allocator_type()) 12329: : _Base(__a) 12329: { 12329: _M_initialize_range(__first, __last, 12329: std::__iterator_category(__first)); 12329: } 12329: # 838 "/usr/include/c++/12/bits/stl_bvector.h" 3 12329: 12329: ~vector() noexcept { } 12329: 12329: 12329: vector& 12329: operator=(const vector& __x) 12329: { 12329: if (&__x == this) 12329: return *this; 12329: 12329: if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) 12329: { 12329: if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) 12329: { 12329: this->_M_deallocate(); 12329: std::__alloc_on_copy(_M_get_Bit_allocator(), 12329: __x._M_get_Bit_allocator()); 12329: _M_initialize(__x.size()); 12329: } 12329: else 12329: std::__alloc_on_copy(_M_get_Bit_allocator(), 12329: __x._M_get_Bit_allocator()); 12329: } 12329: 12329: if (__x.size() > capacity()) 12329: { 12329: this->_M_deallocate(); 12329: _M_initialize(__x.size()); 12329: } 12329: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 12329: begin()); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: vector& 12329: operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) 12329: { 12329: if (_Bit_alloc_traits::_S_propagate_on_move_assign() 12329: || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) 12329: { 12329: this->_M_deallocate(); 12329: this->_M_move_data(std::move(__x)); 12329: std::__alloc_on_move(_M_get_Bit_allocator(), 12329: __x._M_get_Bit_allocator()); 12329: } 12329: else 12329: { 12329: if (__x.size() > capacity()) 12329: { 12329: this->_M_deallocate(); 12329: _M_initialize(__x.size()); 12329: } 12329: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 12329: begin()); 12329: __x.clear(); 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: vector& 12329: operator=(initializer_list __l) 12329: { 12329: this->assign(__l.begin(), __l.end()); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: assign(size_type __n, const bool& __x) 12329: { _M_fill_assign(__n, __x); } 12329: 12329: 12329: template> 12329: 12329: void 12329: assign(_InputIterator __first, _InputIterator __last) 12329: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 12329: # 936 "/usr/include/c++/12/bits/stl_bvector.h" 3 12329: 12329: void 12329: assign(initializer_list __l) 12329: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 12329: 12329: 12329: 12329: iterator 12329: begin() noexcept 12329: { return iterator(this->_M_impl._M_start._M_p, 0); } 12329: 12329: 12329: const_iterator 12329: begin() const noexcept 12329: { return const_iterator(this->_M_impl._M_start._M_p, 0); } 12329: 12329: 12329: iterator 12329: end() noexcept 12329: { return this->_M_impl._M_finish; } 12329: 12329: 12329: const_iterator 12329: end() const noexcept 12329: { return this->_M_impl._M_finish; } 12329: 12329: 12329: reverse_iterator 12329: rbegin() noexcept 12329: { return reverse_iterator(end()); } 12329: 12329: 12329: const_reverse_iterator 12329: rbegin() const noexcept 12329: { return const_reverse_iterator(end()); } 12329: 12329: 12329: reverse_iterator 12329: rend() noexcept 12329: { return reverse_iterator(begin()); } 12329: 12329: 12329: const_reverse_iterator 12329: rend() const noexcept 12329: { return const_reverse_iterator(begin()); } 12329: 12329: 12329: [[__nodiscard__]] 12329: const_iterator 12329: cbegin() const noexcept 12329: { return const_iterator(this->_M_impl._M_start._M_p, 0); } 12329: 12329: [[__nodiscard__]] 12329: const_iterator 12329: cend() const noexcept 12329: { return this->_M_impl._M_finish; } 12329: 12329: [[__nodiscard__]] 12329: const_reverse_iterator 12329: crbegin() const noexcept 12329: { return const_reverse_iterator(end()); } 12329: 12329: [[__nodiscard__]] 12329: const_reverse_iterator 12329: crend() const noexcept 12329: { return const_reverse_iterator(begin()); } 12329: 12329: 12329: 12329: size_type 12329: size() const noexcept 12329: { return size_type(end() - begin()); } 12329: 12329: 12329: size_type 12329: max_size() const noexcept 12329: { 12329: const size_type __isize = 12329: __gnu_cxx::__numeric_traits::__max 12329: - int(_S_word_bit) + 1; 12329: const size_type __asize 12329: = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); 12329: return (__asize <= __isize / int(_S_word_bit) 12329: ? __asize * int(_S_word_bit) : __isize); 12329: } 12329: 12329: 12329: size_type 12329: capacity() const noexcept 12329: { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) 12329: - begin()); } 12329: 12329: 12329: bool 12329: empty() const noexcept 12329: { return begin() == end(); } 12329: 12329: 12329: reference 12329: operator[](size_type __n) 12329: { return begin()[__n]; } 12329: 12329: 12329: const_reference 12329: operator[](size_type __n) const 12329: { return begin()[__n]; } 12329: 12329: protected: 12329: 12329: void 12329: _M_range_check(size_type __n) const 12329: { 12329: if (__n >= this->size()) 12329: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 12329: 12329: , 12329: __n, this->size()); 12329: } 12329: 12329: public: 12329: 12329: reference 12329: at(size_type __n) 12329: { 12329: _M_range_check(__n); 12329: return (*this)[__n]; 12329: } 12329: 12329: 12329: const_reference 12329: at(size_type __n) const 12329: { 12329: _M_range_check(__n); 12329: return (*this)[__n]; 12329: } 12329: 12329: 12329: void 12329: reserve(size_type __n) 12329: { 12329: if (__n > max_size()) 12329: __throw_length_error(("vector::reserve")); 12329: if (capacity() < __n) 12329: _M_reallocate(__n); 12329: } 12329: 12329: 12329: reference 12329: front() 12329: { return *begin(); } 12329: 12329: 12329: const_reference 12329: front() const 12329: { return *begin(); } 12329: 12329: 12329: reference 12329: back() 12329: { return *(end() - 1); } 12329: 12329: 12329: const_reference 12329: back() const 12329: { return *(end() - 1); } 12329: 12329: 12329: void 12329: push_back(bool __x) 12329: { 12329: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 12329: *this->_M_impl._M_finish++ = __x; 12329: else 12329: _M_insert_aux(end(), __x); 12329: } 12329: 12329: 12329: void 12329: swap(vector& __x) noexcept 12329: { 12329: 12329: do { if (std::__is_constant_evaluated() && !bool(_Bit_alloc_traits::propagate_on_container_swap::value || _M_get_Bit_allocator() == __x._M_get_Bit_allocator())) __builtin_unreachable(); } while (false) 12329: ; 12329: 12329: this->_M_impl._M_swap_data(__x._M_impl); 12329: _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), 12329: __x._M_get_Bit_allocator()); 12329: } 12329: 12329: 12329: 12329: static void 12329: swap(reference __x, reference __y) noexcept 12329: { 12329: bool __tmp = __x; 12329: __x = __y; 12329: __y = __tmp; 12329: } 12329: 12329: 12329: iterator 12329: 12329: insert(const_iterator __position, const bool& __x) 12329: 12329: 12329: 12329: { 12329: const difference_type __n = __position - begin(); 12329: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() 12329: && __position == end()) 12329: *this->_M_impl._M_finish++ = __x; 12329: else 12329: _M_insert_aux(__position._M_const_cast(), __x); 12329: return begin() + __n; 12329: } 12329: 12329: 12329: __attribute__ ((__deprecated__ ("use '" "insert(position, false)" "' instead"))) 12329: iterator 12329: insert(const_iterator __position) 12329: { return this->insert(__position._M_const_cast(), false); } 12329: 12329: 12329: 12329: template> 12329: 12329: iterator 12329: insert(const_iterator __position, 12329: _InputIterator __first, _InputIterator __last) 12329: { 12329: difference_type __offset = __position - cbegin(); 12329: _M_insert_range(__position._M_const_cast(), 12329: __first, __last, 12329: std::__iterator_category(__first)); 12329: return begin() + __offset; 12329: } 12329: # 1186 "/usr/include/c++/12/bits/stl_bvector.h" 3 12329: 12329: iterator 12329: insert(const_iterator __position, size_type __n, const bool& __x) 12329: { 12329: difference_type __offset = __position - cbegin(); 12329: _M_fill_insert(__position._M_const_cast(), __n, __x); 12329: return begin() + __offset; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: insert(const_iterator __p, initializer_list __l) 12329: { return this->insert(__p, __l.begin(), __l.end()); } 12329: 12329: 12329: 12329: void 12329: pop_back() 12329: { --this->_M_impl._M_finish; } 12329: 12329: 12329: iterator 12329: 12329: erase(const_iterator __position) 12329: 12329: 12329: 12329: { return _M_erase(__position._M_const_cast()); } 12329: 12329: 12329: iterator 12329: 12329: erase(const_iterator __first, const_iterator __last) 12329: 12329: 12329: 12329: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 12329: 12329: 12329: void 12329: resize(size_type __new_size, bool __x = bool()) 12329: { 12329: if (__new_size < size()) 12329: _M_erase_at_end(begin() + difference_type(__new_size)); 12329: else 12329: insert(end(), __new_size - size(), __x); 12329: } 12329: 12329: 12329: 12329: void 12329: shrink_to_fit() 12329: { _M_shrink_to_fit(); } 12329: 12329: 12329: 12329: void 12329: flip() noexcept 12329: { 12329: _Bit_type * const __end = this->_M_impl._M_end_addr(); 12329: for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) 12329: *__p = ~*__p; 12329: } 12329: 12329: 12329: void 12329: clear() noexcept 12329: { _M_erase_at_end(begin()); } 12329: 12329: 12329: template 12329: 12329: 12329: 12329: 12329: void 12329: 12329: emplace_back(_Args&&... __args) 12329: { 12329: push_back(bool(__args...)); 12329: 12329: 12329: 12329: } 12329: 12329: template 12329: 12329: iterator 12329: emplace(const_iterator __pos, _Args&&... __args) 12329: { return insert(__pos, bool(__args...)); } 12329: 12329: 12329: protected: 12329: 12329: 12329: iterator 12329: _M_copy_aligned(const_iterator __first, const_iterator __last, 12329: iterator __result) 12329: { 12329: _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); 12329: return std::copy(const_iterator(__last._M_p, 0), __last, 12329: iterator(__q, 0)); 12329: } 12329: 12329: 12329: void 12329: _M_initialize(size_type __n) 12329: { 12329: if (__n) 12329: { 12329: _Bit_pointer __q = this->_M_allocate(__n); 12329: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 12329: iterator __start = iterator(std::__addressof(*__q), 0); 12329: this->_M_impl._M_start = __start; 12329: this->_M_impl._M_finish = __start + difference_type(__n); 12329: } 12329: } 12329: 12329: 12329: void 12329: _M_initialize_value(bool __x) noexcept 12329: { 12329: if (_Bit_type* __p = this->_M_impl._M_start._M_p) 12329: __fill_bvector_n(__p, this->_M_impl._M_end_addr() - __p, __x); 12329: } 12329: 12329: 12329: void 12329: _M_reallocate(size_type __n); 12329: 12329: 12329: 12329: bool 12329: _M_shrink_to_fit(); 12329: # 1347 "/usr/include/c++/12/bits/stl_bvector.h" 3 12329: template 12329: 12329: void 12329: _M_initialize_range(_InputIterator __first, _InputIterator __last, 12329: std::input_iterator_tag) 12329: { 12329: for (; __first != __last; ++__first) 12329: push_back(*__first); 12329: } 12329: 12329: template 12329: 12329: void 12329: _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, 12329: std::forward_iterator_tag) 12329: { 12329: const size_type __n = std::distance(__first, __last); 12329: _M_initialize(__n); 12329: std::copy(__first, __last, begin()); 12329: } 12329: # 1383 "/usr/include/c++/12/bits/stl_bvector.h" 3 12329: 12329: void 12329: _M_fill_assign(size_t __n, bool __x) 12329: { 12329: if (__n > size()) 12329: { 12329: _M_initialize_value(__x); 12329: insert(end(), __n - size(), __x); 12329: } 12329: else 12329: { 12329: _M_erase_at_end(begin() + __n); 12329: _M_initialize_value(__x); 12329: } 12329: } 12329: 12329: template 12329: 12329: void 12329: _M_assign_aux(_InputIterator __first, _InputIterator __last, 12329: std::input_iterator_tag) 12329: { 12329: iterator __cur = begin(); 12329: for (; __first != __last && __cur != end(); ++__cur, (void)++__first) 12329: *__cur = *__first; 12329: if (__first == __last) 12329: _M_erase_at_end(__cur); 12329: else 12329: insert(end(), __first, __last); 12329: } 12329: 12329: template 12329: 12329: void 12329: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 12329: std::forward_iterator_tag) 12329: { 12329: const size_type __len = std::distance(__first, __last); 12329: if (__len < size()) 12329: _M_erase_at_end(std::copy(__first, __last, begin())); 12329: else 12329: { 12329: _ForwardIterator __mid = __first; 12329: std::advance(__mid, size()); 12329: std::copy(__first, __mid, begin()); 12329: insert(end(), __mid, __last); 12329: } 12329: } 12329: # 1450 "/usr/include/c++/12/bits/stl_bvector.h" 3 12329: 12329: void 12329: _M_fill_insert(iterator __position, size_type __n, bool __x); 12329: 12329: template 12329: 12329: void 12329: _M_insert_range(iterator __pos, _InputIterator __first, 12329: _InputIterator __last, std::input_iterator_tag) 12329: { 12329: for (; __first != __last; ++__first) 12329: { 12329: __pos = insert(__pos, *__first); 12329: ++__pos; 12329: } 12329: } 12329: 12329: template 12329: 12329: void 12329: _M_insert_range(iterator __position, _ForwardIterator __first, 12329: _ForwardIterator __last, std::forward_iterator_tag); 12329: 12329: 12329: void 12329: _M_insert_aux(iterator __position, bool __x); 12329: 12329: 12329: size_type 12329: _M_check_len(size_type __n, const char* __s) const 12329: { 12329: if (max_size() - size() < __n) 12329: __throw_length_error((__s)); 12329: 12329: const size_type __len = size() + std::max(size(), __n); 12329: return (__len < size() || __len > max_size()) ? max_size() : __len; 12329: } 12329: 12329: 12329: void 12329: _M_erase_at_end(iterator __pos) 12329: { this->_M_impl._M_finish = __pos; } 12329: 12329: 12329: iterator 12329: _M_erase(iterator __pos); 12329: 12329: 12329: iterator 12329: _M_erase(iterator __first, iterator __last); 12329: 12329: protected: 12329: 12329: 12329: 12329: 12329: 12329: 12329: void data() = delete; 12329: 12329: 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: inline void 12329: __fill_bvector(_Bit_type* __v, unsigned int __first, unsigned int __last, 12329: bool __x) noexcept 12329: { 12329: const _Bit_type __fmask = ~0ul << __first; 12329: const _Bit_type __lmask = ~0ul >> (_S_word_bit - __last); 12329: const _Bit_type __mask = __fmask & __lmask; 12329: 12329: if (__x) 12329: *__v |= __mask; 12329: else 12329: *__v &= ~__mask; 12329: } 12329: 12329: 12329: __attribute__((__nonnull__)) 12329: 12329: inline void 12329: __fill_bvector_n(_Bit_type* __p, size_t __n, bool __x) noexcept 12329: { 12329: # 1546 "/usr/include/c++/12/bits/stl_bvector.h" 3 12329: __builtin_memset(__p, __x ? ~0 : 0, __n * sizeof(_Bit_type)); 12329: } 12329: 12329: 12329: 12329: inline void 12329: __fill_a1(std::_Bit_iterator __first, 12329: std::_Bit_iterator __last, const bool& __x) 12329: { 12329: if (__first._M_p != __last._M_p) 12329: { 12329: _Bit_type* __first_p = __first._M_p; 12329: if (__first._M_offset != 0) 12329: __fill_bvector(__first_p++, __first._M_offset, _S_word_bit, __x); 12329: 12329: __fill_bvector_n(__first_p, __last._M_p - __first_p, __x); 12329: 12329: if (__last._M_offset != 0) 12329: __fill_bvector(__last._M_p, 0, __last._M_offset, __x); 12329: } 12329: else if (__first._M_offset != __last._M_offset) 12329: __fill_bvector(__first._M_p, __first._M_offset, __last._M_offset, __x); 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: struct hash> 12329: : public __hash_base> 12329: { 12329: size_t 12329: operator()(const std::vector&) const noexcept; 12329: }; 12329: 12329: 12329: 12329: } 12329: # 66 "/usr/include/c++/12/vector" 2 3 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/vector.tcc" 1 3 12329: # 59 "/usr/include/c++/12/bits/vector.tcc" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: template 12329: 12329: void 12329: vector<_Tp, _Alloc>:: 12329: reserve(size_type __n) 12329: { 12329: if (__n > this->max_size()) 12329: __throw_length_error(("vector::reserve")); 12329: if (this->capacity() < __n) 12329: { 12329: const size_type __old_size = size(); 12329: pointer __tmp; 12329: 12329: if (_S_use_relocate()) 12329: { 12329: __tmp = this->_M_allocate(__n); 12329: _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish, 12329: __tmp, _M_get_Tp_allocator()); 12329: } 12329: else 12329: 12329: { 12329: __tmp = _M_allocate_and_copy(__n, 12329: std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), 12329: std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); 12329: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: } 12329: ; 12329: _M_deallocate(this->_M_impl._M_start, 12329: this->_M_impl._M_end_of_storage 12329: - this->_M_impl._M_start); 12329: this->_M_impl._M_start = __tmp; 12329: this->_M_impl._M_finish = __tmp + __old_size; 12329: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 12329: } 12329: } 12329: 12329: 12329: template 12329: template 12329: 12329: 12329: 12329: 12329: void 12329: 12329: vector<_Tp, _Alloc>:: 12329: emplace_back(_Args&&... __args) 12329: { 12329: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 12329: { 12329: ; 12329: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 12329: std::forward<_Args>(__args)...); 12329: ++this->_M_impl._M_finish; 12329: ; 12329: } 12329: else 12329: _M_realloc_insert(end(), std::forward<_Args>(__args)...); 12329: 12329: 12329: 12329: } 12329: 12329: 12329: template 12329: 12329: typename vector<_Tp, _Alloc>::iterator 12329: vector<_Tp, _Alloc>:: 12329: 12329: insert(const_iterator __position, const value_type& __x) 12329: 12329: 12329: 12329: { 12329: const size_type __n = __position - begin(); 12329: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 12329: if (__position == end()) 12329: { 12329: ; 12329: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 12329: __x); 12329: ++this->_M_impl._M_finish; 12329: ; 12329: } 12329: else 12329: { 12329: 12329: const auto __pos = begin() + (__position - cbegin()); 12329: 12329: 12329: _Temporary_value __x_copy(this, __x); 12329: _M_insert_aux(__pos, std::move(__x_copy._M_val())); 12329: 12329: 12329: 12329: } 12329: else 12329: 12329: _M_realloc_insert(begin() + (__position - cbegin()), __x); 12329: 12329: 12329: 12329: 12329: return iterator(this->_M_impl._M_start + __n); 12329: } 12329: 12329: template 12329: 12329: typename vector<_Tp, _Alloc>::iterator 12329: vector<_Tp, _Alloc>:: 12329: _M_erase(iterator __position) 12329: { 12329: if (__position + 1 != end()) 12329: std::move(__position + 1, end(), __position); 12329: --this->_M_impl._M_finish; 12329: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 12329: ; 12329: return __position; 12329: } 12329: 12329: template 12329: 12329: typename vector<_Tp, _Alloc>::iterator 12329: vector<_Tp, _Alloc>:: 12329: _M_erase(iterator __first, iterator __last) 12329: { 12329: if (__first != __last) 12329: { 12329: if (__last != end()) 12329: std::move(__last, end(), __first); 12329: _M_erase_at_end(__first.base() + (end() - __last)); 12329: } 12329: return __first; 12329: } 12329: 12329: template 12329: 12329: vector<_Tp, _Alloc>& 12329: vector<_Tp, _Alloc>:: 12329: operator=(const vector<_Tp, _Alloc>& __x) 12329: { 12329: if (std::__addressof(__x) != this) 12329: { 12329: ; 12329: 12329: if (_Alloc_traits::_S_propagate_on_copy_assign()) 12329: { 12329: if (!_Alloc_traits::_S_always_equal() 12329: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 12329: { 12329: 12329: this->clear(); 12329: _M_deallocate(this->_M_impl._M_start, 12329: this->_M_impl._M_end_of_storage 12329: - this->_M_impl._M_start); 12329: this->_M_impl._M_start = nullptr; 12329: this->_M_impl._M_finish = nullptr; 12329: this->_M_impl._M_end_of_storage = nullptr; 12329: } 12329: std::__alloc_on_copy(_M_get_Tp_allocator(), 12329: __x._M_get_Tp_allocator()); 12329: } 12329: 12329: const size_type __xlen = __x.size(); 12329: if (__xlen > capacity()) 12329: { 12329: pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), 12329: __x.end()); 12329: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: _M_deallocate(this->_M_impl._M_start, 12329: this->_M_impl._M_end_of_storage 12329: - this->_M_impl._M_start); 12329: this->_M_impl._M_start = __tmp; 12329: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; 12329: } 12329: else if (size() >= __xlen) 12329: { 12329: std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), 12329: end(), _M_get_Tp_allocator()); 12329: } 12329: else 12329: { 12329: std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), 12329: this->_M_impl._M_start); 12329: std::__uninitialized_copy_a(__x._M_impl._M_start + size(), 12329: __x._M_impl._M_finish, 12329: this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: } 12329: this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: 12329: void 12329: vector<_Tp, _Alloc>:: 12329: _M_fill_assign(size_t __n, const value_type& __val) 12329: { 12329: if (__n > capacity()) 12329: { 12329: vector __tmp(__n, __val, _M_get_Tp_allocator()); 12329: __tmp._M_impl._M_swap_data(this->_M_impl); 12329: } 12329: else if (__n > size()) 12329: { 12329: std::fill(begin(), end(), __val); 12329: const size_type __add = __n - size(); 12329: ; 12329: this->_M_impl._M_finish = 12329: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 12329: __add, __val, _M_get_Tp_allocator()); 12329: ; 12329: } 12329: else 12329: _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); 12329: } 12329: 12329: template 12329: template 12329: 12329: void 12329: vector<_Tp, _Alloc>:: 12329: _M_assign_aux(_InputIterator __first, _InputIterator __last, 12329: std::input_iterator_tag) 12329: { 12329: pointer __cur(this->_M_impl._M_start); 12329: for (; __first != __last && __cur != this->_M_impl._M_finish; 12329: ++__cur, (void)++__first) 12329: *__cur = *__first; 12329: if (__first == __last) 12329: _M_erase_at_end(__cur); 12329: else 12329: _M_range_insert(end(), __first, __last, 12329: std::__iterator_category(__first)); 12329: } 12329: 12329: template 12329: template 12329: 12329: void 12329: vector<_Tp, _Alloc>:: 12329: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 12329: std::forward_iterator_tag) 12329: { 12329: const size_type __len = std::distance(__first, __last); 12329: 12329: if (__len > capacity()) 12329: { 12329: _S_check_init_len(__len, _M_get_Tp_allocator()); 12329: pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); 12329: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: ; 12329: _M_deallocate(this->_M_impl._M_start, 12329: this->_M_impl._M_end_of_storage 12329: - this->_M_impl._M_start); 12329: this->_M_impl._M_start = __tmp; 12329: this->_M_impl._M_finish = this->_M_impl._M_start + __len; 12329: this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; 12329: } 12329: else if (size() >= __len) 12329: _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); 12329: else 12329: { 12329: _ForwardIterator __mid = __first; 12329: std::advance(__mid, size()); 12329: std::copy(__first, __mid, this->_M_impl._M_start); 12329: const size_type __attribute__((__unused__)) __n = __len - size(); 12329: ; 12329: this->_M_impl._M_finish = 12329: std::__uninitialized_copy_a(__mid, __last, 12329: this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: ; 12329: } 12329: } 12329: 12329: 12329: template 12329: 12329: auto 12329: vector<_Tp, _Alloc>:: 12329: _M_insert_rval(const_iterator __position, value_type&& __v) -> iterator 12329: { 12329: const auto __n = __position - cbegin(); 12329: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 12329: if (__position == cend()) 12329: { 12329: ; 12329: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 12329: std::move(__v)); 12329: ++this->_M_impl._M_finish; 12329: ; 12329: } 12329: else 12329: _M_insert_aux(begin() + __n, std::move(__v)); 12329: else 12329: _M_realloc_insert(begin() + __n, std::move(__v)); 12329: 12329: return iterator(this->_M_impl._M_start + __n); 12329: } 12329: 12329: template 12329: template 12329: 12329: auto 12329: vector<_Tp, _Alloc>:: 12329: _M_emplace_aux(const_iterator __position, _Args&&... __args) 12329: -> iterator 12329: { 12329: const auto __n = __position - cbegin(); 12329: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 12329: if (__position == cend()) 12329: { 12329: ; 12329: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 12329: std::forward<_Args>(__args)...); 12329: ++this->_M_impl._M_finish; 12329: ; 12329: } 12329: else 12329: { 12329: 12329: 12329: 12329: _Temporary_value __tmp(this, std::forward<_Args>(__args)...); 12329: _M_insert_aux(begin() + __n, std::move(__tmp._M_val())); 12329: } 12329: else 12329: _M_realloc_insert(begin() + __n, std::forward<_Args>(__args)...); 12329: 12329: return iterator(this->_M_impl._M_start + __n); 12329: } 12329: 12329: template 12329: template 12329: 12329: void 12329: vector<_Tp, _Alloc>:: 12329: _M_insert_aux(iterator __position, _Arg&& __arg) 12329: 12329: 12329: 12329: 12329: 12329: 12329: { 12329: ; 12329: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 12329: std::move(*(this->_M_impl._M_finish - 1))); 12329: ++this->_M_impl._M_finish; 12329: ; 12329: 12329: 12329: 12329: std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) 12329: 12329: ; 12329: 12329: 12329: 12329: *__position = std::forward<_Arg>(__arg); 12329: 12329: } 12329: 12329: 12329: template 12329: template 12329: 12329: void 12329: vector<_Tp, _Alloc>:: 12329: _M_realloc_insert(iterator __position, _Args&&... __args) 12329: 12329: 12329: 12329: 12329: 12329: 12329: { 12329: const size_type __len = 12329: _M_check_len(size_type(1), "vector::_M_realloc_insert"); 12329: pointer __old_start = this->_M_impl._M_start; 12329: pointer __old_finish = this->_M_impl._M_finish; 12329: const size_type __elems_before = __position - begin(); 12329: pointer __new_start(this->_M_allocate(__len)); 12329: pointer __new_finish(__new_start); 12329: try 12329: { 12329: 12329: 12329: 12329: 12329: 12329: _Alloc_traits::construct(this->_M_impl, 12329: __new_start + __elems_before, 12329: 12329: std::forward<_Args>(__args)...); 12329: 12329: 12329: 12329: __new_finish = pointer(); 12329: 12329: 12329: if (_S_use_relocate()) 12329: { 12329: __new_finish = _S_relocate(__old_start, __position.base(), 12329: __new_start, _M_get_Tp_allocator()); 12329: 12329: ++__new_finish; 12329: 12329: __new_finish = _S_relocate(__position.base(), __old_finish, 12329: __new_finish, _M_get_Tp_allocator()); 12329: } 12329: else 12329: 12329: { 12329: __new_finish 12329: = std::__uninitialized_move_if_noexcept_a 12329: (__old_start, __position.base(), 12329: __new_start, _M_get_Tp_allocator()); 12329: 12329: ++__new_finish; 12329: 12329: __new_finish 12329: = std::__uninitialized_move_if_noexcept_a 12329: (__position.base(), __old_finish, 12329: __new_finish, _M_get_Tp_allocator()); 12329: } 12329: } 12329: catch(...) 12329: { 12329: if (!__new_finish) 12329: _Alloc_traits::destroy(this->_M_impl, 12329: __new_start + __elems_before); 12329: else 12329: std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); 12329: _M_deallocate(__new_start, __len); 12329: throw; 12329: } 12329: 12329: if (!_S_use_relocate()) 12329: 12329: std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); 12329: ; 12329: _M_deallocate(__old_start, 12329: this->_M_impl._M_end_of_storage - __old_start); 12329: this->_M_impl._M_start = __new_start; 12329: this->_M_impl._M_finish = __new_finish; 12329: this->_M_impl._M_end_of_storage = __new_start + __len; 12329: } 12329: 12329: template 12329: 12329: void 12329: vector<_Tp, _Alloc>:: 12329: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) 12329: { 12329: if (__n != 0) 12329: { 12329: if (size_type(this->_M_impl._M_end_of_storage 12329: - this->_M_impl._M_finish) >= __n) 12329: { 12329: 12329: 12329: 12329: _Temporary_value __tmp(this, __x); 12329: value_type& __x_copy = __tmp._M_val(); 12329: 12329: const size_type __elems_after = end() - __position; 12329: pointer __old_finish(this->_M_impl._M_finish); 12329: if (__elems_after > __n) 12329: { 12329: ; 12329: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 12329: this->_M_impl._M_finish, 12329: this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: this->_M_impl._M_finish += __n; 12329: ; 12329: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 12329: ; 12329: std::fill(__position.base(), __position.base() + __n, 12329: __x_copy); 12329: } 12329: else 12329: { 12329: ; 12329: this->_M_impl._M_finish = 12329: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 12329: __n - __elems_after, 12329: __x_copy, 12329: _M_get_Tp_allocator()); 12329: ; 12329: std::__uninitialized_move_a(__position.base(), __old_finish, 12329: this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: this->_M_impl._M_finish += __elems_after; 12329: ; 12329: std::fill(__position.base(), __old_finish, __x_copy); 12329: } 12329: } 12329: else 12329: { 12329: const size_type __len = 12329: _M_check_len(__n, "vector::_M_fill_insert"); 12329: const size_type __elems_before = __position - begin(); 12329: pointer __new_start(this->_M_allocate(__len)); 12329: pointer __new_finish(__new_start); 12329: try 12329: { 12329: 12329: std::__uninitialized_fill_n_a(__new_start + __elems_before, 12329: __n, __x, 12329: _M_get_Tp_allocator()); 12329: __new_finish = pointer(); 12329: 12329: __new_finish 12329: = std::__uninitialized_move_if_noexcept_a 12329: (this->_M_impl._M_start, __position.base(), 12329: __new_start, _M_get_Tp_allocator()); 12329: 12329: __new_finish += __n; 12329: 12329: __new_finish 12329: = std::__uninitialized_move_if_noexcept_a 12329: (__position.base(), this->_M_impl._M_finish, 12329: __new_finish, _M_get_Tp_allocator()); 12329: } 12329: catch(...) 12329: { 12329: if (!__new_finish) 12329: std::_Destroy(__new_start + __elems_before, 12329: __new_start + __elems_before + __n, 12329: _M_get_Tp_allocator()); 12329: else 12329: std::_Destroy(__new_start, __new_finish, 12329: _M_get_Tp_allocator()); 12329: _M_deallocate(__new_start, __len); 12329: throw; 12329: } 12329: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: ; 12329: _M_deallocate(this->_M_impl._M_start, 12329: this->_M_impl._M_end_of_storage 12329: - this->_M_impl._M_start); 12329: this->_M_impl._M_start = __new_start; 12329: this->_M_impl._M_finish = __new_finish; 12329: this->_M_impl._M_end_of_storage = __new_start + __len; 12329: } 12329: } 12329: } 12329: 12329: 12329: template 12329: 12329: void 12329: vector<_Tp, _Alloc>:: 12329: _M_default_append(size_type __n) 12329: { 12329: if (__n != 0) 12329: { 12329: const size_type __size = size(); 12329: size_type __navail = size_type(this->_M_impl._M_end_of_storage 12329: - this->_M_impl._M_finish); 12329: 12329: if (__size > max_size() || __navail > max_size() - __size) 12329: __builtin_unreachable(); 12329: 12329: if (__navail >= __n) 12329: { 12329: ; 12329: this->_M_impl._M_finish = 12329: std::__uninitialized_default_n_a(this->_M_impl._M_finish, 12329: __n, _M_get_Tp_allocator()); 12329: ; 12329: } 12329: else 12329: { 12329: const size_type __len = 12329: _M_check_len(__n, "vector::_M_default_append"); 12329: pointer __new_start(this->_M_allocate(__len)); 12329: if (_S_use_relocate()) 12329: { 12329: try 12329: { 12329: std::__uninitialized_default_n_a(__new_start + __size, 12329: __n, _M_get_Tp_allocator()); 12329: } 12329: catch(...) 12329: { 12329: _M_deallocate(__new_start, __len); 12329: throw; 12329: } 12329: _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish, 12329: __new_start, _M_get_Tp_allocator()); 12329: } 12329: else 12329: { 12329: pointer __destroy_from = pointer(); 12329: try 12329: { 12329: std::__uninitialized_default_n_a(__new_start + __size, 12329: __n, _M_get_Tp_allocator()); 12329: __destroy_from = __new_start + __size; 12329: std::__uninitialized_move_if_noexcept_a( 12329: this->_M_impl._M_start, this->_M_impl._M_finish, 12329: __new_start, _M_get_Tp_allocator()); 12329: } 12329: catch(...) 12329: { 12329: if (__destroy_from) 12329: std::_Destroy(__destroy_from, __destroy_from + __n, 12329: _M_get_Tp_allocator()); 12329: _M_deallocate(__new_start, __len); 12329: throw; 12329: } 12329: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: } 12329: ; 12329: _M_deallocate(this->_M_impl._M_start, 12329: this->_M_impl._M_end_of_storage 12329: - this->_M_impl._M_start); 12329: this->_M_impl._M_start = __new_start; 12329: this->_M_impl._M_finish = __new_start + __size + __n; 12329: this->_M_impl._M_end_of_storage = __new_start + __len; 12329: } 12329: } 12329: } 12329: 12329: template 12329: 12329: bool 12329: vector<_Tp, _Alloc>:: 12329: _M_shrink_to_fit() 12329: { 12329: if (capacity() == size()) 12329: return false; 12329: ; 12329: return std::__shrink_to_fit_aux::_S_do_it(*this); 12329: } 12329: 12329: 12329: template 12329: template 12329: 12329: void 12329: vector<_Tp, _Alloc>:: 12329: _M_range_insert(iterator __pos, _InputIterator __first, 12329: _InputIterator __last, std::input_iterator_tag) 12329: { 12329: if (__pos == end()) 12329: { 12329: for (; __first != __last; ++__first) 12329: insert(end(), *__first); 12329: } 12329: else if (__first != __last) 12329: { 12329: vector __tmp(__first, __last, _M_get_Tp_allocator()); 12329: insert(__pos, 12329: std::make_move_iterator(__tmp.begin()), 12329: std::make_move_iterator(__tmp.end())); 12329: } 12329: } 12329: 12329: template 12329: template 12329: 12329: void 12329: vector<_Tp, _Alloc>:: 12329: _M_range_insert(iterator __position, _ForwardIterator __first, 12329: _ForwardIterator __last, std::forward_iterator_tag) 12329: { 12329: if (__first != __last) 12329: { 12329: const size_type __n = std::distance(__first, __last); 12329: if (size_type(this->_M_impl._M_end_of_storage 12329: - this->_M_impl._M_finish) >= __n) 12329: { 12329: const size_type __elems_after = end() - __position; 12329: pointer __old_finish(this->_M_impl._M_finish); 12329: if (__elems_after > __n) 12329: { 12329: ; 12329: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 12329: this->_M_impl._M_finish, 12329: this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: this->_M_impl._M_finish += __n; 12329: ; 12329: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 12329: ; 12329: std::copy(__first, __last, __position); 12329: } 12329: else 12329: { 12329: _ForwardIterator __mid = __first; 12329: std::advance(__mid, __elems_after); 12329: ; 12329: std::__uninitialized_copy_a(__mid, __last, 12329: this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: this->_M_impl._M_finish += __n - __elems_after; 12329: ; 12329: std::__uninitialized_move_a(__position.base(), 12329: __old_finish, 12329: this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: this->_M_impl._M_finish += __elems_after; 12329: ; 12329: std::copy(__first, __mid, __position); 12329: } 12329: } 12329: else 12329: { 12329: const size_type __len = 12329: _M_check_len(__n, "vector::_M_range_insert"); 12329: pointer __new_start(this->_M_allocate(__len)); 12329: pointer __new_finish(__new_start); 12329: try 12329: { 12329: __new_finish 12329: = std::__uninitialized_move_if_noexcept_a 12329: (this->_M_impl._M_start, __position.base(), 12329: __new_start, _M_get_Tp_allocator()); 12329: __new_finish 12329: = std::__uninitialized_copy_a(__first, __last, 12329: __new_finish, 12329: _M_get_Tp_allocator()); 12329: __new_finish 12329: = std::__uninitialized_move_if_noexcept_a 12329: (__position.base(), this->_M_impl._M_finish, 12329: __new_finish, _M_get_Tp_allocator()); 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__new_start, __new_finish, 12329: _M_get_Tp_allocator()); 12329: _M_deallocate(__new_start, __len); 12329: throw; 12329: } 12329: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 12329: _M_get_Tp_allocator()); 12329: ; 12329: _M_deallocate(this->_M_impl._M_start, 12329: this->_M_impl._M_end_of_storage 12329: - this->_M_impl._M_start); 12329: this->_M_impl._M_start = __new_start; 12329: this->_M_impl._M_finish = __new_finish; 12329: this->_M_impl._M_end_of_storage = __new_start + __len; 12329: } 12329: } 12329: } 12329: 12329: 12329: 12329: template 12329: 12329: void 12329: vector:: 12329: _M_reallocate(size_type __n) 12329: { 12329: _Bit_pointer __q = this->_M_allocate(__n); 12329: iterator __start(std::__addressof(*__q), 0); 12329: iterator __finish(_M_copy_aligned(begin(), end(), __start)); 12329: this->_M_deallocate(); 12329: this->_M_impl._M_start = __start; 12329: this->_M_impl._M_finish = __finish; 12329: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 12329: } 12329: 12329: template 12329: 12329: void 12329: vector:: 12329: _M_fill_insert(iterator __position, size_type __n, bool __x) 12329: { 12329: if (__n == 0) 12329: return; 12329: if (capacity() - size() >= __n) 12329: { 12329: std::copy_backward(__position, end(), 12329: this->_M_impl._M_finish + difference_type(__n)); 12329: std::fill(__position, __position + difference_type(__n), __x); 12329: this->_M_impl._M_finish += difference_type(__n); 12329: } 12329: else 12329: { 12329: const size_type __len = 12329: _M_check_len(__n, "vector::_M_fill_insert"); 12329: _Bit_pointer __q = this->_M_allocate(__len); 12329: iterator __start(std::__addressof(*__q), 0); 12329: iterator __i = _M_copy_aligned(begin(), __position, __start); 12329: std::fill(__i, __i + difference_type(__n), __x); 12329: iterator __finish = std::copy(__position, end(), 12329: __i + difference_type(__n)); 12329: this->_M_deallocate(); 12329: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 12329: this->_M_impl._M_start = __start; 12329: this->_M_impl._M_finish = __finish; 12329: } 12329: } 12329: 12329: template 12329: template 12329: 12329: void 12329: vector:: 12329: _M_insert_range(iterator __position, _ForwardIterator __first, 12329: _ForwardIterator __last, std::forward_iterator_tag) 12329: { 12329: if (__first != __last) 12329: { 12329: size_type __n = std::distance(__first, __last); 12329: if (capacity() - size() >= __n) 12329: { 12329: std::copy_backward(__position, end(), 12329: this->_M_impl._M_finish 12329: + difference_type(__n)); 12329: std::copy(__first, __last, __position); 12329: this->_M_impl._M_finish += difference_type(__n); 12329: } 12329: else 12329: { 12329: const size_type __len = 12329: _M_check_len(__n, "vector::_M_insert_range"); 12329: _Bit_pointer __q = this->_M_allocate(__len); 12329: iterator __start(std::__addressof(*__q), 0); 12329: iterator __i = _M_copy_aligned(begin(), __position, __start); 12329: __i = std::copy(__first, __last, __i); 12329: iterator __finish = std::copy(__position, end(), __i); 12329: this->_M_deallocate(); 12329: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 12329: this->_M_impl._M_start = __start; 12329: this->_M_impl._M_finish = __finish; 12329: } 12329: } 12329: } 12329: 12329: template 12329: 12329: void 12329: vector:: 12329: _M_insert_aux(iterator __position, bool __x) 12329: { 12329: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 12329: { 12329: std::copy_backward(__position, this->_M_impl._M_finish, 12329: this->_M_impl._M_finish + 1); 12329: *__position = __x; 12329: ++this->_M_impl._M_finish; 12329: } 12329: else 12329: { 12329: const size_type __len = 12329: _M_check_len(size_type(1), "vector::_M_insert_aux"); 12329: _Bit_pointer __q = this->_M_allocate(__len); 12329: iterator __start(std::__addressof(*__q), 0); 12329: iterator __i = _M_copy_aligned(begin(), __position, __start); 12329: *__i++ = __x; 12329: iterator __finish = std::copy(__position, end(), __i); 12329: this->_M_deallocate(); 12329: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 12329: this->_M_impl._M_start = __start; 12329: this->_M_impl._M_finish = __finish; 12329: } 12329: } 12329: 12329: template 12329: 12329: typename vector::iterator 12329: vector:: 12329: _M_erase(iterator __position) 12329: { 12329: if (__position + 1 != end()) 12329: std::copy(__position + 1, end(), __position); 12329: --this->_M_impl._M_finish; 12329: return __position; 12329: } 12329: 12329: template 12329: 12329: typename vector::iterator 12329: vector:: 12329: _M_erase(iterator __first, iterator __last) 12329: { 12329: if (__first != __last) 12329: _M_erase_at_end(std::copy(__last, end(), __first)); 12329: return __first; 12329: } 12329: 12329: 12329: template 12329: 12329: bool 12329: vector:: 12329: _M_shrink_to_fit() 12329: { 12329: if (capacity() - size() < int(_S_word_bit)) 12329: return false; 12329: try 12329: { 12329: if (size_type __n = size()) 12329: _M_reallocate(__n); 12329: else 12329: { 12329: this->_M_deallocate(); 12329: this->_M_impl._M_reset(); 12329: } 12329: return true; 12329: } 12329: catch(...) 12329: { return false; } 12329: } 12329: 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: size_t 12329: hash>:: 12329: operator()(const std::vector& __b) const noexcept 12329: { 12329: size_t __hash = 0; 12329: const size_t __words = __b.size() / _S_word_bit; 12329: if (__words) 12329: { 12329: const size_t __clength = __words * sizeof(_Bit_type); 12329: __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); 12329: } 12329: 12329: const size_t __extrabits = __b.size() % _S_word_bit; 12329: if (__extrabits) 12329: { 12329: _Bit_type __hiword = *__b._M_impl._M_finish._M_p; 12329: __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); 12329: 12329: const size_t __clength 12329: = (__extrabits + 8 - 1) / 8; 12329: if (__words) 12329: __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); 12329: else 12329: __hash = std::_Hash_impl::hash(&__hiword, __clength); 12329: } 12329: 12329: return __hash; 12329: } 12329: 12329: 12329: } 12329: # 71 "/usr/include/c++/12/vector" 2 3 12329: # 15 "/usr/include/boost/program_options/errors.hpp" 2 3 4 12329: # 1 "/usr/include/c++/12/map" 1 3 4 12329: # 58 "/usr/include/c++/12/map" 3 4 12329: 12329: # 59 "/usr/include/c++/12/map" 3 12329: 12329: # 1 "/usr/include/c++/12/bits/stl_tree.h" 1 3 12329: # 61 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: 12329: # 62 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/ext/aligned_buffer.h" 1 3 12329: # 32 "/usr/include/c++/12/ext/aligned_buffer.h" 3 12329: 12329: # 33 "/usr/include/c++/12/ext/aligned_buffer.h" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace __gnu_cxx 12329: { 12329: 12329: 12329: 12329: 12329: template 12329: struct __aligned_membuf 12329: { 12329: 12329: 12329: 12329: 12329: 12329: struct _Tp2 { _Tp _M_t; }; 12329: 12329: alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)]; 12329: 12329: __aligned_membuf() = default; 12329: 12329: 12329: __aligned_membuf(std::nullptr_t) { } 12329: 12329: void* 12329: _M_addr() noexcept 12329: { return static_cast(&_M_storage); } 12329: 12329: const void* 12329: _M_addr() const noexcept 12329: { return static_cast(&_M_storage); } 12329: 12329: _Tp* 12329: _M_ptr() noexcept 12329: { return static_cast<_Tp*>(_M_addr()); } 12329: 12329: const _Tp* 12329: _M_ptr() const noexcept 12329: { return static_cast(_M_addr()); } 12329: }; 12329: # 89 "/usr/include/c++/12/ext/aligned_buffer.h" 3 12329: template 12329: struct __aligned_buffer 12329: : std::aligned_storage 12329: { 12329: typename 12329: std::aligned_storage::type _M_storage; 12329: 12329: __aligned_buffer() = default; 12329: 12329: 12329: __aligned_buffer(std::nullptr_t) { } 12329: 12329: void* 12329: _M_addr() noexcept 12329: { 12329: return static_cast(&_M_storage); 12329: } 12329: 12329: const void* 12329: _M_addr() const noexcept 12329: { 12329: return static_cast(&_M_storage); 12329: } 12329: 12329: _Tp* 12329: _M_ptr() noexcept 12329: { return static_cast<_Tp*>(_M_addr()); } 12329: 12329: const _Tp* 12329: _M_ptr() const noexcept 12329: { return static_cast(_M_addr()); } 12329: }; 12329: 12329: 12329: } 12329: # 70 "/usr/include/c++/12/bits/stl_tree.h" 2 3 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 99 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: enum _Rb_tree_color { _S_red = false, _S_black = true }; 12329: 12329: struct _Rb_tree_node_base 12329: { 12329: typedef _Rb_tree_node_base* _Base_ptr; 12329: typedef const _Rb_tree_node_base* _Const_Base_ptr; 12329: 12329: _Rb_tree_color _M_color; 12329: _Base_ptr _M_parent; 12329: _Base_ptr _M_left; 12329: _Base_ptr _M_right; 12329: 12329: static _Base_ptr 12329: _S_minimum(_Base_ptr __x) noexcept 12329: { 12329: while (__x->_M_left != 0) __x = __x->_M_left; 12329: return __x; 12329: } 12329: 12329: static _Const_Base_ptr 12329: _S_minimum(_Const_Base_ptr __x) noexcept 12329: { 12329: while (__x->_M_left != 0) __x = __x->_M_left; 12329: return __x; 12329: } 12329: 12329: static _Base_ptr 12329: _S_maximum(_Base_ptr __x) noexcept 12329: { 12329: while (__x->_M_right != 0) __x = __x->_M_right; 12329: return __x; 12329: } 12329: 12329: static _Const_Base_ptr 12329: _S_maximum(_Const_Base_ptr __x) noexcept 12329: { 12329: while (__x->_M_right != 0) __x = __x->_M_right; 12329: return __x; 12329: } 12329: }; 12329: 12329: 12329: template 12329: struct _Rb_tree_key_compare 12329: { 12329: _Key_compare _M_key_compare; 12329: 12329: _Rb_tree_key_compare() 12329: noexcept(is_nothrow_default_constructible<_Key_compare>::value) 12329: 12329: : _M_key_compare() 12329: { } 12329: 12329: _Rb_tree_key_compare(const _Key_compare& __comp) 12329: : _M_key_compare(__comp) 12329: { } 12329: 12329: 12329: 12329: _Rb_tree_key_compare(const _Rb_tree_key_compare&) = default; 12329: 12329: _Rb_tree_key_compare(_Rb_tree_key_compare&& __x) 12329: noexcept(is_nothrow_copy_constructible<_Key_compare>::value) 12329: : _M_key_compare(__x._M_key_compare) 12329: { } 12329: 12329: }; 12329: 12329: 12329: struct _Rb_tree_header 12329: { 12329: _Rb_tree_node_base _M_header; 12329: size_t _M_node_count; 12329: 12329: _Rb_tree_header() noexcept 12329: { 12329: _M_header._M_color = _S_red; 12329: _M_reset(); 12329: } 12329: 12329: 12329: _Rb_tree_header(_Rb_tree_header&& __x) noexcept 12329: { 12329: if (__x._M_header._M_parent != nullptr) 12329: _M_move_data(__x); 12329: else 12329: { 12329: _M_header._M_color = _S_red; 12329: _M_reset(); 12329: } 12329: } 12329: 12329: 12329: void 12329: _M_move_data(_Rb_tree_header& __from) 12329: { 12329: _M_header._M_color = __from._M_header._M_color; 12329: _M_header._M_parent = __from._M_header._M_parent; 12329: _M_header._M_left = __from._M_header._M_left; 12329: _M_header._M_right = __from._M_header._M_right; 12329: _M_header._M_parent->_M_parent = &_M_header; 12329: _M_node_count = __from._M_node_count; 12329: 12329: __from._M_reset(); 12329: } 12329: 12329: void 12329: _M_reset() 12329: { 12329: _M_header._M_parent = 0; 12329: _M_header._M_left = &_M_header; 12329: _M_header._M_right = &_M_header; 12329: _M_node_count = 0; 12329: } 12329: }; 12329: 12329: template 12329: struct _Rb_tree_node : public _Rb_tree_node_base 12329: { 12329: typedef _Rb_tree_node<_Val>* _Link_type; 12329: # 231 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: __gnu_cxx::__aligned_membuf<_Val> _M_storage; 12329: 12329: _Val* 12329: _M_valptr() 12329: { return _M_storage._M_ptr(); } 12329: 12329: const _Val* 12329: _M_valptr() const 12329: { return _M_storage._M_ptr(); } 12329: 12329: }; 12329: 12329: __attribute__ ((__pure__)) _Rb_tree_node_base* 12329: _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); 12329: 12329: __attribute__ ((__pure__)) const _Rb_tree_node_base* 12329: _Rb_tree_increment(const _Rb_tree_node_base* __x) throw (); 12329: 12329: __attribute__ ((__pure__)) _Rb_tree_node_base* 12329: _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); 12329: 12329: __attribute__ ((__pure__)) const _Rb_tree_node_base* 12329: _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw (); 12329: 12329: template 12329: struct _Rb_tree_iterator 12329: { 12329: typedef _Tp value_type; 12329: typedef _Tp& reference; 12329: typedef _Tp* pointer; 12329: 12329: typedef bidirectional_iterator_tag iterator_category; 12329: typedef ptrdiff_t difference_type; 12329: 12329: typedef _Rb_tree_iterator<_Tp> _Self; 12329: typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; 12329: typedef _Rb_tree_node<_Tp>* _Link_type; 12329: 12329: _Rb_tree_iterator() noexcept 12329: : _M_node() { } 12329: 12329: explicit 12329: _Rb_tree_iterator(_Base_ptr __x) noexcept 12329: : _M_node(__x) { } 12329: 12329: reference 12329: operator*() const noexcept 12329: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 12329: 12329: pointer 12329: operator->() const noexcept 12329: { return static_cast<_Link_type> (_M_node)->_M_valptr(); } 12329: 12329: _Self& 12329: operator++() noexcept 12329: { 12329: _M_node = _Rb_tree_increment(_M_node); 12329: return *this; 12329: } 12329: 12329: _Self 12329: operator++(int) noexcept 12329: { 12329: _Self __tmp = *this; 12329: _M_node = _Rb_tree_increment(_M_node); 12329: return __tmp; 12329: } 12329: 12329: _Self& 12329: operator--() noexcept 12329: { 12329: _M_node = _Rb_tree_decrement(_M_node); 12329: return *this; 12329: } 12329: 12329: _Self 12329: operator--(int) noexcept 12329: { 12329: _Self __tmp = *this; 12329: _M_node = _Rb_tree_decrement(_M_node); 12329: return __tmp; 12329: } 12329: 12329: friend bool 12329: operator==(const _Self& __x, const _Self& __y) noexcept 12329: { return __x._M_node == __y._M_node; } 12329: 12329: 12329: friend bool 12329: operator!=(const _Self& __x, const _Self& __y) noexcept 12329: { return __x._M_node != __y._M_node; } 12329: 12329: 12329: _Base_ptr _M_node; 12329: }; 12329: 12329: template 12329: struct _Rb_tree_const_iterator 12329: { 12329: typedef _Tp value_type; 12329: typedef const _Tp& reference; 12329: typedef const _Tp* pointer; 12329: 12329: typedef _Rb_tree_iterator<_Tp> iterator; 12329: 12329: typedef bidirectional_iterator_tag iterator_category; 12329: typedef ptrdiff_t difference_type; 12329: 12329: typedef _Rb_tree_const_iterator<_Tp> _Self; 12329: typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; 12329: typedef const _Rb_tree_node<_Tp>* _Link_type; 12329: 12329: _Rb_tree_const_iterator() noexcept 12329: : _M_node() { } 12329: 12329: explicit 12329: _Rb_tree_const_iterator(_Base_ptr __x) noexcept 12329: : _M_node(__x) { } 12329: 12329: _Rb_tree_const_iterator(const iterator& __it) noexcept 12329: : _M_node(__it._M_node) { } 12329: 12329: iterator 12329: _M_const_cast() const noexcept 12329: { return iterator(const_cast(_M_node)); } 12329: 12329: reference 12329: operator*() const noexcept 12329: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 12329: 12329: pointer 12329: operator->() const noexcept 12329: { return static_cast<_Link_type>(_M_node)->_M_valptr(); } 12329: 12329: _Self& 12329: operator++() noexcept 12329: { 12329: _M_node = _Rb_tree_increment(_M_node); 12329: return *this; 12329: } 12329: 12329: _Self 12329: operator++(int) noexcept 12329: { 12329: _Self __tmp = *this; 12329: _M_node = _Rb_tree_increment(_M_node); 12329: return __tmp; 12329: } 12329: 12329: _Self& 12329: operator--() noexcept 12329: { 12329: _M_node = _Rb_tree_decrement(_M_node); 12329: return *this; 12329: } 12329: 12329: _Self 12329: operator--(int) noexcept 12329: { 12329: _Self __tmp = *this; 12329: _M_node = _Rb_tree_decrement(_M_node); 12329: return __tmp; 12329: } 12329: 12329: friend bool 12329: operator==(const _Self& __x, const _Self& __y) noexcept 12329: { return __x._M_node == __y._M_node; } 12329: 12329: 12329: friend bool 12329: operator!=(const _Self& __x, const _Self& __y) noexcept 12329: { return __x._M_node != __y._M_node; } 12329: 12329: 12329: _Base_ptr _M_node; 12329: }; 12329: 12329: void 12329: _Rb_tree_insert_and_rebalance(const bool __insert_left, 12329: _Rb_tree_node_base* __x, 12329: _Rb_tree_node_base* __p, 12329: _Rb_tree_node_base& __header) throw (); 12329: 12329: _Rb_tree_node_base* 12329: _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, 12329: _Rb_tree_node_base& __header) throw (); 12329: 12329: 12329: 12329: 12329: 12329: 12329: template > 12329: class _Rb_tree 12329: { 12329: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 12329: rebind<_Rb_tree_node<_Val> >::other _Node_allocator; 12329: 12329: typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits; 12329: 12329: protected: 12329: typedef _Rb_tree_node_base* _Base_ptr; 12329: typedef const _Rb_tree_node_base* _Const_Base_ptr; 12329: typedef _Rb_tree_node<_Val>* _Link_type; 12329: typedef const _Rb_tree_node<_Val>* _Const_Link_type; 12329: 12329: private: 12329: 12329: 12329: struct _Reuse_or_alloc_node 12329: { 12329: _Reuse_or_alloc_node(_Rb_tree& __t) 12329: : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t) 12329: { 12329: if (_M_root) 12329: { 12329: _M_root->_M_parent = 0; 12329: 12329: if (_M_nodes->_M_left) 12329: _M_nodes = _M_nodes->_M_left; 12329: } 12329: else 12329: _M_nodes = 0; 12329: } 12329: 12329: 12329: _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; 12329: 12329: 12329: ~_Reuse_or_alloc_node() 12329: { _M_t._M_erase(static_cast<_Link_type>(_M_root)); } 12329: 12329: template 12329: _Link_type 12329: operator()(_Arg&& __arg) 12329: { 12329: _Link_type __node = static_cast<_Link_type>(_M_extract()); 12329: if (__node) 12329: { 12329: _M_t._M_destroy_node(__node); 12329: _M_t._M_construct_node(__node, std::forward<_Arg>(__arg)); 12329: return __node; 12329: } 12329: 12329: return _M_t._M_create_node(std::forward<_Arg>(__arg)); 12329: } 12329: 12329: private: 12329: _Base_ptr 12329: _M_extract() 12329: { 12329: if (!_M_nodes) 12329: return _M_nodes; 12329: 12329: _Base_ptr __node = _M_nodes; 12329: _M_nodes = _M_nodes->_M_parent; 12329: if (_M_nodes) 12329: { 12329: if (_M_nodes->_M_right == __node) 12329: { 12329: _M_nodes->_M_right = 0; 12329: 12329: if (_M_nodes->_M_left) 12329: { 12329: _M_nodes = _M_nodes->_M_left; 12329: 12329: while (_M_nodes->_M_right) 12329: _M_nodes = _M_nodes->_M_right; 12329: 12329: if (_M_nodes->_M_left) 12329: _M_nodes = _M_nodes->_M_left; 12329: } 12329: } 12329: else 12329: _M_nodes->_M_left = 0; 12329: } 12329: else 12329: _M_root = 0; 12329: 12329: return __node; 12329: } 12329: 12329: _Base_ptr _M_root; 12329: _Base_ptr _M_nodes; 12329: _Rb_tree& _M_t; 12329: }; 12329: 12329: 12329: 12329: struct _Alloc_node 12329: { 12329: _Alloc_node(_Rb_tree& __t) 12329: : _M_t(__t) { } 12329: 12329: template 12329: _Link_type 12329: operator()(_Arg&& __arg) const 12329: { return _M_t._M_create_node(std::forward<_Arg>(__arg)); } 12329: 12329: private: 12329: _Rb_tree& _M_t; 12329: }; 12329: 12329: public: 12329: typedef _Key key_type; 12329: typedef _Val value_type; 12329: typedef value_type* pointer; 12329: typedef const value_type* const_pointer; 12329: typedef value_type& reference; 12329: typedef const value_type& const_reference; 12329: typedef size_t size_type; 12329: typedef ptrdiff_t difference_type; 12329: typedef _Alloc allocator_type; 12329: 12329: _Node_allocator& 12329: _M_get_Node_allocator() noexcept 12329: { return this->_M_impl; } 12329: 12329: const _Node_allocator& 12329: _M_get_Node_allocator() const noexcept 12329: { return this->_M_impl; } 12329: 12329: allocator_type 12329: get_allocator() const noexcept 12329: { return allocator_type(_M_get_Node_allocator()); } 12329: 12329: protected: 12329: _Link_type 12329: _M_get_node() 12329: { return _Alloc_traits::allocate(_M_get_Node_allocator(), 1); } 12329: 12329: void 12329: _M_put_node(_Link_type __p) noexcept 12329: { _Alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); } 12329: # 588 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: template 12329: void 12329: _M_construct_node(_Link_type __node, _Args&&... __args) 12329: { 12329: try 12329: { 12329: ::new(__node) _Rb_tree_node<_Val>; 12329: _Alloc_traits::construct(_M_get_Node_allocator(), 12329: __node->_M_valptr(), 12329: std::forward<_Args>(__args)...); 12329: } 12329: catch(...) 12329: { 12329: __node->~_Rb_tree_node<_Val>(); 12329: _M_put_node(__node); 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: _Link_type 12329: _M_create_node(_Args&&... __args) 12329: { 12329: _Link_type __tmp = _M_get_node(); 12329: _M_construct_node(__tmp, std::forward<_Args>(__args)...); 12329: return __tmp; 12329: } 12329: 12329: 12329: void 12329: _M_destroy_node(_Link_type __p) noexcept 12329: { 12329: 12329: 12329: 12329: _Alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr()); 12329: __p->~_Rb_tree_node<_Val>(); 12329: 12329: } 12329: 12329: void 12329: _M_drop_node(_Link_type __p) noexcept 12329: { 12329: _M_destroy_node(__p); 12329: _M_put_node(__p); 12329: } 12329: 12329: template 12329: _Link_type 12329: _M_clone_node(_Link_type __x, _NodeGen& __node_gen) 12329: { 12329: 12329: using _Vp = __conditional_t<_MoveValue, 12329: value_type&&, 12329: const value_type&>; 12329: 12329: _Link_type __tmp 12329: = __node_gen(std::forward<_Vp>(*__x->_M_valptr())); 12329: __tmp->_M_color = __x->_M_color; 12329: __tmp->_M_left = 0; 12329: __tmp->_M_right = 0; 12329: return __tmp; 12329: } 12329: 12329: protected: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: struct _Rb_tree_impl 12329: : public _Node_allocator 12329: , public _Rb_tree_key_compare<_Key_compare> 12329: , public _Rb_tree_header 12329: { 12329: typedef _Rb_tree_key_compare<_Key_compare> _Base_key_compare; 12329: 12329: _Rb_tree_impl() 12329: noexcept(is_nothrow_default_constructible<_Node_allocator>::value && is_nothrow_default_constructible<_Base_key_compare>::value) 12329: 12329: 12329: : _Node_allocator() 12329: { } 12329: 12329: _Rb_tree_impl(const _Rb_tree_impl& __x) 12329: : _Node_allocator(_Alloc_traits::_S_select_on_copy(__x)) 12329: , _Base_key_compare(__x._M_key_compare) 12329: , _Rb_tree_header() 12329: { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: _Rb_tree_impl(_Rb_tree_impl&&) 12329: noexcept( is_nothrow_move_constructible<_Base_key_compare>::value ) 12329: = default; 12329: 12329: explicit 12329: _Rb_tree_impl(_Node_allocator&& __a) 12329: : _Node_allocator(std::move(__a)) 12329: { } 12329: 12329: _Rb_tree_impl(_Rb_tree_impl&& __x, _Node_allocator&& __a) 12329: : _Node_allocator(std::move(__a)), 12329: _Base_key_compare(std::move(__x)), 12329: _Rb_tree_header(std::move(__x)) 12329: { } 12329: 12329: _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a) 12329: : _Node_allocator(std::move(__a)), _Base_key_compare(__comp) 12329: { } 12329: 12329: }; 12329: 12329: _Rb_tree_impl<_Compare> _M_impl; 12329: 12329: protected: 12329: _Base_ptr& 12329: _M_root() noexcept 12329: { return this->_M_impl._M_header._M_parent; } 12329: 12329: _Const_Base_ptr 12329: _M_root() const noexcept 12329: { return this->_M_impl._M_header._M_parent; } 12329: 12329: _Base_ptr& 12329: _M_leftmost() noexcept 12329: { return this->_M_impl._M_header._M_left; } 12329: 12329: _Const_Base_ptr 12329: _M_leftmost() const noexcept 12329: { return this->_M_impl._M_header._M_left; } 12329: 12329: _Base_ptr& 12329: _M_rightmost() noexcept 12329: { return this->_M_impl._M_header._M_right; } 12329: 12329: _Const_Base_ptr 12329: _M_rightmost() const noexcept 12329: { return this->_M_impl._M_header._M_right; } 12329: 12329: _Link_type 12329: _M_mbegin() const noexcept 12329: { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 12329: 12329: _Link_type 12329: _M_begin() noexcept 12329: { return _M_mbegin(); } 12329: 12329: _Const_Link_type 12329: _M_begin() const noexcept 12329: { 12329: return static_cast<_Const_Link_type> 12329: (this->_M_impl._M_header._M_parent); 12329: } 12329: 12329: _Base_ptr 12329: _M_end() noexcept 12329: { return &this->_M_impl._M_header; } 12329: 12329: _Const_Base_ptr 12329: _M_end() const noexcept 12329: { return &this->_M_impl._M_header; } 12329: 12329: static const _Key& 12329: _S_key(_Const_Link_type __x) 12329: { 12329: 12329: 12329: 12329: static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{}, 12329: "comparison object must be invocable " 12329: "with two arguments of key type"); 12329: # 775 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: return _KeyOfValue()(*__x->_M_valptr()); 12329: } 12329: 12329: static _Link_type 12329: _S_left(_Base_ptr __x) noexcept 12329: { return static_cast<_Link_type>(__x->_M_left); } 12329: 12329: static _Const_Link_type 12329: _S_left(_Const_Base_ptr __x) noexcept 12329: { return static_cast<_Const_Link_type>(__x->_M_left); } 12329: 12329: static _Link_type 12329: _S_right(_Base_ptr __x) noexcept 12329: { return static_cast<_Link_type>(__x->_M_right); } 12329: 12329: static _Const_Link_type 12329: _S_right(_Const_Base_ptr __x) noexcept 12329: { return static_cast<_Const_Link_type>(__x->_M_right); } 12329: 12329: static const _Key& 12329: _S_key(_Const_Base_ptr __x) 12329: { return _S_key(static_cast<_Const_Link_type>(__x)); } 12329: 12329: static _Base_ptr 12329: _S_minimum(_Base_ptr __x) noexcept 12329: { return _Rb_tree_node_base::_S_minimum(__x); } 12329: 12329: static _Const_Base_ptr 12329: _S_minimum(_Const_Base_ptr __x) noexcept 12329: { return _Rb_tree_node_base::_S_minimum(__x); } 12329: 12329: static _Base_ptr 12329: _S_maximum(_Base_ptr __x) noexcept 12329: { return _Rb_tree_node_base::_S_maximum(__x); } 12329: 12329: static _Const_Base_ptr 12329: _S_maximum(_Const_Base_ptr __x) noexcept 12329: { return _Rb_tree_node_base::_S_maximum(__x); } 12329: 12329: public: 12329: typedef _Rb_tree_iterator iterator; 12329: typedef _Rb_tree_const_iterator const_iterator; 12329: 12329: typedef std::reverse_iterator reverse_iterator; 12329: typedef std::reverse_iterator const_reverse_iterator; 12329: # 828 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: pair<_Base_ptr, _Base_ptr> 12329: _M_get_insert_unique_pos(const key_type& __k); 12329: 12329: pair<_Base_ptr, _Base_ptr> 12329: _M_get_insert_equal_pos(const key_type& __k); 12329: 12329: pair<_Base_ptr, _Base_ptr> 12329: _M_get_insert_hint_unique_pos(const_iterator __pos, 12329: const key_type& __k); 12329: 12329: pair<_Base_ptr, _Base_ptr> 12329: _M_get_insert_hint_equal_pos(const_iterator __pos, 12329: const key_type& __k); 12329: 12329: private: 12329: 12329: template 12329: iterator 12329: _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&); 12329: 12329: iterator 12329: _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Link_type __z); 12329: 12329: template 12329: iterator 12329: _M_insert_lower(_Base_ptr __y, _Arg&& __v); 12329: 12329: template 12329: iterator 12329: _M_insert_equal_lower(_Arg&& __x); 12329: 12329: iterator 12329: _M_insert_lower_node(_Base_ptr __p, _Link_type __z); 12329: 12329: iterator 12329: _M_insert_equal_lower_node(_Link_type __z); 12329: # 879 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: enum { __as_lvalue, __as_rvalue }; 12329: 12329: template 12329: _Link_type 12329: _M_copy(_Link_type, _Base_ptr, _NodeGen&); 12329: 12329: template 12329: _Link_type 12329: _M_copy(const _Rb_tree& __x, _NodeGen& __gen) 12329: { 12329: _Link_type __root = 12329: _M_copy<_MoveValues>(__x._M_mbegin(), _M_end(), __gen); 12329: _M_leftmost() = _S_minimum(__root); 12329: _M_rightmost() = _S_maximum(__root); 12329: _M_impl._M_node_count = __x._M_impl._M_node_count; 12329: return __root; 12329: } 12329: 12329: _Link_type 12329: _M_copy(const _Rb_tree& __x) 12329: { 12329: _Alloc_node __an(*this); 12329: return _M_copy<__as_lvalue>(__x, __an); 12329: } 12329: 12329: void 12329: _M_erase(_Link_type __x); 12329: 12329: iterator 12329: _M_lower_bound(_Link_type __x, _Base_ptr __y, 12329: const _Key& __k); 12329: 12329: const_iterator 12329: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 12329: const _Key& __k) const; 12329: 12329: iterator 12329: _M_upper_bound(_Link_type __x, _Base_ptr __y, 12329: const _Key& __k); 12329: 12329: const_iterator 12329: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 12329: const _Key& __k) const; 12329: 12329: public: 12329: 12329: 12329: 12329: 12329: _Rb_tree() = default; 12329: 12329: 12329: _Rb_tree(const _Compare& __comp, 12329: const allocator_type& __a = allocator_type()) 12329: : _M_impl(__comp, _Node_allocator(__a)) { } 12329: 12329: _Rb_tree(const _Rb_tree& __x) 12329: : _M_impl(__x._M_impl) 12329: { 12329: if (__x._M_root() != 0) 12329: _M_root() = _M_copy(__x); 12329: } 12329: 12329: 12329: _Rb_tree(const allocator_type& __a) 12329: : _M_impl(_Node_allocator(__a)) 12329: { } 12329: 12329: _Rb_tree(const _Rb_tree& __x, const allocator_type& __a) 12329: : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a)) 12329: { 12329: if (__x._M_root() != nullptr) 12329: _M_root() = _M_copy(__x); 12329: } 12329: 12329: _Rb_tree(_Rb_tree&&) = default; 12329: 12329: _Rb_tree(_Rb_tree&& __x, const allocator_type& __a) 12329: : _Rb_tree(std::move(__x), _Node_allocator(__a)) 12329: { } 12329: 12329: private: 12329: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a, true_type) 12329: noexcept(is_nothrow_default_constructible<_Compare>::value) 12329: : _M_impl(std::move(__x._M_impl), std::move(__a)) 12329: { } 12329: 12329: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a, false_type) 12329: : _M_impl(__x._M_impl._M_key_compare, std::move(__a)) 12329: { 12329: if (__x._M_root() != nullptr) 12329: _M_move_data(__x, false_type{}); 12329: } 12329: 12329: public: 12329: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a) 12329: noexcept( noexcept( 12329: _Rb_tree(std::declval<_Rb_tree&&>(), std::declval<_Node_allocator&&>(), 12329: std::declval())) ) 12329: : _Rb_tree(std::move(__x), std::move(__a), 12329: typename _Alloc_traits::is_always_equal{}) 12329: { } 12329: 12329: 12329: ~_Rb_tree() noexcept 12329: { _M_erase(_M_begin()); } 12329: 12329: _Rb_tree& 12329: operator=(const _Rb_tree& __x); 12329: 12329: 12329: _Compare 12329: key_comp() const 12329: { return _M_impl._M_key_compare; } 12329: 12329: iterator 12329: begin() noexcept 12329: { return iterator(this->_M_impl._M_header._M_left); } 12329: 12329: const_iterator 12329: begin() const noexcept 12329: { return const_iterator(this->_M_impl._M_header._M_left); } 12329: 12329: iterator 12329: end() noexcept 12329: { return iterator(&this->_M_impl._M_header); } 12329: 12329: const_iterator 12329: end() const noexcept 12329: { return const_iterator(&this->_M_impl._M_header); } 12329: 12329: reverse_iterator 12329: rbegin() noexcept 12329: { return reverse_iterator(end()); } 12329: 12329: const_reverse_iterator 12329: rbegin() const noexcept 12329: { return const_reverse_iterator(end()); } 12329: 12329: reverse_iterator 12329: rend() noexcept 12329: { return reverse_iterator(begin()); } 12329: 12329: const_reverse_iterator 12329: rend() const noexcept 12329: { return const_reverse_iterator(begin()); } 12329: 12329: bool 12329: empty() const noexcept 12329: { return _M_impl._M_node_count == 0; } 12329: 12329: size_type 12329: size() const noexcept 12329: { return _M_impl._M_node_count; } 12329: 12329: size_type 12329: max_size() const noexcept 12329: { return _Alloc_traits::max_size(_M_get_Node_allocator()); } 12329: 12329: void 12329: swap(_Rb_tree& __t) 12329: noexcept(__is_nothrow_swappable<_Compare>::value); 12329: 12329: 12329: 12329: template 12329: pair 12329: _M_insert_unique(_Arg&& __x); 12329: 12329: template 12329: iterator 12329: _M_insert_equal(_Arg&& __x); 12329: 12329: template 12329: iterator 12329: _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&); 12329: 12329: template 12329: iterator 12329: _M_insert_unique_(const_iterator __pos, _Arg&& __x) 12329: { 12329: _Alloc_node __an(*this); 12329: return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an); 12329: } 12329: 12329: template 12329: iterator 12329: _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&); 12329: 12329: template 12329: iterator 12329: _M_insert_equal_(const_iterator __pos, _Arg&& __x) 12329: { 12329: _Alloc_node __an(*this); 12329: return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an); 12329: } 12329: 12329: template 12329: pair 12329: _M_emplace_unique(_Args&&... __args); 12329: 12329: template 12329: iterator 12329: _M_emplace_equal(_Args&&... __args); 12329: 12329: template 12329: iterator 12329: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args); 12329: 12329: template 12329: iterator 12329: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args); 12329: 12329: template 12329: using __same_value_type 12329: = is_same::value_type>; 12329: 12329: template 12329: __enable_if_t<__same_value_type<_InputIterator>::value> 12329: _M_insert_range_unique(_InputIterator __first, _InputIterator __last) 12329: { 12329: _Alloc_node __an(*this); 12329: for (; __first != __last; ++__first) 12329: _M_insert_unique_(end(), *__first, __an); 12329: } 12329: 12329: template 12329: __enable_if_t::value> 12329: _M_insert_range_unique(_InputIterator __first, _InputIterator __last) 12329: { 12329: for (; __first != __last; ++__first) 12329: _M_emplace_unique(*__first); 12329: } 12329: 12329: template 12329: __enable_if_t<__same_value_type<_InputIterator>::value> 12329: _M_insert_range_equal(_InputIterator __first, _InputIterator __last) 12329: { 12329: _Alloc_node __an(*this); 12329: for (; __first != __last; ++__first) 12329: _M_insert_equal_(end(), *__first, __an); 12329: } 12329: 12329: template 12329: __enable_if_t::value> 12329: _M_insert_range_equal(_InputIterator __first, _InputIterator __last) 12329: { 12329: _Alloc_node __an(*this); 12329: for (; __first != __last; ++__first) 12329: _M_emplace_equal(*__first); 12329: } 12329: # 1179 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: private: 12329: void 12329: _M_erase_aux(const_iterator __position); 12329: 12329: void 12329: _M_erase_aux(const_iterator __first, const_iterator __last); 12329: 12329: public: 12329: 12329: 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: iterator 12329: erase(const_iterator __position) 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__position != end())) __builtin_unreachable(); } while (false); 12329: const_iterator __result = __position; 12329: ++__result; 12329: _M_erase_aux(__position); 12329: return __result._M_const_cast(); 12329: } 12329: 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: iterator 12329: erase(iterator __position) 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__position != end())) __builtin_unreachable(); } while (false); 12329: iterator __result = __position; 12329: ++__result; 12329: _M_erase_aux(__position); 12329: return __result; 12329: } 12329: # 1228 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: size_type 12329: erase(const key_type& __x); 12329: 12329: 12329: 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: iterator 12329: erase(const_iterator __first, const_iterator __last) 12329: { 12329: _M_erase_aux(__first, __last); 12329: return __last._M_const_cast(); 12329: } 12329: # 1251 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: void 12329: clear() noexcept 12329: { 12329: _M_erase(_M_begin()); 12329: _M_impl._M_reset(); 12329: } 12329: 12329: 12329: iterator 12329: find(const key_type& __k); 12329: 12329: const_iterator 12329: find(const key_type& __k) const; 12329: 12329: size_type 12329: count(const key_type& __k) const; 12329: 12329: iterator 12329: lower_bound(const key_type& __k) 12329: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 12329: 12329: const_iterator 12329: lower_bound(const key_type& __k) const 12329: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 12329: 12329: iterator 12329: upper_bound(const key_type& __k) 12329: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 12329: 12329: const_iterator 12329: upper_bound(const key_type& __k) const 12329: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 12329: 12329: pair 12329: equal_range(const key_type& __k); 12329: 12329: pair 12329: equal_range(const key_type& __k) const; 12329: 12329: 12329: template> 12329: iterator 12329: _M_find_tr(const _Kt& __k) 12329: { 12329: const _Rb_tree* __const_this = this; 12329: return __const_this->_M_find_tr(__k)._M_const_cast(); 12329: } 12329: 12329: template> 12329: const_iterator 12329: _M_find_tr(const _Kt& __k) const 12329: { 12329: auto __j = _M_lower_bound_tr(__k); 12329: if (__j != end() && _M_impl._M_key_compare(__k, _S_key(__j._M_node))) 12329: __j = end(); 12329: return __j; 12329: } 12329: 12329: template> 12329: size_type 12329: _M_count_tr(const _Kt& __k) const 12329: { 12329: auto __p = _M_equal_range_tr(__k); 12329: return std::distance(__p.first, __p.second); 12329: } 12329: 12329: template> 12329: iterator 12329: _M_lower_bound_tr(const _Kt& __k) 12329: { 12329: const _Rb_tree* __const_this = this; 12329: return __const_this->_M_lower_bound_tr(__k)._M_const_cast(); 12329: } 12329: 12329: template> 12329: const_iterator 12329: _M_lower_bound_tr(const _Kt& __k) const 12329: { 12329: auto __x = _M_begin(); 12329: auto __y = _M_end(); 12329: while (__x != 0) 12329: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 12329: { 12329: __y = __x; 12329: __x = _S_left(__x); 12329: } 12329: else 12329: __x = _S_right(__x); 12329: return const_iterator(__y); 12329: } 12329: 12329: template> 12329: iterator 12329: _M_upper_bound_tr(const _Kt& __k) 12329: { 12329: const _Rb_tree* __const_this = this; 12329: return __const_this->_M_upper_bound_tr(__k)._M_const_cast(); 12329: } 12329: 12329: template> 12329: const_iterator 12329: _M_upper_bound_tr(const _Kt& __k) const 12329: { 12329: auto __x = _M_begin(); 12329: auto __y = _M_end(); 12329: while (__x != 0) 12329: if (_M_impl._M_key_compare(__k, _S_key(__x))) 12329: { 12329: __y = __x; 12329: __x = _S_left(__x); 12329: } 12329: else 12329: __x = _S_right(__x); 12329: return const_iterator(__y); 12329: } 12329: 12329: template> 12329: pair 12329: _M_equal_range_tr(const _Kt& __k) 12329: { 12329: const _Rb_tree* __const_this = this; 12329: auto __ret = __const_this->_M_equal_range_tr(__k); 12329: return { __ret.first._M_const_cast(), __ret.second._M_const_cast() }; 12329: } 12329: 12329: template> 12329: pair 12329: _M_equal_range_tr(const _Kt& __k) const 12329: { 12329: auto __low = _M_lower_bound_tr(__k); 12329: auto __high = __low; 12329: auto& __cmp = _M_impl._M_key_compare; 12329: while (__high != end() && !__cmp(__k, _S_key(__high._M_node))) 12329: ++__high; 12329: return { __low, __high }; 12329: } 12329: 12329: 12329: 12329: bool 12329: __rb_verify() const; 12329: 12329: 12329: _Rb_tree& 12329: operator=(_Rb_tree&&) 12329: noexcept(_Alloc_traits::_S_nothrow_move() 12329: && is_nothrow_move_assignable<_Compare>::value); 12329: 12329: template 12329: void 12329: _M_assign_unique(_Iterator, _Iterator); 12329: 12329: template 12329: void 12329: _M_assign_equal(_Iterator, _Iterator); 12329: 12329: private: 12329: 12329: void 12329: _M_move_data(_Rb_tree& __x, true_type) 12329: { _M_impl._M_move_data(__x._M_impl); } 12329: 12329: 12329: 12329: void 12329: _M_move_data(_Rb_tree&, false_type); 12329: 12329: 12329: void 12329: _M_move_assign(_Rb_tree&, true_type); 12329: 12329: 12329: 12329: void 12329: _M_move_assign(_Rb_tree&, false_type); 12329: # 1603 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: friend bool 12329: operator==(const _Rb_tree& __x, const _Rb_tree& __y) 12329: { 12329: return __x.size() == __y.size() 12329: && std::equal(__x.begin(), __x.end(), __y.begin()); 12329: } 12329: # 1620 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: friend bool 12329: operator<(const _Rb_tree& __x, const _Rb_tree& __y) 12329: { 12329: return std::lexicographical_compare(__x.begin(), __x.end(), 12329: __y.begin(), __y.end()); 12329: } 12329: 12329: 12329: private: 12329: 12329: 12329: struct _Auto_node 12329: { 12329: template 12329: _Auto_node(_Rb_tree& __t, _Args&&... __args) 12329: : _M_t(__t), 12329: _M_node(__t._M_create_node(std::forward<_Args>(__args)...)) 12329: { } 12329: 12329: ~_Auto_node() 12329: { 12329: if (_M_node) 12329: _M_t._M_drop_node(_M_node); 12329: } 12329: 12329: _Auto_node(_Auto_node&& __n) 12329: : _M_t(__n._M_t), _M_node(__n._M_node) 12329: { __n._M_node = nullptr; } 12329: 12329: const _Key& 12329: _M_key() const 12329: { return _S_key(_M_node); } 12329: 12329: iterator 12329: _M_insert(pair<_Base_ptr, _Base_ptr> __p) 12329: { 12329: auto __it = _M_t._M_insert_node(__p.first, __p.second, _M_node); 12329: _M_node = nullptr; 12329: return __it; 12329: } 12329: 12329: iterator 12329: _M_insert_equal_lower() 12329: { 12329: auto __it = _M_t._M_insert_equal_lower_node(_M_node); 12329: _M_node = nullptr; 12329: return __it; 12329: } 12329: 12329: _Rb_tree& _M_t; 12329: _Link_type _M_node; 12329: }; 12329: 12329: }; 12329: 12329: template 12329: inline void 12329: swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 12329: { __x.swap(__y); } 12329: 12329: 12329: template 12329: void 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_move_data(_Rb_tree& __x, false_type) 12329: { 12329: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 12329: _M_move_data(__x, true_type()); 12329: else 12329: { 12329: constexpr bool __move = !__move_if_noexcept_cond::value; 12329: _Alloc_node __an(*this); 12329: _M_root() = _M_copy<__move>(__x, __an); 12329: if (__move) 12329: __x.clear(); 12329: } 12329: } 12329: 12329: template 12329: inline void 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_move_assign(_Rb_tree& __x, true_type) 12329: { 12329: clear(); 12329: if (__x._M_root() != nullptr) 12329: _M_move_data(__x, true_type()); 12329: std::__alloc_on_move(_M_get_Node_allocator(), 12329: __x._M_get_Node_allocator()); 12329: } 12329: 12329: template 12329: void 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_move_assign(_Rb_tree& __x, false_type) 12329: { 12329: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 12329: return _M_move_assign(__x, true_type{}); 12329: 12329: 12329: 12329: _Reuse_or_alloc_node __roan(*this); 12329: _M_impl._M_reset(); 12329: if (__x._M_root() != nullptr) 12329: { 12329: _M_root() = _M_copy<__as_rvalue>(__x, __roan); 12329: __x.clear(); 12329: } 12329: } 12329: 12329: template 12329: inline _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: operator=(_Rb_tree&& __x) 12329: noexcept(_Alloc_traits::_S_nothrow_move() 12329: && is_nothrow_move_assignable<_Compare>::value) 12329: { 12329: _M_impl._M_key_compare = std::move(__x._M_impl._M_key_compare); 12329: _M_move_assign(__x, __bool_constant<_Alloc_traits::_S_nothrow_move()>()); 12329: return *this; 12329: } 12329: 12329: template 12329: template 12329: void 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_assign_unique(_Iterator __first, _Iterator __last) 12329: { 12329: _Reuse_or_alloc_node __roan(*this); 12329: _M_impl._M_reset(); 12329: for (; __first != __last; ++__first) 12329: _M_insert_unique_(end(), *__first, __roan); 12329: } 12329: 12329: template 12329: template 12329: void 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_assign_equal(_Iterator __first, _Iterator __last) 12329: { 12329: _Reuse_or_alloc_node __roan(*this); 12329: _M_impl._M_reset(); 12329: for (; __first != __last; ++__first) 12329: _M_insert_equal_(end(), *__first, __roan); 12329: } 12329: 12329: 12329: template 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: operator=(const _Rb_tree& __x) 12329: { 12329: if (this != std::__addressof(__x)) 12329: { 12329: 12329: 12329: if (_Alloc_traits::_S_propagate_on_copy_assign()) 12329: { 12329: auto& __this_alloc = this->_M_get_Node_allocator(); 12329: auto& __that_alloc = __x._M_get_Node_allocator(); 12329: if (!_Alloc_traits::_S_always_equal() 12329: && __this_alloc != __that_alloc) 12329: { 12329: 12329: 12329: clear(); 12329: std::__alloc_on_copy(__this_alloc, __that_alloc); 12329: } 12329: } 12329: 12329: 12329: _Reuse_or_alloc_node __roan(*this); 12329: _M_impl._M_reset(); 12329: _M_impl._M_key_compare = __x._M_impl._M_key_compare; 12329: if (__x._M_root() != 0) 12329: _M_root() = _M_copy<__as_lvalue>(__x, __roan); 12329: } 12329: 12329: return *this; 12329: } 12329: 12329: template 12329: 12329: template 12329: 12329: 12329: 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_insert_(_Base_ptr __x, _Base_ptr __p, 12329: 12329: _Arg&& __v, 12329: 12329: 12329: 12329: _NodeGen& __node_gen) 12329: { 12329: bool __insert_left = (__x != 0 || __p == _M_end() 12329: || _M_impl._M_key_compare(_KeyOfValue()(__v), 12329: _S_key(__p))); 12329: 12329: _Link_type __z = __node_gen(std::forward<_Arg>(__v)); 12329: 12329: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 12329: this->_M_impl._M_header); 12329: ++_M_impl._M_node_count; 12329: return iterator(__z); 12329: } 12329: 12329: template 12329: 12329: template 12329: 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: 12329: _M_insert_lower(_Base_ptr __p, _Arg&& __v) 12329: 12329: 12329: 12329: { 12329: bool __insert_left = (__p == _M_end() 12329: || !_M_impl._M_key_compare(_S_key(__p), 12329: _KeyOfValue()(__v))); 12329: 12329: _Link_type __z = _M_create_node(std::forward<_Arg>(__v)); 12329: 12329: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 12329: this->_M_impl._M_header); 12329: ++_M_impl._M_node_count; 12329: return iterator(__z); 12329: } 12329: 12329: template 12329: 12329: template 12329: 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: 12329: _M_insert_equal_lower(_Arg&& __v) 12329: 12329: 12329: 12329: { 12329: _Link_type __x = _M_begin(); 12329: _Base_ptr __y = _M_end(); 12329: while (__x != 0) 12329: { 12329: __y = __x; 12329: __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? 12329: _S_left(__x) : _S_right(__x); 12329: } 12329: return _M_insert_lower(__y, std::forward<_Arg>(__v)); 12329: } 12329: 12329: template 12329: template 12329: typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type 12329: _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: 12329: _M_copy(_Link_type __x, _Base_ptr __p, _NodeGen& __node_gen) 12329: { 12329: 12329: _Link_type __top = _M_clone_node<_MoveValues>(__x, __node_gen); 12329: __top->_M_parent = __p; 12329: 12329: try 12329: { 12329: if (__x->_M_right) 12329: __top->_M_right = 12329: _M_copy<_MoveValues>(_S_right(__x), __top, __node_gen); 12329: __p = __top; 12329: __x = _S_left(__x); 12329: 12329: while (__x != 0) 12329: { 12329: _Link_type __y = _M_clone_node<_MoveValues>(__x, __node_gen); 12329: __p->_M_left = __y; 12329: __y->_M_parent = __p; 12329: if (__x->_M_right) 12329: __y->_M_right = _M_copy<_MoveValues>(_S_right(__x), 12329: __y, __node_gen); 12329: __p = __y; 12329: __x = _S_left(__x); 12329: } 12329: } 12329: catch(...) 12329: { 12329: _M_erase(__top); 12329: throw; 12329: } 12329: return __top; 12329: } 12329: 12329: template 12329: void 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_erase(_Link_type __x) 12329: { 12329: 12329: while (__x != 0) 12329: { 12329: _M_erase(_S_right(__x)); 12329: _Link_type __y = _S_left(__x); 12329: _M_drop_node(__x); 12329: __x = __y; 12329: } 12329: } 12329: 12329: template 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, 12329: _Compare, _Alloc>::iterator 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_lower_bound(_Link_type __x, _Base_ptr __y, 12329: const _Key& __k) 12329: { 12329: while (__x != 0) 12329: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 12329: __y = __x, __x = _S_left(__x); 12329: else 12329: __x = _S_right(__x); 12329: return iterator(__y); 12329: } 12329: 12329: template 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, 12329: _Compare, _Alloc>::const_iterator 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 12329: const _Key& __k) const 12329: { 12329: while (__x != 0) 12329: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 12329: __y = __x, __x = _S_left(__x); 12329: else 12329: __x = _S_right(__x); 12329: return const_iterator(__y); 12329: } 12329: 12329: template 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, 12329: _Compare, _Alloc>::iterator 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_upper_bound(_Link_type __x, _Base_ptr __y, 12329: const _Key& __k) 12329: { 12329: while (__x != 0) 12329: if (_M_impl._M_key_compare(__k, _S_key(__x))) 12329: __y = __x, __x = _S_left(__x); 12329: else 12329: __x = _S_right(__x); 12329: return iterator(__y); 12329: } 12329: 12329: template 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, 12329: _Compare, _Alloc>::const_iterator 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 12329: const _Key& __k) const 12329: { 12329: while (__x != 0) 12329: if (_M_impl._M_key_compare(__k, _S_key(__x))) 12329: __y = __x, __x = _S_left(__x); 12329: else 12329: __x = _S_right(__x); 12329: return const_iterator(__y); 12329: } 12329: 12329: template 12329: pair::iterator, 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, 12329: _Compare, _Alloc>::iterator> 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: equal_range(const _Key& __k) 12329: { 12329: _Link_type __x = _M_begin(); 12329: _Base_ptr __y = _M_end(); 12329: while (__x != 0) 12329: { 12329: if (_M_impl._M_key_compare(_S_key(__x), __k)) 12329: __x = _S_right(__x); 12329: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 12329: __y = __x, __x = _S_left(__x); 12329: else 12329: { 12329: _Link_type __xu(__x); 12329: _Base_ptr __yu(__y); 12329: __y = __x, __x = _S_left(__x); 12329: __xu = _S_right(__xu); 12329: return pair(_M_lower_bound(__x, __y, __k), 12329: _M_upper_bound(__xu, __yu, __k)); 12329: } 12329: } 12329: return pair(iterator(__y), 12329: iterator(__y)); 12329: } 12329: 12329: template 12329: pair::const_iterator, 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, 12329: _Compare, _Alloc>::const_iterator> 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: equal_range(const _Key& __k) const 12329: { 12329: _Const_Link_type __x = _M_begin(); 12329: _Const_Base_ptr __y = _M_end(); 12329: while (__x != 0) 12329: { 12329: if (_M_impl._M_key_compare(_S_key(__x), __k)) 12329: __x = _S_right(__x); 12329: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 12329: __y = __x, __x = _S_left(__x); 12329: else 12329: { 12329: _Const_Link_type __xu(__x); 12329: _Const_Base_ptr __yu(__y); 12329: __y = __x, __x = _S_left(__x); 12329: __xu = _S_right(__xu); 12329: return pair(_M_lower_bound(__x, __y, __k), 12329: _M_upper_bound(__xu, __yu, __k)); 12329: } 12329: } 12329: return pair(const_iterator(__y), 12329: const_iterator(__y)); 12329: } 12329: 12329: template 12329: void 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: swap(_Rb_tree& __t) 12329: noexcept(__is_nothrow_swappable<_Compare>::value) 12329: { 12329: if (_M_root() == 0) 12329: { 12329: if (__t._M_root() != 0) 12329: _M_impl._M_move_data(__t._M_impl); 12329: } 12329: else if (__t._M_root() == 0) 12329: __t._M_impl._M_move_data(_M_impl); 12329: else 12329: { 12329: std::swap(_M_root(),__t._M_root()); 12329: std::swap(_M_leftmost(),__t._M_leftmost()); 12329: std::swap(_M_rightmost(),__t._M_rightmost()); 12329: 12329: _M_root()->_M_parent = _M_end(); 12329: __t._M_root()->_M_parent = __t._M_end(); 12329: std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); 12329: } 12329: 12329: std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); 12329: 12329: _Alloc_traits::_S_on_swap(_M_get_Node_allocator(), 12329: __t._M_get_Node_allocator()); 12329: } 12329: 12329: template 12329: pair::_Base_ptr, 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, 12329: _Compare, _Alloc>::_Base_ptr> 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_get_insert_unique_pos(const key_type& __k) 12329: { 12329: typedef pair<_Base_ptr, _Base_ptr> _Res; 12329: _Link_type __x = _M_begin(); 12329: _Base_ptr __y = _M_end(); 12329: bool __comp = true; 12329: while (__x != 0) 12329: { 12329: __y = __x; 12329: __comp = _M_impl._M_key_compare(__k, _S_key(__x)); 12329: __x = __comp ? _S_left(__x) : _S_right(__x); 12329: } 12329: iterator __j = iterator(__y); 12329: if (__comp) 12329: { 12329: if (__j == begin()) 12329: return _Res(__x, __y); 12329: else 12329: --__j; 12329: } 12329: if (_M_impl._M_key_compare(_S_key(__j._M_node), __k)) 12329: return _Res(__x, __y); 12329: return _Res(__j._M_node, 0); 12329: } 12329: 12329: template 12329: pair::_Base_ptr, 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, 12329: _Compare, _Alloc>::_Base_ptr> 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_get_insert_equal_pos(const key_type& __k) 12329: { 12329: typedef pair<_Base_ptr, _Base_ptr> _Res; 12329: _Link_type __x = _M_begin(); 12329: _Base_ptr __y = _M_end(); 12329: while (__x != 0) 12329: { 12329: __y = __x; 12329: __x = _M_impl._M_key_compare(__k, _S_key(__x)) ? 12329: _S_left(__x) : _S_right(__x); 12329: } 12329: return _Res(__x, __y); 12329: } 12329: 12329: template 12329: 12329: template 12329: 12329: pair::iterator, bool> 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: 12329: _M_insert_unique(_Arg&& __v) 12329: 12329: 12329: 12329: { 12329: typedef pair _Res; 12329: pair<_Base_ptr, _Base_ptr> __res 12329: = _M_get_insert_unique_pos(_KeyOfValue()(__v)); 12329: 12329: if (__res.second) 12329: { 12329: _Alloc_node __an(*this); 12329: return _Res(_M_insert_(__res.first, __res.second, 12329: std::forward<_Arg>(__v), __an), 12329: true); 12329: } 12329: 12329: return _Res(iterator(__res.first), false); 12329: } 12329: 12329: template 12329: 12329: template 12329: 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: 12329: _M_insert_equal(_Arg&& __v) 12329: 12329: 12329: 12329: { 12329: pair<_Base_ptr, _Base_ptr> __res 12329: = _M_get_insert_equal_pos(_KeyOfValue()(__v)); 12329: _Alloc_node __an(*this); 12329: return _M_insert_(__res.first, __res.second, 12329: std::forward<_Arg>(__v), __an); 12329: } 12329: 12329: template 12329: pair::_Base_ptr, 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, 12329: _Compare, _Alloc>::_Base_ptr> 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_get_insert_hint_unique_pos(const_iterator __position, 12329: const key_type& __k) 12329: { 12329: iterator __pos = __position._M_const_cast(); 12329: typedef pair<_Base_ptr, _Base_ptr> _Res; 12329: 12329: 12329: if (__pos._M_node == _M_end()) 12329: { 12329: if (size() > 0 12329: && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k)) 12329: return _Res(0, _M_rightmost()); 12329: else 12329: return _M_get_insert_unique_pos(__k); 12329: } 12329: else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node))) 12329: { 12329: 12329: iterator __before = __pos; 12329: if (__pos._M_node == _M_leftmost()) 12329: return _Res(_M_leftmost(), _M_leftmost()); 12329: else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k)) 12329: { 12329: if (_S_right(__before._M_node) == 0) 12329: return _Res(0, __before._M_node); 12329: else 12329: return _Res(__pos._M_node, __pos._M_node); 12329: } 12329: else 12329: return _M_get_insert_unique_pos(__k); 12329: } 12329: else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 12329: { 12329: 12329: iterator __after = __pos; 12329: if (__pos._M_node == _M_rightmost()) 12329: return _Res(0, _M_rightmost()); 12329: else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node))) 12329: { 12329: if (_S_right(__pos._M_node) == 0) 12329: return _Res(0, __pos._M_node); 12329: else 12329: return _Res(__after._M_node, __after._M_node); 12329: } 12329: else 12329: return _M_get_insert_unique_pos(__k); 12329: } 12329: else 12329: 12329: return _Res(__pos._M_node, 0); 12329: } 12329: 12329: template 12329: 12329: template 12329: 12329: 12329: 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_insert_unique_(const_iterator __position, 12329: 12329: _Arg&& __v, 12329: 12329: 12329: 12329: _NodeGen& __node_gen) 12329: { 12329: pair<_Base_ptr, _Base_ptr> __res 12329: = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v)); 12329: 12329: if (__res.second) 12329: return _M_insert_(__res.first, __res.second, 12329: std::forward<_Arg>(__v), 12329: __node_gen); 12329: return iterator(__res.first); 12329: } 12329: 12329: template 12329: pair::_Base_ptr, 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, 12329: _Compare, _Alloc>::_Base_ptr> 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k) 12329: { 12329: iterator __pos = __position._M_const_cast(); 12329: typedef pair<_Base_ptr, _Base_ptr> _Res; 12329: 12329: 12329: if (__pos._M_node == _M_end()) 12329: { 12329: if (size() > 0 12329: && !_M_impl._M_key_compare(__k, _S_key(_M_rightmost()))) 12329: return _Res(0, _M_rightmost()); 12329: else 12329: return _M_get_insert_equal_pos(__k); 12329: } 12329: else if (!_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 12329: { 12329: 12329: iterator __before = __pos; 12329: if (__pos._M_node == _M_leftmost()) 12329: return _Res(_M_leftmost(), _M_leftmost()); 12329: else if (!_M_impl._M_key_compare(__k, _S_key((--__before)._M_node))) 12329: { 12329: if (_S_right(__before._M_node) == 0) 12329: return _Res(0, __before._M_node); 12329: else 12329: return _Res(__pos._M_node, __pos._M_node); 12329: } 12329: else 12329: return _M_get_insert_equal_pos(__k); 12329: } 12329: else 12329: { 12329: 12329: iterator __after = __pos; 12329: if (__pos._M_node == _M_rightmost()) 12329: return _Res(0, _M_rightmost()); 12329: else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), __k)) 12329: { 12329: if (_S_right(__pos._M_node) == 0) 12329: return _Res(0, __pos._M_node); 12329: else 12329: return _Res(__after._M_node, __after._M_node); 12329: } 12329: else 12329: return _Res(0, 0); 12329: } 12329: } 12329: 12329: template 12329: 12329: template 12329: 12329: 12329: 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_insert_equal_(const_iterator __position, 12329: 12329: _Arg&& __v, 12329: 12329: 12329: 12329: _NodeGen& __node_gen) 12329: { 12329: pair<_Base_ptr, _Base_ptr> __res 12329: = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v)); 12329: 12329: if (__res.second) 12329: return _M_insert_(__res.first, __res.second, 12329: std::forward<_Arg>(__v), 12329: __node_gen); 12329: 12329: return _M_insert_equal_lower(std::forward<_Arg>(__v)); 12329: } 12329: 12329: 12329: template 12329: auto 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Link_type __z) 12329: -> iterator 12329: { 12329: bool __insert_left = (__x != 0 || __p == _M_end() 12329: || _M_impl._M_key_compare(_S_key(__z), 12329: _S_key(__p))); 12329: 12329: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 12329: this->_M_impl._M_header); 12329: ++_M_impl._M_node_count; 12329: return iterator(__z); 12329: } 12329: 12329: template 12329: auto 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_insert_lower_node(_Base_ptr __p, _Link_type __z) 12329: -> iterator 12329: { 12329: bool __insert_left = (__p == _M_end() 12329: || !_M_impl._M_key_compare(_S_key(__p), 12329: _S_key(__z))); 12329: 12329: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 12329: this->_M_impl._M_header); 12329: ++_M_impl._M_node_count; 12329: return iterator(__z); 12329: } 12329: 12329: template 12329: auto 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_insert_equal_lower_node(_Link_type __z) 12329: -> iterator 12329: { 12329: _Link_type __x = _M_begin(); 12329: _Base_ptr __y = _M_end(); 12329: while (__x != 0) 12329: { 12329: __y = __x; 12329: __x = !_M_impl._M_key_compare(_S_key(__x), _S_key(__z)) ? 12329: _S_left(__x) : _S_right(__x); 12329: } 12329: return _M_insert_lower_node(__y, __z); 12329: } 12329: 12329: template 12329: template 12329: auto 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_emplace_unique(_Args&&... __args) 12329: -> pair 12329: { 12329: _Auto_node __z(*this, std::forward<_Args>(__args)...); 12329: auto __res = _M_get_insert_unique_pos(__z._M_key()); 12329: if (__res.second) 12329: return {__z._M_insert(__res), true}; 12329: return {iterator(__res.first), false}; 12329: } 12329: 12329: template 12329: template 12329: auto 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_emplace_equal(_Args&&... __args) 12329: -> iterator 12329: { 12329: _Auto_node __z(*this, std::forward<_Args>(__args)...); 12329: auto __res = _M_get_insert_equal_pos(__z._M_key()); 12329: return __z._M_insert(__res); 12329: } 12329: 12329: template 12329: template 12329: auto 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args) 12329: -> iterator 12329: { 12329: _Auto_node __z(*this, std::forward<_Args>(__args)...); 12329: auto __res = _M_get_insert_hint_unique_pos(__pos, __z._M_key()); 12329: if (__res.second) 12329: return __z._M_insert(__res); 12329: return iterator(__res.first); 12329: } 12329: 12329: template 12329: template 12329: auto 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args) 12329: -> iterator 12329: { 12329: _Auto_node __z(*this, std::forward<_Args>(__args)...); 12329: auto __res = _M_get_insert_hint_equal_pos(__pos, __z._M_key()); 12329: if (__res.second) 12329: return __z._M_insert(__res); 12329: return __z._M_insert_equal_lower(); 12329: } 12329: 12329: 12329: 12329: template 12329: void 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_erase_aux(const_iterator __position) 12329: { 12329: _Link_type __y = 12329: static_cast<_Link_type>(_Rb_tree_rebalance_for_erase 12329: (const_cast<_Base_ptr>(__position._M_node), 12329: this->_M_impl._M_header)); 12329: _M_drop_node(__y); 12329: --_M_impl._M_node_count; 12329: } 12329: 12329: template 12329: void 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: _M_erase_aux(const_iterator __first, const_iterator __last) 12329: { 12329: if (__first == begin() && __last == end()) 12329: clear(); 12329: else 12329: while (__first != __last) 12329: _M_erase_aux(__first++); 12329: } 12329: 12329: template 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: erase(const _Key& __x) 12329: { 12329: pair __p = equal_range(__x); 12329: const size_type __old_size = size(); 12329: _M_erase_aux(__p.first, __p.second); 12329: return __old_size - size(); 12329: } 12329: 12329: template 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, 12329: _Compare, _Alloc>::iterator 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: find(const _Key& __k) 12329: { 12329: iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 12329: return (__j == end() 12329: || _M_impl._M_key_compare(__k, 12329: _S_key(__j._M_node))) ? end() : __j; 12329: } 12329: 12329: template 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, 12329: _Compare, _Alloc>::const_iterator 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: find(const _Key& __k) const 12329: { 12329: const_iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 12329: return (__j == end() 12329: || _M_impl._M_key_compare(__k, 12329: _S_key(__j._M_node))) ? end() : __j; 12329: } 12329: 12329: template 12329: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 12329: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 12329: count(const _Key& __k) const 12329: { 12329: pair __p = equal_range(__k); 12329: const size_type __n = std::distance(__p.first, __p.second); 12329: return __n; 12329: } 12329: 12329: __attribute__ ((__pure__)) unsigned int 12329: _Rb_tree_black_count(const _Rb_tree_node_base* __node, 12329: const _Rb_tree_node_base* __root) throw (); 12329: 12329: template 12329: bool 12329: _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const 12329: { 12329: if (_M_impl._M_node_count == 0 || begin() == end()) 12329: return _M_impl._M_node_count == 0 && begin() == end() 12329: && this->_M_impl._M_header._M_left == _M_end() 12329: && this->_M_impl._M_header._M_right == _M_end(); 12329: 12329: unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); 12329: for (const_iterator __it = begin(); __it != end(); ++__it) 12329: { 12329: _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node); 12329: _Const_Link_type __L = _S_left(__x); 12329: _Const_Link_type __R = _S_right(__x); 12329: 12329: if (__x->_M_color == _S_red) 12329: if ((__L && __L->_M_color == _S_red) 12329: || (__R && __R->_M_color == _S_red)) 12329: return false; 12329: 12329: if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) 12329: return false; 12329: if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) 12329: return false; 12329: 12329: if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) 12329: return false; 12329: } 12329: 12329: if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) 12329: return false; 12329: if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) 12329: return false; 12329: return true; 12329: } 12329: # 2619 "/usr/include/c++/12/bits/stl_tree.h" 3 12329: 12329: } 12329: # 61 "/usr/include/c++/12/map" 2 3 12329: # 1 "/usr/include/c++/12/bits/stl_map.h" 1 3 12329: # 63 "/usr/include/c++/12/bits/stl_map.h" 3 12329: # 1 "/usr/include/c++/12/tuple" 1 3 12329: # 32 "/usr/include/c++/12/tuple" 3 12329: 12329: # 33 "/usr/include/c++/12/tuple" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/uses_allocator.h" 1 3 12329: # 35 "/usr/include/c++/12/bits/uses_allocator.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: struct __erased_type { }; 12329: 12329: 12329: 12329: 12329: template 12329: using __is_erased_or_convertible 12329: = __or_, is_same<_Tp, __erased_type>>; 12329: 12329: 12329: struct allocator_arg_t { explicit allocator_arg_t() = default; }; 12329: 12329: constexpr allocator_arg_t allocator_arg = 12329: allocator_arg_t(); 12329: 12329: template> 12329: struct __uses_allocator_helper 12329: : false_type { }; 12329: 12329: template 12329: struct __uses_allocator_helper<_Tp, _Alloc, 12329: __void_t> 12329: : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type 12329: { }; 12329: 12329: 12329: template 12329: struct uses_allocator 12329: : __uses_allocator_helper<_Tp, _Alloc>::type 12329: { }; 12329: 12329: struct __uses_alloc_base { }; 12329: 12329: struct __uses_alloc0 : __uses_alloc_base 12329: { 12329: struct _Sink { void operator=(const void*) { } } _M_a; 12329: }; 12329: 12329: template 12329: struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; 12329: 12329: template 12329: struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; 12329: 12329: template 12329: struct __uses_alloc; 12329: 12329: template 12329: struct __uses_alloc 12329: : __conditional_t< 12329: is_constructible<_Tp, allocator_arg_t, const _Alloc&, _Args...>::value, 12329: __uses_alloc1<_Alloc>, 12329: __uses_alloc2<_Alloc>> 12329: { 12329: 12329: 12329: static_assert(__or_< 12329: is_constructible<_Tp, allocator_arg_t, const _Alloc&, _Args...>, 12329: is_constructible<_Tp, _Args..., const _Alloc&>>::value, 12329: "construction with an allocator must be possible" 12329: " if uses_allocator is true"); 12329: }; 12329: 12329: template 12329: struct __uses_alloc 12329: : __uses_alloc0 { }; 12329: 12329: template 12329: using __uses_alloc_t = 12329: __uses_alloc::value, _Tp, _Alloc, _Args...>; 12329: 12329: template 12329: 12329: inline __uses_alloc_t<_Tp, _Alloc, _Args...> 12329: __use_alloc(const _Alloc& __a) 12329: { 12329: __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; 12329: __ret._M_a = std::__addressof(__a); 12329: return __ret; 12329: } 12329: 12329: template 12329: void 12329: __use_alloc(const _Alloc&&) = delete; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template class _Predicate, 12329: typename _Tp, typename _Alloc, typename... _Args> 12329: struct __is_uses_allocator_predicate 12329: : __conditional_t::value, 12329: __or_<_Predicate<_Tp, allocator_arg_t, _Alloc, _Args...>, 12329: _Predicate<_Tp, _Args..., _Alloc>>, 12329: _Predicate<_Tp, _Args...>> { }; 12329: 12329: template 12329: struct __is_uses_allocator_constructible 12329: : __is_uses_allocator_predicate 12329: { }; 12329: 12329: 12329: template 12329: constexpr bool __is_uses_allocator_constructible_v = 12329: __is_uses_allocator_constructible<_Tp, _Alloc, _Args...>::value; 12329: 12329: 12329: template 12329: struct __is_nothrow_uses_allocator_constructible 12329: : __is_uses_allocator_predicate 12329: { }; 12329: 12329: 12329: 12329: template 12329: constexpr bool 12329: __is_nothrow_uses_allocator_constructible_v = 12329: __is_nothrow_uses_allocator_constructible<_Tp, _Alloc, _Args...>::value; 12329: 12329: 12329: template 12329: void __uses_allocator_construct_impl(__uses_alloc0 __a, _Tp* __ptr, 12329: _Args&&... __args) 12329: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } 12329: 12329: template 12329: void __uses_allocator_construct_impl(__uses_alloc1<_Alloc> __a, _Tp* __ptr, 12329: _Args&&... __args) 12329: { 12329: ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, 12329: std::forward<_Args>(__args)...); 12329: } 12329: 12329: template 12329: void __uses_allocator_construct_impl(__uses_alloc2<_Alloc> __a, _Tp* __ptr, 12329: _Args&&... __args) 12329: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } 12329: 12329: template 12329: void __uses_allocator_construct(const _Alloc& __a, _Tp* __ptr, 12329: _Args&&... __args) 12329: { 12329: std::__uses_allocator_construct_impl( 12329: std::__use_alloc<_Tp, _Alloc, _Args...>(__a), __ptr, 12329: std::forward<_Args>(__args)...); 12329: } 12329: 12329: 12329: 12329: } 12329: # 40 "/usr/include/c++/12/tuple" 2 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class tuple; 12329: 12329: template 12329: struct __is_empty_non_tuple : is_empty<_Tp> { }; 12329: 12329: 12329: template 12329: struct __is_empty_non_tuple> : false_type { }; 12329: 12329: 12329: template 12329: using __empty_not_final 12329: = __conditional_t<__is_final(_Tp), false_type, 12329: __is_empty_non_tuple<_Tp>>; 12329: 12329: template::value> 12329: struct _Head_base; 12329: 12329: 12329: template 12329: struct _Head_base<_Idx, _Head, true> 12329: { 12329: constexpr _Head_base() 12329: : _M_head_impl() { } 12329: 12329: constexpr _Head_base(const _Head& __h) 12329: : _M_head_impl(__h) { } 12329: 12329: constexpr _Head_base(const _Head_base&) = default; 12329: constexpr _Head_base(_Head_base&&) = default; 12329: 12329: template 12329: constexpr _Head_base(_UHead&& __h) 12329: : _M_head_impl(std::forward<_UHead>(__h)) { } 12329: 12329: 12329: _Head_base(allocator_arg_t, __uses_alloc0) 12329: : _M_head_impl() { } 12329: 12329: template 12329: 12329: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 12329: : _M_head_impl(allocator_arg, *__a._M_a) { } 12329: 12329: template 12329: 12329: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 12329: : _M_head_impl(*__a._M_a) { } 12329: 12329: template 12329: 12329: _Head_base(__uses_alloc0, _UHead&& __uhead) 12329: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 12329: 12329: template 12329: 12329: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 12329: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 12329: { } 12329: 12329: template 12329: 12329: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 12329: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 12329: 12329: static constexpr _Head& 12329: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 12329: 12329: static constexpr const _Head& 12329: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 12329: 12329: [[__no_unique_address__]] _Head _M_head_impl; 12329: }; 12329: # 186 "/usr/include/c++/12/tuple" 3 12329: template 12329: struct _Head_base<_Idx, _Head, false> 12329: { 12329: constexpr _Head_base() 12329: : _M_head_impl() { } 12329: 12329: constexpr _Head_base(const _Head& __h) 12329: : _M_head_impl(__h) { } 12329: 12329: constexpr _Head_base(const _Head_base&) = default; 12329: constexpr _Head_base(_Head_base&&) = default; 12329: 12329: template 12329: constexpr _Head_base(_UHead&& __h) 12329: : _M_head_impl(std::forward<_UHead>(__h)) { } 12329: 12329: 12329: _Head_base(allocator_arg_t, __uses_alloc0) 12329: : _M_head_impl() { } 12329: 12329: template 12329: 12329: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 12329: : _M_head_impl(allocator_arg, *__a._M_a) { } 12329: 12329: template 12329: 12329: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 12329: : _M_head_impl(*__a._M_a) { } 12329: 12329: template 12329: 12329: _Head_base(__uses_alloc0, _UHead&& __uhead) 12329: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 12329: 12329: template 12329: 12329: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 12329: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 12329: { } 12329: 12329: template 12329: 12329: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 12329: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 12329: 12329: static constexpr _Head& 12329: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 12329: 12329: static constexpr const _Head& 12329: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 12329: 12329: _Head _M_head_impl; 12329: }; 12329: # 249 "/usr/include/c++/12/tuple" 3 12329: template 12329: struct _Tuple_impl; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct _Tuple_impl<_Idx, _Head, _Tail...> 12329: : public _Tuple_impl<_Idx + 1, _Tail...>, 12329: private _Head_base<_Idx, _Head> 12329: { 12329: template friend struct _Tuple_impl; 12329: 12329: typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; 12329: typedef _Head_base<_Idx, _Head> _Base; 12329: 12329: static constexpr _Head& 12329: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 12329: 12329: static constexpr const _Head& 12329: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 12329: 12329: static constexpr _Inherited& 12329: _M_tail(_Tuple_impl& __t) noexcept { return __t; } 12329: 12329: static constexpr const _Inherited& 12329: _M_tail(const _Tuple_impl& __t) noexcept { return __t; } 12329: 12329: constexpr _Tuple_impl() 12329: : _Inherited(), _Base() { } 12329: 12329: explicit constexpr 12329: _Tuple_impl(const _Head& __head, const _Tail&... __tail) 12329: : _Inherited(__tail...), _Base(__head) 12329: { } 12329: 12329: template> 12329: explicit constexpr 12329: _Tuple_impl(_UHead&& __head, _UTail&&... __tail) 12329: : _Inherited(std::forward<_UTail>(__tail)...), 12329: _Base(std::forward<_UHead>(__head)) 12329: { } 12329: 12329: constexpr _Tuple_impl(const _Tuple_impl&) = default; 12329: 12329: 12329: 12329: _Tuple_impl& operator=(const _Tuple_impl&) = delete; 12329: 12329: _Tuple_impl(_Tuple_impl&&) = default; 12329: 12329: template 12329: constexpr 12329: _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) 12329: : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 12329: _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) 12329: { } 12329: 12329: template 12329: constexpr 12329: _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 12329: : _Inherited(std::move 12329: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 12329: _Base(std::forward<_UHead> 12329: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 12329: : _Inherited(__tag, __a), 12329: _Base(__tag, __use_alloc<_Head>(__a)) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 12329: const _Head& __head, const _Tail&... __tail) 12329: : _Inherited(__tag, __a, __tail...), 12329: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) 12329: { } 12329: 12329: template> 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 12329: _UHead&& __head, _UTail&&... __tail) 12329: : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), 12329: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 12329: std::forward<_UHead>(__head)) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 12329: const _Tuple_impl& __in) 12329: : _Inherited(__tag, __a, _M_tail(__in)), 12329: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 12329: _Tuple_impl&& __in) 12329: : _Inherited(__tag, __a, std::move(_M_tail(__in))), 12329: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 12329: std::forward<_Head>(_M_head(__in))) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 12329: const _Tuple_impl<_Idx, _UHead, _UTails...>& __in) 12329: : _Inherited(__tag, __a, 12329: _Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in)), 12329: _Base(__use_alloc<_Head, _Alloc, const _UHead&>(__a), 12329: _Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 12329: _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 12329: : _Inherited(__tag, __a, std::move 12329: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 12329: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 12329: std::forward<_UHead> 12329: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) 12329: { } 12329: 12329: template 12329: 12329: void 12329: _M_assign(const _Tuple_impl<_Idx, _UElements...>& __in) 12329: { 12329: _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); 12329: _M_tail(*this)._M_assign( 12329: _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)); 12329: } 12329: 12329: template 12329: 12329: void 12329: _M_assign(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 12329: { 12329: _M_head(*this) = std::forward<_UHead> 12329: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); 12329: _M_tail(*this)._M_assign( 12329: std::move(_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))); 12329: } 12329: 12329: protected: 12329: 12329: void 12329: _M_swap(_Tuple_impl& __in) 12329: { 12329: using std::swap; 12329: swap(_M_head(*this), _M_head(__in)); 12329: _Inherited::_M_swap(_M_tail(__in)); 12329: } 12329: }; 12329: 12329: 12329: template 12329: struct _Tuple_impl<_Idx, _Head> 12329: : private _Head_base<_Idx, _Head> 12329: { 12329: template friend struct _Tuple_impl; 12329: 12329: typedef _Head_base<_Idx, _Head> _Base; 12329: 12329: static constexpr _Head& 12329: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 12329: 12329: static constexpr const _Head& 12329: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 12329: 12329: constexpr 12329: _Tuple_impl() 12329: : _Base() { } 12329: 12329: explicit constexpr 12329: _Tuple_impl(const _Head& __head) 12329: : _Base(__head) 12329: { } 12329: 12329: template 12329: explicit constexpr 12329: _Tuple_impl(_UHead&& __head) 12329: : _Base(std::forward<_UHead>(__head)) 12329: { } 12329: 12329: constexpr _Tuple_impl(const _Tuple_impl&) = default; 12329: 12329: 12329: 12329: _Tuple_impl& operator=(const _Tuple_impl&) = delete; 12329: 12329: 12329: 12329: 12329: constexpr 12329: _Tuple_impl(_Tuple_impl&& __in) 12329: noexcept(is_nothrow_move_constructible<_Head>::value) 12329: : _Base(static_cast<_Base&&>(__in)) 12329: { } 12329: 12329: 12329: template 12329: constexpr 12329: _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) 12329: : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) 12329: { } 12329: 12329: template 12329: constexpr 12329: _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) 12329: : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 12329: : _Base(__tag, __use_alloc<_Head>(__a)) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 12329: const _Head& __head) 12329: : _Base(__use_alloc<_Head, _Alloc, const _Head&>(__a), __head) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 12329: _UHead&& __head) 12329: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 12329: std::forward<_UHead>(__head)) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 12329: const _Tuple_impl& __in) 12329: : _Base(__use_alloc<_Head, _Alloc, const _Head&>(__a), _M_head(__in)) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 12329: _Tuple_impl&& __in) 12329: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 12329: std::forward<_Head>(_M_head(__in))) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 12329: const _Tuple_impl<_Idx, _UHead>& __in) 12329: : _Base(__use_alloc<_Head, _Alloc, const _UHead&>(__a), 12329: _Tuple_impl<_Idx, _UHead>::_M_head(__in)) 12329: { } 12329: 12329: template 12329: 12329: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 12329: _Tuple_impl<_Idx, _UHead>&& __in) 12329: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 12329: std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 12329: { } 12329: 12329: template 12329: 12329: void 12329: _M_assign(const _Tuple_impl<_Idx, _UHead>& __in) 12329: { 12329: _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); 12329: } 12329: 12329: template 12329: 12329: void 12329: _M_assign(_Tuple_impl<_Idx, _UHead>&& __in) 12329: { 12329: _M_head(*this) 12329: = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); 12329: } 12329: 12329: protected: 12329: 12329: void 12329: _M_swap(_Tuple_impl& __in) 12329: { 12329: using std::swap; 12329: swap(_M_head(*this), _M_head(__in)); 12329: } 12329: }; 12329: 12329: 12329: 12329: template 12329: struct _TupleConstraints 12329: { 12329: 12329: 12329: 12329: template 12329: static constexpr bool __is_implicitly_constructible() 12329: { 12329: return __and_..., 12329: is_convertible<_UTypes, _Types>... 12329: >::value; 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: static constexpr bool __is_explicitly_constructible() 12329: { 12329: return __and_..., 12329: __not_<__and_...>> 12329: >::value; 12329: } 12329: 12329: static constexpr bool __is_implicitly_default_constructible() 12329: { 12329: return __and_... 12329: >::value; 12329: } 12329: 12329: static constexpr bool __is_explicitly_default_constructible() 12329: { 12329: return __and_..., 12329: __not_<__and_< 12329: std::__is_implicitly_default_constructible<_Types>...> 12329: >>::value; 12329: } 12329: }; 12329: 12329: 12329: 12329: template 12329: struct _TupleConstraints 12329: { 12329: template 12329: static constexpr bool __is_implicitly_constructible() 12329: { return false; } 12329: 12329: template 12329: static constexpr bool __is_explicitly_constructible() 12329: { return false; } 12329: }; 12329: 12329: 12329: template 12329: class tuple : public _Tuple_impl<0, _Elements...> 12329: { 12329: typedef _Tuple_impl<0, _Elements...> _Inherited; 12329: 12329: template 12329: using _TCC = _TupleConstraints<_Cond, _Elements...>; 12329: 12329: 12329: template 12329: using _ImplicitDefaultCtor = __enable_if_t< 12329: _TCC<_Dummy>::__is_implicitly_default_constructible(), 12329: bool>; 12329: 12329: 12329: template 12329: using _ExplicitDefaultCtor = __enable_if_t< 12329: _TCC<_Dummy>::__is_explicitly_default_constructible(), 12329: bool>; 12329: 12329: 12329: template 12329: using _ImplicitCtor = __enable_if_t< 12329: _TCC<_Cond>::template __is_implicitly_constructible<_Args...>(), 12329: bool>; 12329: 12329: 12329: template 12329: using _ExplicitCtor = __enable_if_t< 12329: _TCC<_Cond>::template __is_explicitly_constructible<_Args...>(), 12329: bool>; 12329: 12329: template 12329: static constexpr 12329: __enable_if_t 12329: __assignable() 12329: { return __and_...>::value; } 12329: 12329: 12329: template 12329: static constexpr bool __nothrow_assignable() 12329: { 12329: return 12329: __and_...>::value; 12329: } 12329: 12329: 12329: template 12329: static constexpr bool __nothrow_constructible() 12329: { 12329: return 12329: __and_...>::value; 12329: } 12329: 12329: 12329: template 12329: static constexpr bool __valid_args() 12329: { 12329: return sizeof...(_Elements) == 1 12329: && !is_same>::value; 12329: } 12329: 12329: 12329: template 12329: static constexpr bool __valid_args() 12329: { return (sizeof...(_Tail) + 2) == sizeof...(_Elements); } 12329: # 684 "/usr/include/c++/12/tuple" 3 12329: template> 12329: struct _UseOtherCtor 12329: : false_type 12329: { }; 12329: 12329: 12329: template 12329: struct _UseOtherCtor<_Tuple, tuple<_Tp>, tuple<_Up>> 12329: : __or_, is_constructible<_Tp, _Tuple>> 12329: { }; 12329: 12329: 12329: template 12329: struct _UseOtherCtor<_Tuple, tuple<_Tp>, tuple<_Tp>> 12329: : true_type 12329: { }; 12329: 12329: 12329: 12329: 12329: template 12329: static constexpr bool __use_other_ctor() 12329: { return _UseOtherCtor<_Tuple>::value; } 12329: 12329: public: 12329: template::value> = true> 12329: constexpr 12329: tuple() 12329: noexcept(__and_...>::value) 12329: : _Inherited() { } 12329: 12329: template::value> = false> 12329: explicit constexpr 12329: tuple() 12329: noexcept(__and_...>::value) 12329: : _Inherited() { } 12329: 12329: template= 1), 12329: _ImplicitCtor<_NotEmpty, const _Elements&...> = true> 12329: constexpr 12329: tuple(const _Elements&... __elements) 12329: noexcept(__nothrow_constructible()) 12329: : _Inherited(__elements...) { } 12329: 12329: template= 1), 12329: _ExplicitCtor<_NotEmpty, const _Elements&...> = false> 12329: explicit constexpr 12329: tuple(const _Elements&... __elements) 12329: noexcept(__nothrow_constructible()) 12329: : _Inherited(__elements...) { } 12329: 12329: template(), 12329: _ImplicitCtor<_Valid, _UElements...> = true> 12329: constexpr 12329: tuple(_UElements&&... __elements) 12329: noexcept(__nothrow_constructible<_UElements...>()) 12329: : _Inherited(std::forward<_UElements>(__elements)...) { } 12329: 12329: template(), 12329: _ExplicitCtor<_Valid, _UElements...> = false> 12329: explicit constexpr 12329: tuple(_UElements&&... __elements) 12329: noexcept(__nothrow_constructible<_UElements...>()) 12329: : _Inherited(std::forward<_UElements>(__elements)...) { } 12329: 12329: constexpr tuple(const tuple&) = default; 12329: 12329: constexpr tuple(tuple&&) = default; 12329: 12329: template&>(), 12329: _ImplicitCtor<_Valid, const _UElements&...> = true> 12329: constexpr 12329: tuple(const tuple<_UElements...>& __in) 12329: noexcept(__nothrow_constructible()) 12329: : _Inherited(static_cast&>(__in)) 12329: { } 12329: 12329: template&>(), 12329: _ExplicitCtor<_Valid, const _UElements&...> = false> 12329: explicit constexpr 12329: tuple(const tuple<_UElements...>& __in) 12329: noexcept(__nothrow_constructible()) 12329: : _Inherited(static_cast&>(__in)) 12329: { } 12329: 12329: template&&>(), 12329: _ImplicitCtor<_Valid, _UElements...> = true> 12329: constexpr 12329: tuple(tuple<_UElements...>&& __in) 12329: noexcept(__nothrow_constructible<_UElements...>()) 12329: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 12329: 12329: template&&>(), 12329: _ExplicitCtor<_Valid, _UElements...> = false> 12329: explicit constexpr 12329: tuple(tuple<_UElements...>&& __in) 12329: noexcept(__nothrow_constructible<_UElements...>()) 12329: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 12329: 12329: 12329: 12329: template::value> = true> 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a) 12329: : _Inherited(__tag, __a) { } 12329: 12329: template= 1), 12329: _ImplicitCtor<_NotEmpty, const _Elements&...> = true> 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: const _Elements&... __elements) 12329: : _Inherited(__tag, __a, __elements...) { } 12329: 12329: template= 1), 12329: _ExplicitCtor<_NotEmpty, const _Elements&...> = false> 12329: 12329: explicit 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: const _Elements&... __elements) 12329: : _Inherited(__tag, __a, __elements...) { } 12329: 12329: template(), 12329: _ImplicitCtor<_Valid, _UElements...> = true> 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: _UElements&&... __elements) 12329: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 12329: { } 12329: 12329: template(), 12329: _ExplicitCtor<_Valid, _UElements...> = false> 12329: 12329: explicit 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: _UElements&&... __elements) 12329: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 12329: { } 12329: 12329: template 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 12329: : _Inherited(__tag, __a, static_cast(__in)) { } 12329: 12329: template 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 12329: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 12329: 12329: template&>(), 12329: _ImplicitCtor<_Valid, const _UElements&...> = true> 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: const tuple<_UElements...>& __in) 12329: : _Inherited(__tag, __a, 12329: static_cast&>(__in)) 12329: { } 12329: 12329: template&>(), 12329: _ExplicitCtor<_Valid, const _UElements&...> = false> 12329: 12329: explicit 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: const tuple<_UElements...>& __in) 12329: : _Inherited(__tag, __a, 12329: static_cast&>(__in)) 12329: { } 12329: 12329: template&&>(), 12329: _ImplicitCtor<_Valid, _UElements...> = true> 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: tuple<_UElements...>&& __in) 12329: : _Inherited(__tag, __a, 12329: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 12329: { } 12329: 12329: template&&>(), 12329: _ExplicitCtor<_Valid, _UElements...> = false> 12329: 12329: explicit 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: tuple<_UElements...>&& __in) 12329: : _Inherited(__tag, __a, 12329: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 12329: { } 12329: 12329: 12329: 12329: 12329: tuple& 12329: operator=(__conditional_t<__assignable(), 12329: const tuple&, 12329: const __nonesuch&> __in) 12329: noexcept(__nothrow_assignable()) 12329: { 12329: this->_M_assign(__in); 12329: return *this; 12329: } 12329: 12329: 12329: tuple& 12329: operator=(__conditional_t<__assignable<_Elements...>(), 12329: tuple&&, 12329: __nonesuch&&> __in) 12329: noexcept(__nothrow_assignable<_Elements...>()) 12329: { 12329: this->_M_assign(std::move(__in)); 12329: return *this; 12329: } 12329: 12329: template 12329: 12329: __enable_if_t<__assignable(), tuple&> 12329: operator=(const tuple<_UElements...>& __in) 12329: noexcept(__nothrow_assignable()) 12329: { 12329: this->_M_assign(__in); 12329: return *this; 12329: } 12329: 12329: template 12329: 12329: __enable_if_t<__assignable<_UElements...>(), tuple&> 12329: operator=(tuple<_UElements...>&& __in) 12329: noexcept(__nothrow_assignable<_UElements...>()) 12329: { 12329: this->_M_assign(std::move(__in)); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: void 12329: swap(tuple& __in) 12329: noexcept(__and_<__is_nothrow_swappable<_Elements>...>::value) 12329: { _Inherited::_M_swap(__in); } 12329: }; 12329: # 960 "/usr/include/c++/12/tuple" 3 12329: template<> 12329: class tuple<> 12329: { 12329: public: 12329: 12329: void swap(tuple&) noexcept { } 12329: 12329: 12329: tuple() = default; 12329: 12329: template 12329: 12329: tuple(allocator_arg_t, const _Alloc&) noexcept { } 12329: template 12329: 12329: tuple(allocator_arg_t, const _Alloc&, const tuple&) noexcept { } 12329: }; 12329: 12329: 12329: 12329: template 12329: class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> 12329: { 12329: typedef _Tuple_impl<0, _T1, _T2> _Inherited; 12329: 12329: 12329: template 12329: using _ImplicitDefaultCtor = __enable_if_t< 12329: _TupleConstraints<_Dummy, _U1, _U2>:: 12329: __is_implicitly_default_constructible(), 12329: bool>; 12329: 12329: 12329: template 12329: using _ExplicitDefaultCtor = __enable_if_t< 12329: _TupleConstraints<_Dummy, _U1, _U2>:: 12329: __is_explicitly_default_constructible(), 12329: bool>; 12329: 12329: template 12329: using _TCC = _TupleConstraints<_Dummy, _T1, _T2>; 12329: 12329: 12329: template 12329: using _ImplicitCtor = __enable_if_t< 12329: _TCC<_Cond>::template __is_implicitly_constructible<_U1, _U2>(), 12329: bool>; 12329: 12329: 12329: template 12329: using _ExplicitCtor = __enable_if_t< 12329: _TCC<_Cond>::template __is_explicitly_constructible<_U1, _U2>(), 12329: bool>; 12329: 12329: template 12329: static constexpr bool __assignable() 12329: { 12329: return __and_, 12329: is_assignable<_T2&, _U2>>::value; 12329: } 12329: 12329: template 12329: static constexpr bool __nothrow_assignable() 12329: { 12329: return __and_, 12329: is_nothrow_assignable<_T2&, _U2>>::value; 12329: } 12329: 12329: template 12329: static constexpr bool __nothrow_constructible() 12329: { 12329: return __and_, 12329: is_nothrow_constructible<_T2, _U2>>::value; 12329: } 12329: 12329: static constexpr bool __nothrow_default_constructible() 12329: { 12329: return __and_, 12329: is_nothrow_default_constructible<_T2>>::value; 12329: } 12329: 12329: template 12329: static constexpr bool __is_alloc_arg() 12329: { return is_same<__remove_cvref_t<_U1>, allocator_arg_t>::value; } 12329: 12329: public: 12329: template = true> 12329: constexpr 12329: tuple() 12329: noexcept(__nothrow_default_constructible()) 12329: : _Inherited() { } 12329: 12329: template = false> 12329: explicit constexpr 12329: tuple() 12329: noexcept(__nothrow_default_constructible()) 12329: : _Inherited() { } 12329: 12329: template = true> 12329: constexpr 12329: tuple(const _T1& __a1, const _T2& __a2) 12329: noexcept(__nothrow_constructible()) 12329: : _Inherited(__a1, __a2) { } 12329: 12329: template = false> 12329: explicit constexpr 12329: tuple(const _T1& __a1, const _T2& __a2) 12329: noexcept(__nothrow_constructible()) 12329: : _Inherited(__a1, __a2) { } 12329: 12329: template(), _U1, _U2> = true> 12329: constexpr 12329: tuple(_U1&& __a1, _U2&& __a2) 12329: noexcept(__nothrow_constructible<_U1, _U2>()) 12329: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 12329: 12329: template(), _U1, _U2> = false> 12329: explicit constexpr 12329: tuple(_U1&& __a1, _U2&& __a2) 12329: noexcept(__nothrow_constructible<_U1, _U2>()) 12329: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 12329: 12329: constexpr tuple(const tuple&) = default; 12329: 12329: constexpr tuple(tuple&&) = default; 12329: 12329: template = true> 12329: constexpr 12329: tuple(const tuple<_U1, _U2>& __in) 12329: noexcept(__nothrow_constructible()) 12329: : _Inherited(static_cast&>(__in)) { } 12329: 12329: template = false> 12329: explicit constexpr 12329: tuple(const tuple<_U1, _U2>& __in) 12329: noexcept(__nothrow_constructible()) 12329: : _Inherited(static_cast&>(__in)) { } 12329: 12329: template = true> 12329: constexpr 12329: tuple(tuple<_U1, _U2>&& __in) 12329: noexcept(__nothrow_constructible<_U1, _U2>()) 12329: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 12329: 12329: template = false> 12329: explicit constexpr 12329: tuple(tuple<_U1, _U2>&& __in) 12329: noexcept(__nothrow_constructible<_U1, _U2>()) 12329: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 12329: 12329: template = true> 12329: constexpr 12329: tuple(const pair<_U1, _U2>& __in) 12329: noexcept(__nothrow_constructible()) 12329: : _Inherited(__in.first, __in.second) { } 12329: 12329: template = false> 12329: explicit constexpr 12329: tuple(const pair<_U1, _U2>& __in) 12329: noexcept(__nothrow_constructible()) 12329: : _Inherited(__in.first, __in.second) { } 12329: 12329: template = true> 12329: constexpr 12329: tuple(pair<_U1, _U2>&& __in) 12329: noexcept(__nothrow_constructible<_U1, _U2>()) 12329: : _Inherited(std::forward<_U1>(__in.first), 12329: std::forward<_U2>(__in.second)) { } 12329: 12329: template = false> 12329: explicit constexpr 12329: tuple(pair<_U1, _U2>&& __in) 12329: noexcept(__nothrow_constructible<_U1, _U2>()) 12329: : _Inherited(std::forward<_U1>(__in.first), 12329: std::forward<_U2>(__in.second)) { } 12329: 12329: 12329: 12329: template::value, _T1, _T2> = true> 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a) 12329: : _Inherited(__tag, __a) { } 12329: 12329: template = true> 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: const _T1& __a1, const _T2& __a2) 12329: : _Inherited(__tag, __a, __a1, __a2) { } 12329: 12329: template = false> 12329: explicit 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: const _T1& __a1, const _T2& __a2) 12329: : _Inherited(__tag, __a, __a1, __a2) { } 12329: 12329: template = true> 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2) 12329: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 12329: std::forward<_U2>(__a2)) { } 12329: 12329: template = false> 12329: explicit 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: _U1&& __a1, _U2&& __a2) 12329: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 12329: std::forward<_U2>(__a2)) { } 12329: 12329: template 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 12329: : _Inherited(__tag, __a, static_cast(__in)) { } 12329: 12329: template 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 12329: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 12329: 12329: template = true> 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: const tuple<_U1, _U2>& __in) 12329: : _Inherited(__tag, __a, 12329: static_cast&>(__in)) 12329: { } 12329: 12329: template = false> 12329: explicit 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: const tuple<_U1, _U2>& __in) 12329: : _Inherited(__tag, __a, 12329: static_cast&>(__in)) 12329: { } 12329: 12329: template = true> 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 12329: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 12329: { } 12329: 12329: template = false> 12329: explicit 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 12329: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 12329: { } 12329: 12329: template = true> 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: const pair<_U1, _U2>& __in) 12329: : _Inherited(__tag, __a, __in.first, __in.second) { } 12329: 12329: template = false> 12329: explicit 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, 12329: const pair<_U1, _U2>& __in) 12329: : _Inherited(__tag, __a, __in.first, __in.second) { } 12329: 12329: template = true> 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 12329: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 12329: std::forward<_U2>(__in.second)) { } 12329: 12329: template = false> 12329: explicit 12329: 12329: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 12329: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 12329: std::forward<_U2>(__in.second)) { } 12329: 12329: 12329: 12329: 12329: tuple& 12329: operator=(__conditional_t<__assignable(), 12329: const tuple&, 12329: const __nonesuch&> __in) 12329: noexcept(__nothrow_assignable()) 12329: { 12329: this->_M_assign(__in); 12329: return *this; 12329: } 12329: 12329: 12329: tuple& 12329: operator=(__conditional_t<__assignable<_T1, _T2>(), 12329: tuple&&, 12329: __nonesuch&&> __in) 12329: noexcept(__nothrow_assignable<_T1, _T2>()) 12329: { 12329: this->_M_assign(std::move(__in)); 12329: return *this; 12329: } 12329: 12329: template 12329: 12329: __enable_if_t<__assignable(), tuple&> 12329: operator=(const tuple<_U1, _U2>& __in) 12329: noexcept(__nothrow_assignable()) 12329: { 12329: this->_M_assign(__in); 12329: return *this; 12329: } 12329: 12329: template 12329: 12329: __enable_if_t<__assignable<_U1, _U2>(), tuple&> 12329: operator=(tuple<_U1, _U2>&& __in) 12329: noexcept(__nothrow_assignable<_U1, _U2>()) 12329: { 12329: this->_M_assign(std::move(__in)); 12329: return *this; 12329: } 12329: 12329: template 12329: 12329: __enable_if_t<__assignable(), tuple&> 12329: operator=(const pair<_U1, _U2>& __in) 12329: noexcept(__nothrow_assignable()) 12329: { 12329: this->_M_head(*this) = __in.first; 12329: this->_M_tail(*this)._M_head(*this) = __in.second; 12329: return *this; 12329: } 12329: 12329: template 12329: 12329: __enable_if_t<__assignable<_U1, _U2>(), tuple&> 12329: operator=(pair<_U1, _U2>&& __in) 12329: noexcept(__nothrow_assignable<_U1, _U2>()) 12329: { 12329: this->_M_head(*this) = std::forward<_U1>(__in.first); 12329: this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second); 12329: return *this; 12329: } 12329: 12329: 12329: void 12329: swap(tuple& __in) 12329: noexcept(__and_<__is_nothrow_swappable<_T1>, 12329: __is_nothrow_swappable<_T2>>::value) 12329: { _Inherited::_M_swap(__in); } 12329: }; 12329: 12329: 12329: 12329: template 12329: struct tuple_size> 12329: : public integral_constant { }; 12329: # 1354 "/usr/include/c++/12/tuple" 3 12329: template 12329: struct tuple_element<__i, tuple<_Types...>> 12329: { 12329: static_assert(__i < sizeof...(_Types), "tuple index must be in range"); 12329: 12329: using type = typename _Nth_type<__i, _Types...>::type; 12329: }; 12329: 12329: template 12329: constexpr _Head& 12329: __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 12329: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 12329: 12329: template 12329: constexpr const _Head& 12329: __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 12329: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 12329: 12329: 12329: template 12329: __enable_if_t<(__i >= sizeof...(_Types))> 12329: __get_helper(const tuple<_Types...>&) = delete; 12329: 12329: 12329: template 12329: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 12329: get(tuple<_Elements...>& __t) noexcept 12329: { return std::__get_helper<__i>(__t); } 12329: 12329: 12329: template 12329: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 12329: get(const tuple<_Elements...>& __t) noexcept 12329: { return std::__get_helper<__i>(__t); } 12329: 12329: 12329: template 12329: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 12329: get(tuple<_Elements...>&& __t) noexcept 12329: { 12329: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 12329: return std::forward<__element_type>(std::__get_helper<__i>(__t)); 12329: } 12329: 12329: 12329: template 12329: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 12329: get(const tuple<_Elements...>&& __t) noexcept 12329: { 12329: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 12329: return std::forward(std::__get_helper<__i>(__t)); 12329: } 12329: 12329: 12329: 12329: template 12329: constexpr __enable_if_t<(__i >= sizeof...(_Elements))> 12329: get(const tuple<_Elements...>&) = delete; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: constexpr _Tp& 12329: get(tuple<_Types...>& __t) noexcept 12329: { 12329: constexpr size_t __idx = __find_uniq_type_in_pack<_Tp, _Types...>(); 12329: static_assert(__idx < sizeof...(_Types), 12329: "the type T in std::get must occur exactly once in the tuple"); 12329: return std::__get_helper<__idx>(__t); 12329: } 12329: 12329: 12329: template 12329: constexpr _Tp&& 12329: get(tuple<_Types...>&& __t) noexcept 12329: { 12329: constexpr size_t __idx = __find_uniq_type_in_pack<_Tp, _Types...>(); 12329: static_assert(__idx < sizeof...(_Types), 12329: "the type T in std::get must occur exactly once in the tuple"); 12329: return std::forward<_Tp>(std::__get_helper<__idx>(__t)); 12329: } 12329: 12329: 12329: template 12329: constexpr const _Tp& 12329: get(const tuple<_Types...>& __t) noexcept 12329: { 12329: constexpr size_t __idx = __find_uniq_type_in_pack<_Tp, _Types...>(); 12329: static_assert(__idx < sizeof...(_Types), 12329: "the type T in std::get must occur exactly once in the tuple"); 12329: return std::__get_helper<__idx>(__t); 12329: } 12329: 12329: 12329: 12329: template 12329: constexpr const _Tp&& 12329: get(const tuple<_Types...>&& __t) noexcept 12329: { 12329: constexpr size_t __idx = __find_uniq_type_in_pack<_Tp, _Types...>(); 12329: static_assert(__idx < sizeof...(_Types), 12329: "the type T in std::get must occur exactly once in the tuple"); 12329: return std::forward(std::__get_helper<__idx>(__t)); 12329: } 12329: 12329: 12329: 12329: template 12329: struct __tuple_compare 12329: { 12329: static constexpr bool 12329: __eq(const _Tp& __t, const _Up& __u) 12329: { 12329: return bool(std::get<__i>(__t) == std::get<__i>(__u)) 12329: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u); 12329: } 12329: 12329: static constexpr bool 12329: __less(const _Tp& __t, const _Up& __u) 12329: { 12329: return bool(std::get<__i>(__t) < std::get<__i>(__u)) 12329: || (!bool(std::get<__i>(__u) < std::get<__i>(__t)) 12329: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u)); 12329: } 12329: }; 12329: 12329: template 12329: struct __tuple_compare<_Tp, _Up, __size, __size> 12329: { 12329: static constexpr bool 12329: __eq(const _Tp&, const _Up&) { return true; } 12329: 12329: static constexpr bool 12329: __less(const _Tp&, const _Up&) { return false; } 12329: }; 12329: 12329: template 12329: constexpr bool 12329: operator==(const tuple<_TElements...>& __t, 12329: const tuple<_UElements...>& __u) 12329: { 12329: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 12329: "tuple objects can only be compared if they have equal sizes."); 12329: using __compare = __tuple_compare, 12329: tuple<_UElements...>, 12329: 0, sizeof...(_TElements)>; 12329: return __compare::__eq(__t, __u); 12329: } 12329: # 1536 "/usr/include/c++/12/tuple" 3 12329: template 12329: constexpr bool 12329: operator<(const tuple<_TElements...>& __t, 12329: const tuple<_UElements...>& __u) 12329: { 12329: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 12329: "tuple objects can only be compared if they have equal sizes."); 12329: using __compare = __tuple_compare, 12329: tuple<_UElements...>, 12329: 0, sizeof...(_TElements)>; 12329: return __compare::__less(__t, __u); 12329: } 12329: 12329: template 12329: constexpr bool 12329: operator!=(const tuple<_TElements...>& __t, 12329: const tuple<_UElements...>& __u) 12329: { return !(__t == __u); } 12329: 12329: template 12329: constexpr bool 12329: operator>(const tuple<_TElements...>& __t, 12329: const tuple<_UElements...>& __u) 12329: { return __u < __t; } 12329: 12329: template 12329: constexpr bool 12329: operator<=(const tuple<_TElements...>& __t, 12329: const tuple<_UElements...>& __u) 12329: { return !(__u < __t); } 12329: 12329: template 12329: constexpr bool 12329: operator>=(const tuple<_TElements...>& __t, 12329: const tuple<_UElements...>& __u) 12329: { return !(__t < __u); } 12329: 12329: 12329: 12329: template 12329: constexpr tuple::__type...> 12329: make_tuple(_Elements&&... __args) 12329: { 12329: typedef tuple::__type...> 12329: __result_type; 12329: return __result_type(std::forward<_Elements>(__args)...); 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: constexpr tuple<_Elements&&...> 12329: forward_as_tuple(_Elements&&... __args) noexcept 12329: { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } 12329: 12329: 12329: 12329: 12329: template struct array; 12329: 12329: template 12329: constexpr _Tp& 12329: get(array<_Tp, _Nm>&) noexcept; 12329: 12329: template 12329: constexpr _Tp&& 12329: get(array<_Tp, _Nm>&&) noexcept; 12329: 12329: template 12329: constexpr const _Tp& 12329: get(const array<_Tp, _Nm>&) noexcept; 12329: 12329: template 12329: constexpr const _Tp&& 12329: get(const array<_Tp, _Nm>&&) noexcept; 12329: 12329: 12329: template 12329: struct __make_tuple_impl; 12329: 12329: template 12329: struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm> 12329: : __make_tuple_impl<_Idx + 1, 12329: tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>, 12329: _Tuple, _Nm> 12329: { }; 12329: 12329: template 12329: struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm> 12329: { 12329: typedef tuple<_Tp...> __type; 12329: }; 12329: 12329: template 12329: struct __do_make_tuple 12329: : __make_tuple_impl<0, tuple<>, _Tuple, tuple_size<_Tuple>::value> 12329: { }; 12329: 12329: 12329: template 12329: struct __make_tuple 12329: : public __do_make_tuple<__remove_cvref_t<_Tuple>> 12329: { }; 12329: 12329: 12329: template 12329: struct __combine_tuples; 12329: 12329: template<> 12329: struct __combine_tuples<> 12329: { 12329: typedef tuple<> __type; 12329: }; 12329: 12329: template 12329: struct __combine_tuples> 12329: { 12329: typedef tuple<_Ts...> __type; 12329: }; 12329: 12329: template 12329: struct __combine_tuples, tuple<_T2s...>, _Rem...> 12329: { 12329: typedef typename __combine_tuples, 12329: _Rem...>::__type __type; 12329: }; 12329: 12329: 12329: template 12329: struct __tuple_cat_result 12329: { 12329: typedef typename __combine_tuples 12329: ::__type...>::__type __type; 12329: }; 12329: 12329: 12329: 12329: template 12329: struct __make_1st_indices; 12329: 12329: template<> 12329: struct __make_1st_indices<> 12329: { 12329: typedef _Index_tuple<> __type; 12329: }; 12329: 12329: template 12329: struct __make_1st_indices<_Tp, _Tpls...> 12329: { 12329: typedef typename _Build_index_tuple::type>::value>::__type __type; 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: struct __tuple_concater; 12329: 12329: template 12329: struct __tuple_concater<_Ret, _Index_tuple<_Is...>, _Tp, _Tpls...> 12329: { 12329: template 12329: static constexpr _Ret 12329: _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) 12329: { 12329: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 12329: typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; 12329: return __next::_S_do(std::forward<_Tpls>(__tps)..., 12329: std::forward<_Us>(__us)..., 12329: std::get<_Is>(std::forward<_Tp>(__tp))...); 12329: } 12329: }; 12329: 12329: template 12329: struct __tuple_concater<_Ret, _Index_tuple<>> 12329: { 12329: template 12329: static constexpr _Ret 12329: _S_do(_Us&&... __us) 12329: { 12329: return _Ret(std::forward<_Us>(__us)...); 12329: } 12329: }; 12329: 12329: template 12329: struct __is_tuple_like_impl> : true_type 12329: { }; 12329: 12329: 12329: template...>::value>::type> 12329: constexpr auto 12329: tuple_cat(_Tpls&&... __tpls) 12329: -> typename __tuple_cat_result<_Tpls...>::__type 12329: { 12329: typedef typename __tuple_cat_result<_Tpls...>::__type __ret; 12329: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 12329: typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; 12329: return __concater::_S_do(std::forward<_Tpls>(__tpls)...); 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: constexpr tuple<_Elements&...> 12329: tie(_Elements&... __args) noexcept 12329: { return tuple<_Elements&...>(__args...); } 12329: 12329: 12329: template 12329: 12329: inline 12329: 12329: 12329: 12329: 12329: 12329: void 12329: 12329: swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) 12329: noexcept(noexcept(__x.swap(__y))) 12329: { __x.swap(__y); } 12329: # 1773 "/usr/include/c++/12/tuple" 3 12329: struct _Swallow_assign 12329: { 12329: template 12329: constexpr const _Swallow_assign& 12329: operator=(const _Tp&) const 12329: { return *this; } 12329: }; 12329: 12329: 12329: 12329: constexpr _Swallow_assign ignore{}; 12329: 12329: 12329: template 12329: struct uses_allocator, _Alloc> : true_type { }; 12329: # 1798 "/usr/include/c++/12/tuple" 3 12329: template 12329: template 12329: 12329: inline 12329: pair<_T1, _T2>:: 12329: pair(piecewise_construct_t, 12329: tuple<_Args1...> __first, tuple<_Args2...> __second) 12329: : pair(__first, __second, 12329: typename _Build_index_tuple::__type(), 12329: typename _Build_index_tuple::__type()) 12329: { } 12329: 12329: template 12329: template 12329: inline 12329: pair<_T1, _T2>:: 12329: pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, 12329: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) 12329: : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), 12329: second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) 12329: { } 12329: # 1888 "/usr/include/c++/12/tuple" 3 12329: 12329: } 12329: # 64 "/usr/include/c++/12/bits/stl_map.h" 2 3 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: template 12329: class multimap; 12329: # 98 "/usr/include/c++/12/bits/stl_map.h" 3 12329: template , 12329: typename _Alloc = std::allocator > > 12329: class map 12329: { 12329: public: 12329: typedef _Key key_type; 12329: typedef _Tp mapped_type; 12329: typedef std::pair value_type; 12329: typedef _Compare key_compare; 12329: typedef _Alloc allocator_type; 12329: 12329: private: 12329: # 123 "/usr/include/c++/12/bits/stl_map.h" 3 12329: static_assert(is_same::value, 12329: "std::map must have the same value_type as its allocator"); 12329: 12329: 12329: 12329: public: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: class value_compare 12329: : public std::binary_function 12329: { 12329: friend class map<_Key, _Tp, _Compare, _Alloc>; 12329: protected: 12329: _Compare comp; 12329: 12329: value_compare(_Compare __c) 12329: : comp(__c) { } 12329: 12329: public: 12329: bool operator()(const value_type& __x, const value_type& __y) const 12329: { return comp(__x.first, __y.first); } 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: private: 12329: 12329: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 12329: rebind::other _Pair_alloc_type; 12329: 12329: typedef _Rb_tree, 12329: key_compare, _Pair_alloc_type> _Rep_type; 12329: 12329: 12329: _Rep_type _M_t; 12329: 12329: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 12329: # 167 "/usr/include/c++/12/bits/stl_map.h" 3 12329: public: 12329: 12329: 12329: typedef typename _Alloc_traits::pointer pointer; 12329: typedef typename _Alloc_traits::const_pointer const_pointer; 12329: typedef typename _Alloc_traits::reference reference; 12329: typedef typename _Alloc_traits::const_reference const_reference; 12329: typedef typename _Rep_type::iterator iterator; 12329: typedef typename _Rep_type::const_iterator const_iterator; 12329: typedef typename _Rep_type::size_type size_type; 12329: typedef typename _Rep_type::difference_type difference_type; 12329: typedef typename _Rep_type::reverse_iterator reverse_iterator; 12329: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 12329: # 195 "/usr/include/c++/12/bits/stl_map.h" 3 12329: map() = default; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: map(const _Compare& __comp, 12329: const allocator_type& __a = allocator_type()) 12329: : _M_t(__comp, _Pair_alloc_type(__a)) { } 12329: # 217 "/usr/include/c++/12/bits/stl_map.h" 3 12329: map(const map&) = default; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: map(map&&) = default; 12329: # 238 "/usr/include/c++/12/bits/stl_map.h" 3 12329: map(initializer_list __l, 12329: const _Compare& __comp = _Compare(), 12329: const allocator_type& __a = allocator_type()) 12329: : _M_t(__comp, _Pair_alloc_type(__a)) 12329: { _M_t._M_insert_range_unique(__l.begin(), __l.end()); } 12329: 12329: 12329: explicit 12329: map(const allocator_type& __a) 12329: : _M_t(_Pair_alloc_type(__a)) { } 12329: 12329: 12329: map(const map& __m, const __type_identity_t& __a) 12329: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 12329: 12329: 12329: map(map&& __m, const __type_identity_t& __a) 12329: noexcept(is_nothrow_copy_constructible<_Compare>::value 12329: && _Alloc_traits::_S_always_equal()) 12329: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 12329: 12329: 12329: map(initializer_list __l, const allocator_type& __a) 12329: : _M_t(_Pair_alloc_type(__a)) 12329: { _M_t._M_insert_range_unique(__l.begin(), __l.end()); } 12329: 12329: 12329: template 12329: map(_InputIterator __first, _InputIterator __last, 12329: const allocator_type& __a) 12329: : _M_t(_Pair_alloc_type(__a)) 12329: { _M_t._M_insert_range_unique(__first, __last); } 12329: # 282 "/usr/include/c++/12/bits/stl_map.h" 3 12329: template 12329: map(_InputIterator __first, _InputIterator __last) 12329: : _M_t() 12329: { _M_t._M_insert_range_unique(__first, __last); } 12329: # 299 "/usr/include/c++/12/bits/stl_map.h" 3 12329: template 12329: map(_InputIterator __first, _InputIterator __last, 12329: const _Compare& __comp, 12329: const allocator_type& __a = allocator_type()) 12329: : _M_t(__comp, _Pair_alloc_type(__a)) 12329: { _M_t._M_insert_range_unique(__first, __last); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ~map() = default; 12329: # 328 "/usr/include/c++/12/bits/stl_map.h" 3 12329: map& 12329: operator=(const map&) = default; 12329: 12329: 12329: map& 12329: operator=(map&&) = default; 12329: # 346 "/usr/include/c++/12/bits/stl_map.h" 3 12329: map& 12329: operator=(initializer_list __l) 12329: { 12329: _M_t._M_assign_unique(__l.begin(), __l.end()); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: allocator_type 12329: get_allocator() const noexcept 12329: { return allocator_type(_M_t.get_allocator()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: begin() noexcept 12329: { return _M_t.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: begin() const noexcept 12329: { return _M_t.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: end() noexcept 12329: { return _M_t.end(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: end() const noexcept 12329: { return _M_t.end(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: rbegin() noexcept 12329: { return _M_t.rbegin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: rbegin() const noexcept 12329: { return _M_t.rbegin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: rend() noexcept 12329: { return _M_t.rend(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: rend() const noexcept 12329: { return _M_t.rend(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: cbegin() const noexcept 12329: { return _M_t.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: cend() const noexcept 12329: { return _M_t.end(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: crbegin() const noexcept 12329: { return _M_t.rbegin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: crend() const noexcept 12329: { return _M_t.rend(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: bool 12329: empty() const noexcept 12329: { return _M_t.empty(); } 12329: 12329: 12329: size_type 12329: size() const noexcept 12329: { return _M_t.size(); } 12329: 12329: 12329: size_type 12329: max_size() const noexcept 12329: { return _M_t.max_size(); } 12329: # 501 "/usr/include/c++/12/bits/stl_map.h" 3 12329: mapped_type& 12329: operator[](const key_type& __k) 12329: { 12329: 12329: 12329: 12329: iterator __i = lower_bound(__k); 12329: 12329: if (__i == end() || key_comp()(__k, (*__i).first)) 12329: 12329: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 12329: std::tuple(__k), 12329: std::tuple<>()); 12329: 12329: 12329: 12329: return (*__i).second; 12329: } 12329: 12329: 12329: mapped_type& 12329: operator[](key_type&& __k) 12329: { 12329: 12329: 12329: 12329: iterator __i = lower_bound(__k); 12329: 12329: if (__i == end() || key_comp()(__k, (*__i).first)) 12329: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 12329: std::forward_as_tuple(std::move(__k)), 12329: std::tuple<>()); 12329: return (*__i).second; 12329: } 12329: # 546 "/usr/include/c++/12/bits/stl_map.h" 3 12329: mapped_type& 12329: at(const key_type& __k) 12329: { 12329: iterator __i = lower_bound(__k); 12329: if (__i == end() || key_comp()(__k, (*__i).first)) 12329: __throw_out_of_range(("map::at")); 12329: return (*__i).second; 12329: } 12329: 12329: const mapped_type& 12329: at(const key_type& __k) const 12329: { 12329: const_iterator __i = lower_bound(__k); 12329: if (__i == end() || key_comp()(__k, (*__i).first)) 12329: __throw_out_of_range(("map::at")); 12329: return (*__i).second; 12329: } 12329: # 584 "/usr/include/c++/12/bits/stl_map.h" 3 12329: template 12329: std::pair 12329: emplace(_Args&&... __args) 12329: { 12329: # 606 "/usr/include/c++/12/bits/stl_map.h" 3 12329: return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); 12329: } 12329: # 634 "/usr/include/c++/12/bits/stl_map.h" 3 12329: template 12329: iterator 12329: emplace_hint(const_iterator __pos, _Args&&... __args) 12329: { 12329: return _M_t._M_emplace_hint_unique(__pos, 12329: std::forward<_Args>(__args)...); 12329: } 12329: # 832 "/usr/include/c++/12/bits/stl_map.h" 3 12329: std::pair 12329: insert(const value_type& __x) 12329: { return _M_t._M_insert_unique(__x); } 12329: 12329: 12329: 12329: 12329: std::pair 12329: insert(value_type&& __x) 12329: { return _M_t._M_insert_unique(std::move(__x)); } 12329: 12329: template 12329: __enable_if_t::value, 12329: pair> 12329: insert(_Pair&& __x) 12329: { 12329: # 864 "/usr/include/c++/12/bits/stl_map.h" 3 12329: return _M_t._M_emplace_unique(std::forward<_Pair>(__x)); 12329: } 12329: # 877 "/usr/include/c++/12/bits/stl_map.h" 3 12329: void 12329: insert(std::initializer_list __list) 12329: { insert(__list.begin(), __list.end()); } 12329: # 906 "/usr/include/c++/12/bits/stl_map.h" 3 12329: iterator 12329: 12329: insert(const_iterator __position, const value_type& __x) 12329: 12329: 12329: 12329: { return _M_t._M_insert_unique_(__position, __x); } 12329: 12329: 12329: 12329: 12329: iterator 12329: insert(const_iterator __position, value_type&& __x) 12329: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 12329: 12329: template 12329: __enable_if_t::value, iterator> 12329: insert(const_iterator __position, _Pair&& __x) 12329: { 12329: return _M_t._M_emplace_hint_unique(__position, 12329: std::forward<_Pair>(__x)); 12329: } 12329: # 939 "/usr/include/c++/12/bits/stl_map.h" 3 12329: template 12329: void 12329: insert(_InputIterator __first, _InputIterator __last) 12329: { _M_t._M_insert_range_unique(__first, __last); } 12329: # 1078 "/usr/include/c++/12/bits/stl_map.h" 3 12329: iterator 12329: erase(const_iterator __position) 12329: { return _M_t.erase(__position); } 12329: 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: iterator 12329: erase(iterator __position) 12329: { return _M_t.erase(__position); } 12329: # 1115 "/usr/include/c++/12/bits/stl_map.h" 3 12329: size_type 12329: erase(const key_type& __x) 12329: { return _M_t.erase(__x); } 12329: # 1135 "/usr/include/c++/12/bits/stl_map.h" 3 12329: iterator 12329: erase(const_iterator __first, const_iterator __last) 12329: { return _M_t.erase(__first, __last); } 12329: # 1169 "/usr/include/c++/12/bits/stl_map.h" 3 12329: void 12329: swap(map& __x) 12329: noexcept(__is_nothrow_swappable<_Compare>::value) 12329: { _M_t.swap(__x._M_t); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: clear() noexcept 12329: { _M_t.clear(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: key_compare 12329: key_comp() const 12329: { return _M_t.key_comp(); } 12329: 12329: 12329: 12329: 12329: 12329: value_compare 12329: value_comp() const 12329: { return value_compare(_M_t.key_comp()); } 12329: # 1216 "/usr/include/c++/12/bits/stl_map.h" 3 12329: iterator 12329: find(const key_type& __x) 12329: { return _M_t.find(__x); } 12329: 12329: 12329: template 12329: auto 12329: find(const _Kt& __x) -> decltype(_M_t._M_find_tr(__x)) 12329: { return _M_t._M_find_tr(__x); } 12329: # 1241 "/usr/include/c++/12/bits/stl_map.h" 3 12329: const_iterator 12329: find(const key_type& __x) const 12329: { return _M_t.find(__x); } 12329: 12329: 12329: template 12329: auto 12329: find(const _Kt& __x) const -> decltype(_M_t._M_find_tr(__x)) 12329: { return _M_t._M_find_tr(__x); } 12329: # 1262 "/usr/include/c++/12/bits/stl_map.h" 3 12329: size_type 12329: count(const key_type& __x) const 12329: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 12329: 12329: 12329: template 12329: auto 12329: count(const _Kt& __x) const -> decltype(_M_t._M_count_tr(__x)) 12329: { return _M_t._M_count_tr(__x); } 12329: # 1305 "/usr/include/c++/12/bits/stl_map.h" 3 12329: iterator 12329: lower_bound(const key_type& __x) 12329: { return _M_t.lower_bound(__x); } 12329: 12329: 12329: template 12329: auto 12329: lower_bound(const _Kt& __x) 12329: -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) 12329: { return iterator(_M_t._M_lower_bound_tr(__x)); } 12329: # 1330 "/usr/include/c++/12/bits/stl_map.h" 3 12329: const_iterator 12329: lower_bound(const key_type& __x) const 12329: { return _M_t.lower_bound(__x); } 12329: 12329: 12329: template 12329: auto 12329: lower_bound(const _Kt& __x) const 12329: -> decltype(const_iterator(_M_t._M_lower_bound_tr(__x))) 12329: { return const_iterator(_M_t._M_lower_bound_tr(__x)); } 12329: # 1350 "/usr/include/c++/12/bits/stl_map.h" 3 12329: iterator 12329: upper_bound(const key_type& __x) 12329: { return _M_t.upper_bound(__x); } 12329: 12329: 12329: template 12329: auto 12329: upper_bound(const _Kt& __x) 12329: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 12329: { return iterator(_M_t._M_upper_bound_tr(__x)); } 12329: # 1370 "/usr/include/c++/12/bits/stl_map.h" 3 12329: const_iterator 12329: upper_bound(const key_type& __x) const 12329: { return _M_t.upper_bound(__x); } 12329: 12329: 12329: template 12329: auto 12329: upper_bound(const _Kt& __x) const 12329: -> decltype(const_iterator(_M_t._M_upper_bound_tr(__x))) 12329: { return const_iterator(_M_t._M_upper_bound_tr(__x)); } 12329: # 1399 "/usr/include/c++/12/bits/stl_map.h" 3 12329: std::pair 12329: equal_range(const key_type& __x) 12329: { return _M_t.equal_range(__x); } 12329: 12329: 12329: template 12329: auto 12329: equal_range(const _Kt& __x) 12329: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 12329: { return pair(_M_t._M_equal_range_tr(__x)); } 12329: # 1428 "/usr/include/c++/12/bits/stl_map.h" 3 12329: std::pair 12329: equal_range(const key_type& __x) const 12329: { return _M_t.equal_range(__x); } 12329: 12329: 12329: template 12329: auto 12329: equal_range(const _Kt& __x) const 12329: -> decltype(pair( 12329: _M_t._M_equal_range_tr(__x))) 12329: { 12329: return pair( 12329: _M_t._M_equal_range_tr(__x)); 12329: } 12329: 12329: 12329: 12329: template 12329: friend bool 12329: operator==(const map<_K1, _T1, _C1, _A1>&, 12329: const map<_K1, _T1, _C1, _A1>&); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: friend bool 12329: operator<(const map<_K1, _T1, _C1, _A1>&, 12329: const map<_K1, _T1, _C1, _A1>&); 12329: 12329: }; 12329: # 1509 "/usr/include/c++/12/bits/stl_map.h" 3 12329: template 12329: inline bool 12329: operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, 12329: const map<_Key, _Tp, _Compare, _Alloc>& __y) 12329: { return __x._M_t == __y._M_t; } 12329: # 1547 "/usr/include/c++/12/bits/stl_map.h" 3 12329: template 12329: inline bool 12329: operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, 12329: const map<_Key, _Tp, _Compare, _Alloc>& __y) 12329: { return __x._M_t < __y._M_t; } 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 12329: const map<_Key, _Tp, _Compare, _Alloc>& __y) 12329: { return !(__x == __y); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x, 12329: const map<_Key, _Tp, _Compare, _Alloc>& __y) 12329: { return __y < __x; } 12329: 12329: 12329: template 12329: inline bool 12329: operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 12329: const map<_Key, _Tp, _Compare, _Alloc>& __y) 12329: { return !(__y < __x); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 12329: const map<_Key, _Tp, _Compare, _Alloc>& __y) 12329: { return !(__x < __y); } 12329: 12329: 12329: 12329: template 12329: inline void 12329: swap(map<_Key, _Tp, _Compare, _Alloc>& __x, 12329: map<_Key, _Tp, _Compare, _Alloc>& __y) 12329: noexcept(noexcept(__x.swap(__y))) 12329: { __x.swap(__y); } 12329: 12329: 12329: # 1613 "/usr/include/c++/12/bits/stl_map.h" 3 12329: 12329: } 12329: # 62 "/usr/include/c++/12/map" 2 3 12329: # 1 "/usr/include/c++/12/bits/stl_multimap.h" 1 3 12329: # 64 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: template 12329: class map; 12329: # 96 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: template , 12329: typename _Alloc = std::allocator > > 12329: class multimap 12329: { 12329: public: 12329: typedef _Key key_type; 12329: typedef _Tp mapped_type; 12329: typedef std::pair value_type; 12329: typedef _Compare key_compare; 12329: typedef _Alloc allocator_type; 12329: 12329: private: 12329: # 122 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: static_assert(is_same::value, 12329: "std::multimap must have the same value_type as its allocator"); 12329: 12329: 12329: 12329: public: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: class value_compare 12329: : public std::binary_function 12329: { 12329: friend class multimap<_Key, _Tp, _Compare, _Alloc>; 12329: protected: 12329: _Compare comp; 12329: 12329: value_compare(_Compare __c) 12329: : comp(__c) { } 12329: 12329: public: 12329: bool operator()(const value_type& __x, const value_type& __y) const 12329: { return comp(__x.first, __y.first); } 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: private: 12329: 12329: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 12329: rebind::other _Pair_alloc_type; 12329: 12329: typedef _Rb_tree, 12329: key_compare, _Pair_alloc_type> _Rep_type; 12329: 12329: _Rep_type _M_t; 12329: 12329: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 12329: 12329: public: 12329: 12329: 12329: typedef typename _Alloc_traits::pointer pointer; 12329: typedef typename _Alloc_traits::const_pointer const_pointer; 12329: typedef typename _Alloc_traits::reference reference; 12329: typedef typename _Alloc_traits::const_reference const_reference; 12329: typedef typename _Rep_type::iterator iterator; 12329: typedef typename _Rep_type::const_iterator const_iterator; 12329: typedef typename _Rep_type::size_type size_type; 12329: typedef typename _Rep_type::difference_type difference_type; 12329: typedef typename _Rep_type::reverse_iterator reverse_iterator; 12329: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 12329: # 185 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: multimap() = default; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: multimap(const _Compare& __comp, 12329: const allocator_type& __a = allocator_type()) 12329: : _M_t(__comp, _Pair_alloc_type(__a)) { } 12329: # 207 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: multimap(const multimap&) = default; 12329: # 216 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: multimap(multimap&&) = default; 12329: # 228 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: multimap(initializer_list __l, 12329: const _Compare& __comp = _Compare(), 12329: const allocator_type& __a = allocator_type()) 12329: : _M_t(__comp, _Pair_alloc_type(__a)) 12329: { _M_t._M_insert_range_equal(__l.begin(), __l.end()); } 12329: 12329: 12329: explicit 12329: multimap(const allocator_type& __a) 12329: : _M_t(_Pair_alloc_type(__a)) { } 12329: 12329: 12329: multimap(const multimap& __m, 12329: const __type_identity_t& __a) 12329: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 12329: 12329: 12329: multimap(multimap&& __m, const __type_identity_t& __a) 12329: noexcept(is_nothrow_copy_constructible<_Compare>::value 12329: && _Alloc_traits::_S_always_equal()) 12329: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 12329: 12329: 12329: multimap(initializer_list __l, const allocator_type& __a) 12329: : _M_t(_Pair_alloc_type(__a)) 12329: { _M_t._M_insert_range_equal(__l.begin(), __l.end()); } 12329: 12329: 12329: template 12329: multimap(_InputIterator __first, _InputIterator __last, 12329: const allocator_type& __a) 12329: : _M_t(_Pair_alloc_type(__a)) 12329: { _M_t._M_insert_range_equal(__first, __last); } 12329: # 272 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: template 12329: multimap(_InputIterator __first, _InputIterator __last) 12329: : _M_t() 12329: { _M_t._M_insert_range_equal(__first, __last); } 12329: # 288 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: template 12329: multimap(_InputIterator __first, _InputIterator __last, 12329: const _Compare& __comp, 12329: const allocator_type& __a = allocator_type()) 12329: : _M_t(__comp, _Pair_alloc_type(__a)) 12329: { _M_t._M_insert_range_equal(__first, __last); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ~multimap() = default; 12329: # 317 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: multimap& 12329: operator=(const multimap&) = default; 12329: 12329: 12329: multimap& 12329: operator=(multimap&&) = default; 12329: # 335 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: multimap& 12329: operator=(initializer_list __l) 12329: { 12329: _M_t._M_assign_equal(__l.begin(), __l.end()); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: allocator_type 12329: get_allocator() const noexcept 12329: { return allocator_type(_M_t.get_allocator()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: begin() noexcept 12329: { return _M_t.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: begin() const noexcept 12329: { return _M_t.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: end() noexcept 12329: { return _M_t.end(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: end() const noexcept 12329: { return _M_t.end(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: rbegin() noexcept 12329: { return _M_t.rbegin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: rbegin() const noexcept 12329: { return _M_t.rbegin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: rend() noexcept 12329: { return _M_t.rend(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: rend() const noexcept 12329: { return _M_t.rend(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: cbegin() const noexcept 12329: { return _M_t.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_iterator 12329: cend() const noexcept 12329: { return _M_t.end(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: crbegin() const noexcept 12329: { return _M_t.rbegin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: const_reverse_iterator 12329: crend() const noexcept 12329: { return _M_t.rend(); } 12329: 12329: 12329: 12329: 12329: bool 12329: empty() const noexcept 12329: { return _M_t.empty(); } 12329: 12329: 12329: size_type 12329: size() const noexcept 12329: { return _M_t.size(); } 12329: 12329: 12329: size_type 12329: max_size() const noexcept 12329: { return _M_t.max_size(); } 12329: # 493 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: template 12329: iterator 12329: emplace(_Args&&... __args) 12329: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 12329: # 520 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: template 12329: iterator 12329: emplace_hint(const_iterator __pos, _Args&&... __args) 12329: { 12329: return _M_t._M_emplace_hint_equal(__pos, 12329: std::forward<_Args>(__args)...); 12329: } 12329: # 542 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: iterator 12329: insert(const value_type& __x) 12329: { return _M_t._M_insert_equal(__x); } 12329: 12329: 12329: 12329: 12329: iterator 12329: insert(value_type&& __x) 12329: { return _M_t._M_insert_equal(std::move(__x)); } 12329: 12329: template 12329: __enable_if_t::value, iterator> 12329: insert(_Pair&& __x) 12329: { return _M_t._M_emplace_equal(std::forward<_Pair>(__x)); } 12329: # 581 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: iterator 12329: 12329: insert(const_iterator __position, const value_type& __x) 12329: 12329: 12329: 12329: { return _M_t._M_insert_equal_(__position, __x); } 12329: 12329: 12329: 12329: 12329: iterator 12329: insert(const_iterator __position, value_type&& __x) 12329: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 12329: 12329: template 12329: __enable_if_t::value, iterator> 12329: insert(const_iterator __position, _Pair&& __x) 12329: { 12329: return _M_t._M_emplace_hint_equal(__position, 12329: std::forward<_Pair>(__x)); 12329: } 12329: # 615 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: template 12329: void 12329: insert(_InputIterator __first, _InputIterator __last) 12329: { _M_t._M_insert_range_equal(__first, __last); } 12329: # 628 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: void 12329: insert(initializer_list __l) 12329: { this->insert(__l.begin(), __l.end()); } 12329: # 705 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: iterator 12329: erase(const_iterator __position) 12329: { return _M_t.erase(__position); } 12329: 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: iterator 12329: erase(iterator __position) 12329: { return _M_t.erase(__position); } 12329: # 742 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: size_type 12329: erase(const key_type& __x) 12329: { return _M_t.erase(__x); } 12329: # 763 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: iterator 12329: erase(const_iterator __first, const_iterator __last) 12329: { return _M_t.erase(__first, __last); } 12329: # 800 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: void 12329: swap(multimap& __x) 12329: noexcept(__is_nothrow_swappable<_Compare>::value) 12329: { _M_t.swap(__x._M_t); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: clear() noexcept 12329: { _M_t.clear(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: key_compare 12329: key_comp() const 12329: { return _M_t.key_comp(); } 12329: 12329: 12329: 12329: 12329: 12329: value_compare 12329: value_comp() const 12329: { return value_compare(_M_t.key_comp()); } 12329: # 846 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: iterator 12329: find(const key_type& __x) 12329: { return _M_t.find(__x); } 12329: 12329: 12329: template 12329: auto 12329: find(const _Kt& __x) -> decltype(_M_t._M_find_tr(__x)) 12329: { return _M_t._M_find_tr(__x); } 12329: # 870 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: const_iterator 12329: find(const key_type& __x) const 12329: { return _M_t.find(__x); } 12329: 12329: 12329: template 12329: auto 12329: find(const _Kt& __x) const -> decltype(_M_t._M_find_tr(__x)) 12329: { return _M_t._M_find_tr(__x); } 12329: # 888 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: size_type 12329: count(const key_type& __x) const 12329: { return _M_t.count(__x); } 12329: 12329: 12329: template 12329: auto 12329: count(const _Kt& __x) const -> decltype(_M_t._M_count_tr(__x)) 12329: { return _M_t._M_count_tr(__x); } 12329: # 931 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: iterator 12329: lower_bound(const key_type& __x) 12329: { return _M_t.lower_bound(__x); } 12329: 12329: 12329: template 12329: auto 12329: lower_bound(const _Kt& __x) 12329: -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) 12329: { return iterator(_M_t._M_lower_bound_tr(__x)); } 12329: # 956 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: const_iterator 12329: lower_bound(const key_type& __x) const 12329: { return _M_t.lower_bound(__x); } 12329: 12329: 12329: template 12329: auto 12329: lower_bound(const _Kt& __x) const 12329: -> decltype(const_iterator(_M_t._M_lower_bound_tr(__x))) 12329: { return const_iterator(_M_t._M_lower_bound_tr(__x)); } 12329: # 976 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: iterator 12329: upper_bound(const key_type& __x) 12329: { return _M_t.upper_bound(__x); } 12329: 12329: 12329: template 12329: auto 12329: upper_bound(const _Kt& __x) 12329: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 12329: { return iterator(_M_t._M_upper_bound_tr(__x)); } 12329: # 996 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: const_iterator 12329: upper_bound(const key_type& __x) const 12329: { return _M_t.upper_bound(__x); } 12329: 12329: 12329: template 12329: auto 12329: upper_bound(const _Kt& __x) const 12329: -> decltype(const_iterator(_M_t._M_upper_bound_tr(__x))) 12329: { return const_iterator(_M_t._M_upper_bound_tr(__x)); } 12329: # 1023 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: std::pair 12329: equal_range(const key_type& __x) 12329: { return _M_t.equal_range(__x); } 12329: 12329: 12329: template 12329: auto 12329: equal_range(const _Kt& __x) 12329: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 12329: { return pair(_M_t._M_equal_range_tr(__x)); } 12329: # 1050 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: std::pair 12329: equal_range(const key_type& __x) const 12329: { return _M_t.equal_range(__x); } 12329: 12329: 12329: template 12329: auto 12329: equal_range(const _Kt& __x) const 12329: -> decltype(pair( 12329: _M_t._M_equal_range_tr(__x))) 12329: { 12329: return pair( 12329: _M_t._M_equal_range_tr(__x)); 12329: } 12329: 12329: 12329: 12329: template 12329: friend bool 12329: operator==(const multimap<_K1, _T1, _C1, _A1>&, 12329: const multimap<_K1, _T1, _C1, _A1>&); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: friend bool 12329: operator<(const multimap<_K1, _T1, _C1, _A1>&, 12329: const multimap<_K1, _T1, _C1, _A1>&); 12329: 12329: }; 12329: # 1130 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: template 12329: inline bool 12329: operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 12329: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 12329: { return __x._M_t == __y._M_t; } 12329: # 1168 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: template 12329: inline bool 12329: operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 12329: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 12329: { return __x._M_t < __y._M_t; } 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 12329: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 12329: { return !(__x == __y); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 12329: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 12329: { return __y < __x; } 12329: 12329: 12329: template 12329: inline bool 12329: operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 12329: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 12329: { return !(__y < __x); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 12329: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 12329: { return !(__x < __y); } 12329: 12329: 12329: 12329: template 12329: inline void 12329: swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, 12329: multimap<_Key, _Tp, _Compare, _Alloc>& __y) 12329: noexcept(noexcept(__x.swap(__y))) 12329: { __x.swap(__y); } 12329: 12329: 12329: # 1234 "/usr/include/c++/12/bits/stl_multimap.h" 3 12329: 12329: } 12329: # 63 "/usr/include/c++/12/map" 2 3 12329: 12329: # 1 "/usr/include/c++/12/bits/erase_if.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/erase_if.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/erase_if.h" 3 12329: 12329: 12329: 12329: 12329: 12329: namespace std 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace __detail 12329: { 12329: template 12329: typename _Container::size_type 12329: __erase_nodes_if(_Container& __cont, const _UnsafeContainer& __ucont, 12329: _Predicate __pred) 12329: { 12329: typename _Container::size_type __num = 0; 12329: for (auto __iter = __ucont.begin(), __last = __ucont.end(); 12329: __iter != __last;) 12329: { 12329: if (__pred(*__iter)) 12329: { 12329: __iter = __cont.erase(__iter); 12329: ++__num; 12329: } 12329: else 12329: ++__iter; 12329: } 12329: return __num; 12329: } 12329: } 12329: 12329: 12329: } 12329: # 65 "/usr/include/c++/12/map" 2 3 12329: # 16 "/usr/include/boost/program_options/errors.hpp" 2 3 4 12329: # 24 "/usr/include/boost/program_options/errors.hpp" 3 4 12329: namespace boost { namespace program_options { 12329: 12329: inline std::string strip_prefixes(const std::string& text) 12329: { 12329: 12329: std::string::size_type i = text.find_first_not_of("-/"); 12329: if (i == std::string::npos) { 12329: return text; 12329: } else { 12329: return text.substr(i); 12329: } 12329: } 12329: 12329: 12329: class error : public std::logic_error { 12329: public: 12329: error(const std::string& xwhat) : std::logic_error(xwhat) {} 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: class too_many_positional_options_error : public error { 12329: public: 12329: too_many_positional_options_error() 12329: : error("too many positional options have been specified on the command line") 12329: {} 12329: }; 12329: 12329: 12329: class invalid_command_line_style : public error { 12329: public: 12329: invalid_command_line_style(const std::string& msg) 12329: : error(msg) 12329: {} 12329: }; 12329: 12329: 12329: class reading_file : public error { 12329: public: 12329: reading_file(const char* filename) 12329: : error(std::string("can not read options configuration file '").append(filename).append("'")) 12329: {} 12329: }; 12329: # 94 "/usr/include/boost/program_options/errors.hpp" 3 4 12329: class error_with_option_name : public error { 12329: 12329: protected: 12329: 12329: 12329: 12329: 12329: 12329: 12329: int m_option_style; 12329: 12329: 12329: 12329: 12329: std::map m_substitutions; 12329: typedef std::pair string_pair; 12329: std::map m_substitution_defaults; 12329: 12329: public: 12329: 12329: std::string m_error_template; 12329: 12329: error_with_option_name(const std::string& template_, 12329: const std::string& option_name = "", 12329: const std::string& original_token = "", 12329: int option_style = 0); 12329: 12329: 12329: 12329: 12329: ~error_with_option_name() throw() {} 12329: # 147 "/usr/include/boost/program_options/errors.hpp" 3 4 12329: void set_substitute(const std::string& parameter_name, const std::string& value) 12329: { m_substitutions[parameter_name] = value; } 12329: 12329: 12329: 12329: void set_substitute_default(const std::string& parameter_name, 12329: const std::string& from, 12329: const std::string& to) 12329: { 12329: m_substitution_defaults[parameter_name] = std::make_pair(from, to); 12329: } 12329: 12329: 12329: 12329: void add_context(const std::string& option_name, 12329: const std::string& original_token, 12329: int option_style) 12329: { 12329: set_option_name(option_name); 12329: set_original_token(original_token); 12329: set_prefix(option_style); 12329: } 12329: 12329: void set_prefix(int option_style) 12329: { m_option_style = option_style;} 12329: 12329: 12329: virtual void set_option_name(const std::string& option_name) 12329: { set_substitute("option", option_name);} 12329: 12329: std::string get_option_name() const 12329: { return get_canonical_option_name(); } 12329: 12329: void set_original_token(const std::string& original_token) 12329: { set_substitute("original_token", original_token);} 12329: 12329: 12329: 12329: 12329: virtual const char* what() const throw(); 12329: 12329: protected: 12329: 12329: mutable std::string m_message; 12329: 12329: 12329: virtual void substitute_placeholders(const std::string& error_template) const; 12329: 12329: 12329: void replace_token(const std::string& from, const std::string& to) const; 12329: 12329: 12329: 12329: std::string get_canonical_option_name() const; 12329: std::string get_canonical_option_prefix() const; 12329: }; 12329: 12329: 12329: 12329: 12329: class multiple_values : public error_with_option_name { 12329: public: 12329: multiple_values() 12329: : error_with_option_name("option '%canonical_option%' only takes a single argument"){} 12329: 12329: ~multiple_values() throw() {} 12329: }; 12329: 12329: 12329: 12329: 12329: class multiple_occurrences : public error_with_option_name { 12329: public: 12329: multiple_occurrences() 12329: : error_with_option_name("option '%canonical_option%' cannot be specified more than once"){} 12329: 12329: ~multiple_occurrences() throw() {} 12329: 12329: }; 12329: 12329: 12329: class required_option : public error_with_option_name { 12329: public: 12329: 12329: required_option(const std::string& option_name) 12329: : error_with_option_name("the option '%canonical_option%' is required but missing", "", option_name) 12329: { 12329: } 12329: 12329: ~required_option() throw() {} 12329: }; 12329: # 250 "/usr/include/boost/program_options/errors.hpp" 3 4 12329: class error_with_no_option_name : public error_with_option_name { 12329: public: 12329: error_with_no_option_name(const std::string& template_, 12329: const std::string& original_token = "") 12329: : error_with_option_name(template_, "", original_token) 12329: { 12329: } 12329: 12329: 12329: virtual void set_option_name(const std::string&) {} 12329: 12329: ~error_with_no_option_name() throw() {} 12329: }; 12329: 12329: 12329: 12329: class unknown_option : public error_with_no_option_name { 12329: public: 12329: unknown_option(const std::string& original_token = "") 12329: : error_with_no_option_name("unrecognised option '%canonical_option%'", original_token) 12329: { 12329: } 12329: 12329: ~unknown_option() throw() {} 12329: }; 12329: 12329: 12329: 12329: 12329: class ambiguous_option : public error_with_no_option_name { 12329: public: 12329: ambiguous_option(const std::vector& xalternatives) 12329: : error_with_no_option_name("option '%canonical_option%' is ambiguous"), 12329: m_alternatives(xalternatives) 12329: {} 12329: 12329: ~ambiguous_option() throw() {} 12329: 12329: const std::vector& alternatives() const throw() {return m_alternatives;} 12329: 12329: protected: 12329: 12329: virtual void substitute_placeholders(const std::string& error_template) const; 12329: private: 12329: 12329: std::vector m_alternatives; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: class invalid_syntax : public error_with_option_name { 12329: public: 12329: enum kind_t { 12329: long_not_allowed = 30, 12329: long_adjacent_not_allowed, 12329: short_adjacent_not_allowed, 12329: empty_adjacent_parameter, 12329: missing_parameter, 12329: extra_parameter, 12329: unrecognized_line 12329: }; 12329: 12329: invalid_syntax(kind_t kind, 12329: const std::string& option_name = "", 12329: const std::string& original_token = "", 12329: int option_style = 0): 12329: error_with_option_name(get_template(kind), option_name, original_token, option_style), 12329: m_kind(kind) 12329: { 12329: } 12329: 12329: ~invalid_syntax() throw() {} 12329: 12329: kind_t kind() const {return m_kind;} 12329: 12329: 12329: virtual std::string tokens() const {return get_option_name(); } 12329: protected: 12329: 12329: std::string get_template(kind_t kind); 12329: kind_t m_kind; 12329: }; 12329: 12329: class invalid_config_file_syntax : public invalid_syntax { 12329: public: 12329: invalid_config_file_syntax(const std::string& invalid_line, kind_t kind): 12329: invalid_syntax(kind) 12329: { 12329: m_substitutions["invalid_line"] = invalid_line; 12329: } 12329: 12329: ~invalid_config_file_syntax() throw() {} 12329: 12329: 12329: virtual std::string tokens() const {return m_substitutions.find("invalid_line")->second; } 12329: }; 12329: 12329: 12329: 12329: class invalid_command_line_syntax : public invalid_syntax { 12329: public: 12329: invalid_command_line_syntax(kind_t kind, 12329: const std::string& option_name = "", 12329: const std::string& original_token = "", 12329: int option_style = 0): 12329: invalid_syntax(kind, option_name, original_token, option_style) {} 12329: ~invalid_command_line_syntax() throw() {} 12329: }; 12329: 12329: 12329: 12329: class validation_error : public error_with_option_name { 12329: public: 12329: enum kind_t { 12329: multiple_values_not_allowed = 30, 12329: at_least_one_value_required, 12329: invalid_bool_value, 12329: invalid_option_value, 12329: invalid_option 12329: }; 12329: 12329: public: 12329: validation_error(kind_t kind, 12329: const std::string& option_name = "", 12329: const std::string& original_token = "", 12329: int option_style = 0): 12329: error_with_option_name(get_template(kind), option_name, original_token, option_style), 12329: m_kind(kind) 12329: { 12329: } 12329: 12329: ~validation_error() throw() {} 12329: 12329: kind_t kind() const { return m_kind; } 12329: 12329: protected: 12329: 12329: std::string get_template(kind_t kind); 12329: kind_t m_kind; 12329: }; 12329: 12329: 12329: class invalid_option_value 12329: : public validation_error 12329: { 12329: public: 12329: invalid_option_value(const std::string& value); 12329: 12329: invalid_option_value(const std::wstring& value); 12329: 12329: }; 12329: 12329: 12329: class invalid_bool_value 12329: : public validation_error 12329: { 12329: public: 12329: invalid_bool_value(const std::string& value); 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: }} 12329: # 13 "/usr/include/boost/program_options/options_description.hpp" 2 3 4 12329: # 1 "/usr/include/boost/program_options/value_semantic.hpp" 1 3 4 12329: # 12 "/usr/include/boost/program_options/value_semantic.hpp" 3 4 12329: # 1 "/usr/include/boost/any.hpp" 1 3 4 12329: # 18 "/usr/include/boost/any.hpp" 3 4 12329: # 1 "/usr/include/boost/type_index.hpp" 1 3 4 12329: # 20 "/usr/include/boost/type_index.hpp" 3 4 12329: 12329: # 29 "/usr/include/boost/type_index.hpp" 3 4 12329: # 1 "/usr/include/boost/type_index/stl_type_index.hpp" 1 3 4 12329: # 22 "/usr/include/boost/type_index/stl_type_index.hpp" 3 4 12329: # 1 "/usr/include/boost/type_index/type_index_facade.hpp" 1 3 4 12329: # 13 "/usr/include/boost/type_index/type_index_facade.hpp" 3 4 12329: # 1 "/usr/include/boost/container_hash/hash_fwd.hpp" 1 3 4 12329: # 13 "/usr/include/boost/container_hash/hash_fwd.hpp" 3 4 12329: # 1 "/usr/include/boost/config/workaround.hpp" 1 3 4 12329: # 14 "/usr/include/boost/container_hash/hash_fwd.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: template struct hash; 12329: 12329: template void hash_combine(std::size_t& seed, T const& v); 12329: 12329: template std::size_t hash_range(It, It); 12329: template void hash_range(std::size_t&, It, It); 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 14 "/usr/include/boost/type_index/type_index_facade.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/c++/12/cstring" 1 3 4 12329: # 39 "/usr/include/c++/12/cstring" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cstring" 3 12329: 12329: 12329: # 1 "/usr/include/string.h" 1 3 4 12329: # 26 "/usr/include/string.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/libc-header-start.h" 1 3 4 12329: # 27 "/usr/include/string.h" 2 3 4 12329: 12329: extern "C" { 12329: 12329: 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 34 "/usr/include/string.h" 2 3 4 12329: # 43 "/usr/include/string.h" 3 4 12329: extern void *memcpy (void *__restrict __dest, const void *__restrict __src, 12329: size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern void *memmove (void *__dest, const void *__src, size_t __n) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: 12329: extern void *memccpy (void *__restrict __dest, const void *__restrict __src, 12329: int __c, size_t __n) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4))); 12329: 12329: 12329: 12329: 12329: extern void *memset (void *__s, int __c, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int memcmp (const void *__s1, const void *__s2, size_t __n) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: # 80 "/usr/include/string.h" 3 4 12329: extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: extern "C++" 12329: { 12329: extern void *memchr (void *__s, int __c, size_t __n) 12329: noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: extern const void *memchr (const void *__s, int __c, size_t __n) 12329: noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * 12329: memchr (void *__s, int __c, size_t __n) noexcept (true) 12329: { 12329: return __builtin_memchr (__s, __c, __n); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void * 12329: memchr (const void *__s, int __c, size_t __n) noexcept (true) 12329: { 12329: return __builtin_memchr (__s, __c, __n); 12329: } 12329: 12329: } 12329: # 115 "/usr/include/string.h" 3 4 12329: extern "C++" void *rawmemchr (void *__s, int __c) 12329: noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: extern "C++" const void *rawmemchr (const void *__s, int __c) 12329: noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern "C++" void *memrchr (void *__s, int __c, size_t __n) 12329: noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) 12329: __attribute__ ((__access__ (__read_only__, 1, 3))); 12329: extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) 12329: noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) 12329: __attribute__ ((__access__ (__read_only__, 1, 3))); 12329: # 141 "/usr/include/string.h" 3 4 12329: extern char *strcpy (char *__restrict __dest, const char *__restrict __src) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: extern char *strncpy (char *__restrict __dest, 12329: const char *__restrict __src, size_t __n) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern char *strcat (char *__restrict __dest, const char *__restrict __src) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: extern char *strncat (char *__restrict __dest, const char *__restrict __src, 12329: size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int strcmp (const char *__s1, const char *__s2) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: extern int strncmp (const char *__s1, const char *__s2, size_t __n) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int strcoll (const char *__s1, const char *__s2) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: extern size_t strxfrm (char *__restrict __dest, 12329: const char *__restrict __src, size_t __n) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 12329: 12329: 12329: extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, 12329: locale_t __l) noexcept (true) __attribute__ ((__nonnull__ (2, 4))) 12329: __attribute__ ((__access__ (__write_only__, 1, 3))); 12329: 12329: 12329: 12329: 12329: 12329: extern char *strdup (const char *__s) 12329: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern char *strndup (const char *__string, size_t __n) 12329: noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 12329: # 224 "/usr/include/string.h" 3 4 12329: extern "C++" 12329: { 12329: extern char *strchr (char *__s, int __c) 12329: noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: extern const char *strchr (const char *__s, int __c) 12329: noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 12329: strchr (char *__s, int __c) noexcept (true) 12329: { 12329: return __builtin_strchr (__s, __c); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 12329: strchr (const char *__s, int __c) noexcept (true) 12329: { 12329: return __builtin_strchr (__s, __c); 12329: } 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern "C++" 12329: { 12329: extern char *strrchr (char *__s, int __c) 12329: noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: extern const char *strrchr (const char *__s, int __c) 12329: noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 12329: strrchr (char *__s, int __c) noexcept (true) 12329: { 12329: return __builtin_strrchr (__s, __c); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 12329: strrchr (const char *__s, int __c) noexcept (true) 12329: { 12329: return __builtin_strrchr (__s, __c); 12329: } 12329: 12329: } 12329: # 281 "/usr/include/string.h" 3 4 12329: extern "C++" char *strchrnul (char *__s, int __c) 12329: noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: extern "C++" const char *strchrnul (const char *__s, int __c) 12329: noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: # 293 "/usr/include/string.h" 3 4 12329: extern size_t strcspn (const char *__s, const char *__reject) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern size_t strspn (const char *__s, const char *__accept) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern "C++" 12329: { 12329: extern char *strpbrk (char *__s, const char *__accept) 12329: noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: extern const char *strpbrk (const char *__s, const char *__accept) 12329: noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 12329: strpbrk (char *__s, const char *__accept) noexcept (true) 12329: { 12329: return __builtin_strpbrk (__s, __accept); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 12329: strpbrk (const char *__s, const char *__accept) noexcept (true) 12329: { 12329: return __builtin_strpbrk (__s, __accept); 12329: } 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern "C++" 12329: { 12329: extern char *strstr (char *__haystack, const char *__needle) 12329: noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: extern const char *strstr (const char *__haystack, const char *__needle) 12329: noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 12329: strstr (char *__haystack, const char *__needle) noexcept (true) 12329: { 12329: return __builtin_strstr (__haystack, __needle); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 12329: strstr (const char *__haystack, const char *__needle) noexcept (true) 12329: { 12329: return __builtin_strstr (__haystack, __needle); 12329: } 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern char *strtok (char *__restrict __s, const char *__restrict __delim) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: extern char *__strtok_r (char *__restrict __s, 12329: const char *__restrict __delim, 12329: char **__restrict __save_ptr) 12329: noexcept (true) __attribute__ ((__nonnull__ (2, 3))); 12329: 12329: extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, 12329: char **__restrict __save_ptr) 12329: noexcept (true) __attribute__ ((__nonnull__ (2, 3))); 12329: 12329: 12329: 12329: 12329: 12329: extern "C++" char *strcasestr (char *__haystack, const char *__needle) 12329: noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: extern "C++" const char *strcasestr (const char *__haystack, 12329: const char *__needle) 12329: noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: # 389 "/usr/include/string.h" 3 4 12329: extern void *memmem (const void *__haystack, size_t __haystacklen, 12329: const void *__needle, size_t __needlelen) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))) 12329: __attribute__ ((__access__ (__read_only__, 1, 2))) 12329: __attribute__ ((__access__ (__read_only__, 3, 4))); 12329: 12329: 12329: 12329: extern void *__mempcpy (void *__restrict __dest, 12329: const void *__restrict __src, size_t __n) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: extern void *mempcpy (void *__restrict __dest, 12329: const void *__restrict __src, size_t __n) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: extern size_t strlen (const char *__s) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: extern size_t strnlen (const char *__string, size_t __maxlen) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: extern char *strerror (int __errnum) noexcept (true); 12329: # 444 "/usr/include/string.h" 3 4 12329: extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)) __attribute__ ((__access__ (__write_only__, 2, 3))); 12329: 12329: 12329: 12329: 12329: extern const char *strerrordesc_np (int __err) noexcept (true); 12329: 12329: extern const char *strerrorname_np (int __err) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern char *strerror_l (int __errnum, locale_t __l) noexcept (true); 12329: 12329: 12329: 12329: # 1 "/usr/include/strings.h" 1 3 4 12329: # 23 "/usr/include/strings.h" 3 4 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 24 "/usr/include/strings.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern "C" { 12329: 12329: 12329: 12329: extern int bcmp (const void *__s1, const void *__s2, size_t __n) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern void bcopy (const void *__src, void *__dest, size_t __n) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern void bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern "C++" 12329: { 12329: extern char *index (char *__s, int __c) 12329: noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: extern const char *index (const char *__s, int __c) 12329: noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 12329: index (char *__s, int __c) noexcept (true) 12329: { 12329: return __builtin_index (__s, __c); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 12329: index (const char *__s, int __c) noexcept (true) 12329: { 12329: return __builtin_index (__s, __c); 12329: } 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern "C++" 12329: { 12329: extern char *rindex (char *__s, int __c) 12329: noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: extern const char *rindex (const char *__s, int __c) 12329: noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 12329: rindex (char *__s, int __c) noexcept (true) 12329: { 12329: return __builtin_rindex (__s, __c); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 12329: rindex (const char *__s, int __c) noexcept (true) 12329: { 12329: return __builtin_rindex (__s, __c); 12329: } 12329: 12329: } 12329: # 104 "/usr/include/strings.h" 3 4 12329: extern int ffs (int __i) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: 12329: extern int ffsl (long int __l) noexcept (true) __attribute__ ((__const__)); 12329: __extension__ extern int ffsll (long long int __ll) 12329: noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern int strcasecmp (const char *__s1, const char *__s2) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 12329: 12329: 12329: 12329: extern int strncasecmp_l (const char *__s1, const char *__s2, 12329: size_t __n, locale_t __loc) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); 12329: 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/strings_fortified.h" 1 3 4 12329: # 22 "/usr/include/aarch64-linux-gnu/bits/strings_fortified.h" 3 4 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 12329: __attribute__ ((__leaf__)) bcopy (const void *__src, void *__dest, size_t __len) noexcept (true) 12329: { 12329: (void) __builtin___memmove_chk (__dest, __src, __len, 12329: __builtin_object_size (__dest, 0)); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 12329: __attribute__ ((__leaf__)) bzero (void *__dest, size_t __len) noexcept (true) 12329: { 12329: (void) __builtin___memset_chk (__dest, '\0', __len, 12329: __builtin_object_size (__dest, 0)); 12329: } 12329: # 145 "/usr/include/strings.h" 2 3 4 12329: # 463 "/usr/include/string.h" 2 3 4 12329: 12329: 12329: 12329: extern void explicit_bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) 12329: __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: 12329: 12329: 12329: extern char *strsep (char **__restrict __stringp, 12329: const char *__restrict __delim) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: extern char *strsignal (int __sig) noexcept (true); 12329: 12329: 12329: 12329: extern const char *sigabbrev_np (int __sig) noexcept (true); 12329: 12329: 12329: extern const char *sigdescr_np (int __sig) noexcept (true); 12329: 12329: 12329: 12329: extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: extern char *__stpncpy (char *__restrict __dest, 12329: const char *__restrict __src, size_t __n) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: extern char *stpncpy (char *__restrict __dest, 12329: const char *__restrict __src, size_t __n) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: extern int strverscmp (const char *__s1, const char *__s2) 12329: noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern char *strfry (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern void *memfrob (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) 12329: __attribute__ ((__access__ (__read_write__, 1, 2))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern "C++" char *basename (char *__filename) 12329: noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); 12329: extern "C++" const char *basename (const char *__filename) 12329: noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); 12329: # 535 "/usr/include/string.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/string_fortified.h" 1 3 4 12329: # 25 "/usr/include/aarch64-linux-gnu/bits/string_fortified.h" 3 4 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 12329: __attribute__ ((__leaf__)) memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) noexcept (true) 12329: 12329: { 12329: return __builtin___memcpy_chk (__dest, __src, __len, 12329: __builtin_object_size (__dest, 0)); 12329: } 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 12329: __attribute__ ((__leaf__)) memmove (void *__dest, const void *__src, size_t __len) noexcept (true) 12329: { 12329: return __builtin___memmove_chk (__dest, __src, __len, 12329: __builtin_object_size (__dest, 0)); 12329: } 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 12329: __attribute__ ((__leaf__)) mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) noexcept (true) 12329: 12329: { 12329: return __builtin___mempcpy_chk (__dest, __src, __len, 12329: __builtin_object_size (__dest, 0)); 12329: } 12329: # 56 "/usr/include/aarch64-linux-gnu/bits/string_fortified.h" 3 4 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 12329: __attribute__ ((__leaf__)) memset (void *__dest, int __ch, size_t __len) noexcept (true) 12329: { 12329: return __builtin___memset_chk (__dest, __ch, __len, 12329: __builtin_object_size (__dest, 0)); 12329: } 12329: 12329: 12329: 12329: 12329: void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__write_only__, 1, 2))); 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 12329: __attribute__ ((__leaf__)) explicit_bzero (void *__dest, size_t __len) noexcept (true) 12329: { 12329: __explicit_bzero_chk (__dest, __len, __builtin_object_size (__dest, 0)); 12329: } 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 12329: __attribute__ ((__leaf__)) strcpy (char *__restrict __dest, const char *__restrict __src) noexcept (true) 12329: { 12329: return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 12329: } 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 12329: __attribute__ ((__leaf__)) stpcpy (char *__restrict __dest, const char *__restrict __src) noexcept (true) 12329: { 12329: return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 12329: } 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 12329: __attribute__ ((__leaf__)) strncpy (char *__restrict __dest, const char *__restrict __src, size_t __len) noexcept (true) 12329: 12329: { 12329: return __builtin___strncpy_chk (__dest, __src, __len, 12329: __builtin_object_size (__dest, 2 > 1)); 12329: } 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 12329: __attribute__ ((__leaf__)) stpncpy (char *__dest, const char *__src, size_t __n) noexcept (true) 12329: { 12329: return __builtin___stpncpy_chk (__dest, __src, __n, 12329: __builtin_object_size (__dest, 2 > 1)); 12329: } 12329: # 127 "/usr/include/aarch64-linux-gnu/bits/string_fortified.h" 3 4 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 12329: __attribute__ ((__leaf__)) strcat (char *__restrict __dest, const char *__restrict __src) noexcept (true) 12329: { 12329: return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 12329: } 12329: 12329: 12329: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 12329: __attribute__ ((__leaf__)) strncat (char *__restrict __dest, const char *__restrict __src, size_t __len) noexcept (true) 12329: 12329: { 12329: return __builtin___strncat_chk (__dest, __src, __len, 12329: __builtin_object_size (__dest, 2 > 1)); 12329: } 12329: # 536 "/usr/include/string.h" 2 3 4 12329: 12329: 12329: 12329: } 12329: # 43 "/usr/include/c++/12/cstring" 2 3 12329: # 71 "/usr/include/c++/12/cstring" 3 12329: extern "C++" 12329: { 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: using ::memchr; 12329: using ::memcmp; 12329: using ::memcpy; 12329: using ::memmove; 12329: using ::memset; 12329: using ::strcat; 12329: using ::strcmp; 12329: using ::strcoll; 12329: using ::strcpy; 12329: using ::strcspn; 12329: using ::strerror; 12329: using ::strlen; 12329: using ::strncat; 12329: using ::strncmp; 12329: using ::strncpy; 12329: using ::strspn; 12329: using ::strtok; 12329: using ::strxfrm; 12329: using ::strchr; 12329: using ::strpbrk; 12329: using ::strrchr; 12329: using ::strstr; 12329: # 122 "/usr/include/c++/12/cstring" 3 12329: 12329: } 12329: } 12329: # 16 "/usr/include/boost/type_index/type_index_facade.hpp" 2 3 4 12329: # 26 "/usr/include/boost/type_index/type_index_facade.hpp" 3 4 12329: 12329: 12329: 12329: namespace boost { namespace typeindex { 12329: # 61 "/usr/include/boost/type_index/type_index_facade.hpp" 3 4 12329: template 12329: class type_index_facade { 12329: private: 12329: 12329: constexpr const Derived & derived() const noexcept { 12329: return *static_cast(this); 12329: } 12329: 12329: public: 12329: typedef TypeInfo type_info_t; 12329: 12329: 12329: 12329: inline const char* name() const noexcept { 12329: return derived().raw_name(); 12329: } 12329: 12329: 12329: 12329: inline std::string pretty_name() const { 12329: return derived().name(); 12329: } 12329: 12329: 12329: 12329: inline bool equal(const Derived& rhs) const noexcept { 12329: const char* const left = derived().raw_name(); 12329: const char* const right = rhs.raw_name(); 12329: return left == right || !std::strcmp(left, right); 12329: } 12329: 12329: 12329: 12329: inline bool before(const Derived& rhs) const noexcept { 12329: const char* const left = derived().raw_name(); 12329: const char* const right = rhs.raw_name(); 12329: return left != right && std::strcmp(left, right) < 0; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: inline std::size_t hash_code() const noexcept { 12329: const char* const name_raw = derived().raw_name(); 12329: return boost::hash_range(name_raw, name_raw + std::strlen(name_raw)); 12329: } 12329: # 150 "/usr/include/boost/type_index/type_index_facade.hpp" 3 4 12329: }; 12329: 12329: 12329: template 12329: constexpr inline bool operator == (const type_index_facade& lhs, const type_index_facade& rhs) noexcept { 12329: return static_cast(lhs).equal(static_cast(rhs)); 12329: } 12329: 12329: template 12329: constexpr inline bool operator < (const type_index_facade& lhs, const type_index_facade& rhs) noexcept { 12329: return static_cast(lhs).before(static_cast(rhs)); 12329: } 12329: 12329: 12329: 12329: template 12329: constexpr inline bool operator > (const type_index_facade& lhs, const type_index_facade& rhs) noexcept { 12329: return rhs < lhs; 12329: } 12329: 12329: template 12329: constexpr inline bool operator <= (const type_index_facade& lhs, const type_index_facade& rhs) noexcept { 12329: return !(lhs > rhs); 12329: } 12329: 12329: template 12329: constexpr inline bool operator >= (const type_index_facade& lhs, const type_index_facade& rhs) noexcept { 12329: return !(lhs < rhs); 12329: } 12329: 12329: template 12329: constexpr inline bool operator != (const type_index_facade& lhs, const type_index_facade& rhs) noexcept { 12329: return !(lhs == rhs); 12329: } 12329: 12329: 12329: template 12329: inline bool operator == (const TypeInfo& lhs, const type_index_facade& rhs) noexcept { 12329: return Derived(lhs) == rhs; 12329: } 12329: 12329: template 12329: inline bool operator < (const TypeInfo& lhs, const type_index_facade& rhs) noexcept { 12329: return Derived(lhs) < rhs; 12329: } 12329: 12329: template 12329: inline bool operator > (const TypeInfo& lhs, const type_index_facade& rhs) noexcept { 12329: return rhs < Derived(lhs); 12329: } 12329: 12329: template 12329: inline bool operator <= (const TypeInfo& lhs, const type_index_facade& rhs) noexcept { 12329: return !(Derived(lhs) > rhs); 12329: } 12329: 12329: template 12329: inline bool operator >= (const TypeInfo& lhs, const type_index_facade& rhs) noexcept { 12329: return !(Derived(lhs) < rhs); 12329: } 12329: 12329: template 12329: inline bool operator != (const TypeInfo& lhs, const type_index_facade& rhs) noexcept { 12329: return !(Derived(lhs) == rhs); 12329: } 12329: 12329: 12329: template 12329: inline bool operator == (const type_index_facade& lhs, const TypeInfo& rhs) noexcept { 12329: return lhs == Derived(rhs); 12329: } 12329: 12329: template 12329: inline bool operator < (const type_index_facade& lhs, const TypeInfo& rhs) noexcept { 12329: return lhs < Derived(rhs); 12329: } 12329: 12329: template 12329: inline bool operator > (const type_index_facade& lhs, const TypeInfo& rhs) noexcept { 12329: return Derived(rhs) < lhs; 12329: } 12329: 12329: template 12329: inline bool operator <= (const type_index_facade& lhs, const TypeInfo& rhs) noexcept { 12329: return !(lhs > Derived(rhs)); 12329: } 12329: 12329: template 12329: inline bool operator >= (const type_index_facade& lhs, const TypeInfo& rhs) noexcept { 12329: return !(lhs < Derived(rhs)); 12329: } 12329: 12329: template 12329: inline bool operator != (const type_index_facade& lhs, const TypeInfo& rhs) noexcept { 12329: return !(lhs == Derived(rhs)); 12329: } 12329: # 276 "/usr/include/boost/type_index/type_index_facade.hpp" 3 4 12329: template 12329: inline std::basic_ostream& operator<<( 12329: std::basic_ostream& ostr, 12329: const type_index_facade& ind) 12329: { 12329: ostr << static_cast(ind).pretty_name(); 12329: return ostr; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline std::size_t hash_value(const type_index_facade& lhs) noexcept { 12329: return static_cast(lhs).hash_code(); 12329: } 12329: 12329: }} 12329: # 23 "/usr/include/boost/type_index/stl_type_index.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/cstring" 1 3 4 12329: # 39 "/usr/include/c++/12/cstring" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cstring" 3 12329: # 31 "/usr/include/boost/type_index/stl_type_index.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/static_assert.hpp" 1 3 4 12329: # 18 "/usr/include/boost/static_assert.hpp" 3 4 12329: # 1 "/usr/include/boost/detail/workaround.hpp" 1 3 4 12329: # 19 "/usr/include/boost/static_assert.hpp" 2 3 4 12329: # 33 "/usr/include/boost/type_index/stl_type_index.hpp" 2 3 4 12329: # 1 "/usr/include/boost/throw_exception.hpp" 1 3 4 12329: # 23 "/usr/include/boost/throw_exception.hpp" 3 4 12329: # 1 "/usr/include/boost/assert/source_location.hpp" 1 3 4 12329: # 10 "/usr/include/boost/assert/source_location.hpp" 3 4 12329: # 1 "/usr/include/boost/current_function.hpp" 1 3 4 12329: # 22 "/usr/include/boost/current_function.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: inline void current_function_helper() 12329: { 12329: # 69 "/usr/include/boost/current_function.hpp" 3 4 12329: } 12329: 12329: } 12329: 12329: } 12329: # 11 "/usr/include/boost/assert/source_location.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/cstdint.hpp" 1 3 4 12329: # 46 "/usr/include/boost/cstdint.hpp" 3 4 12329: 12329: # 47 "/usr/include/boost/cstdint.hpp" 3 12329: # 114 "/usr/include/boost/cstdint.hpp" 3 12329: namespace boost 12329: { 12329: 12329: using ::int8_t; 12329: using ::int_least8_t; 12329: using ::int_fast8_t; 12329: using ::uint8_t; 12329: using ::uint_least8_t; 12329: using ::uint_fast8_t; 12329: 12329: using ::int16_t; 12329: using ::int_least16_t; 12329: using ::int_fast16_t; 12329: using ::uint16_t; 12329: using ::uint_least16_t; 12329: using ::uint_fast16_t; 12329: 12329: using ::int32_t; 12329: using ::int_least32_t; 12329: using ::int_fast32_t; 12329: using ::uint32_t; 12329: using ::uint_least32_t; 12329: using ::uint_fast32_t; 12329: 12329: 12329: 12329: using ::int64_t; 12329: using ::int_least64_t; 12329: using ::int_fast64_t; 12329: using ::uint64_t; 12329: using ::uint_least64_t; 12329: using ::uint_fast64_t; 12329: 12329: 12329: 12329: using ::intmax_t; 12329: using ::uintmax_t; 12329: 12329: } 12329: # 387 "/usr/include/boost/cstdint.hpp" 3 12329: namespace boost { 12329: using ::intptr_t; 12329: using ::uintptr_t; 12329: } 12329: # 13 "/usr/include/boost/assert/source_location.hpp" 2 3 4 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: struct source_location 12329: { 12329: private: 12329: 12329: char const * file_; 12329: char const * function_; 12329: boost::uint_least32_t line_; 12329: boost::uint_least32_t column_; 12329: 12329: public: 12329: 12329: constexpr source_location() noexcept: file_( "(unknown)" ), function_( "(unknown)" ), line_( 0 ), column_( 0 ) 12329: { 12329: } 12329: 12329: constexpr source_location( char const * file, boost::uint_least32_t ln, char const * function, boost::uint_least32_t col = 0 ) noexcept: file_( file ), function_( function ), line_( ln ), column_( col ) 12329: { 12329: } 12329: 12329: constexpr char const * file_name() const noexcept 12329: { 12329: return file_; 12329: } 12329: 12329: constexpr char const * function_name() const noexcept 12329: { 12329: return function_; 12329: } 12329: 12329: constexpr boost::uint_least32_t line() const noexcept 12329: { 12329: return line_; 12329: } 12329: 12329: constexpr boost::uint_least32_t column() const noexcept 12329: { 12329: return column_; 12329: } 12329: }; 12329: 12329: template std::basic_ostream & operator<<( std::basic_ostream & os, source_location const & loc ) 12329: { 12329: os.width( 0 ); 12329: 12329: if( loc.line() == 0 ) 12329: { 12329: os << "(unknown source location)"; 12329: } 12329: else 12329: { 12329: os << loc.file_name() << ':' << loc.line(); 12329: 12329: if( loc.column() ) 12329: { 12329: os << ':' << loc.column(); 12329: } 12329: 12329: os << ": in function '" << loc.function_name() << '\''; 12329: } 12329: 12329: return os; 12329: } 12329: 12329: } 12329: # 24 "/usr/include/boost/throw_exception.hpp" 2 3 4 12329: # 32 "/usr/include/boost/throw_exception.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: 12329: 12329: 12329: inline void throw_exception_assert_compatibility( std::exception const & ) {} 12329: 12329: } 12329: # 73 "/usr/include/boost/throw_exception.hpp" 3 4 12329: # 1 "/usr/include/boost/exception/exception.hpp" 1 3 4 12329: # 15 "/usr/include/boost/exception/exception.hpp" 3 4 12329: namespace boost { template class shared_ptr; } 12329: namespace boost { namespace exception_detail { using boost::shared_ptr; } } 12329: 12329: 12329: 12329: 12329: 12329: # 22 "/usr/include/boost/exception/exception.hpp" 3 12329: # 32 "/usr/include/boost/exception/exception.hpp" 3 12329: namespace 12329: boost 12329: { 12329: namespace 12329: exception_detail 12329: { 12329: template 12329: class 12329: refcount_ptr 12329: { 12329: public: 12329: 12329: refcount_ptr(): 12329: px_(0) 12329: { 12329: } 12329: 12329: ~refcount_ptr() 12329: { 12329: release(); 12329: } 12329: 12329: refcount_ptr( refcount_ptr const & x ): 12329: px_(x.px_) 12329: { 12329: add_ref(); 12329: } 12329: 12329: refcount_ptr & 12329: operator=( refcount_ptr const & x ) 12329: { 12329: adopt(x.px_); 12329: return *this; 12329: } 12329: 12329: void 12329: adopt( T * px ) 12329: { 12329: release(); 12329: px_=px; 12329: add_ref(); 12329: } 12329: 12329: T * 12329: get() const 12329: { 12329: return px_; 12329: } 12329: 12329: private: 12329: 12329: T * px_; 12329: 12329: void 12329: add_ref() 12329: { 12329: if( px_ ) 12329: px_->add_ref(); 12329: } 12329: 12329: void 12329: release() 12329: { 12329: if( px_ && px_->release() ) 12329: px_=0; 12329: } 12329: }; 12329: } 12329: 12329: 12329: 12329: template 12329: class error_info; 12329: 12329: typedef error_info throw_function; 12329: typedef error_info throw_file; 12329: typedef error_info throw_line; 12329: 12329: template <> 12329: class 12329: error_info 12329: { 12329: public: 12329: typedef char const * value_type; 12329: value_type v_; 12329: explicit 12329: error_info( value_type v ): 12329: v_(v) 12329: { 12329: } 12329: }; 12329: 12329: template <> 12329: class 12329: error_info 12329: { 12329: public: 12329: typedef char const * value_type; 12329: value_type v_; 12329: explicit 12329: error_info( value_type v ): 12329: v_(v) 12329: { 12329: } 12329: }; 12329: 12329: template <> 12329: class 12329: error_info 12329: { 12329: public: 12329: typedef int value_type; 12329: value_type v_; 12329: explicit 12329: error_info( value_type v ): 12329: v_(v) 12329: { 12329: } 12329: }; 12329: 12329: class 12329: __attribute__((__visibility__("default"))) 12329: exception; 12329: 12329: namespace 12329: exception_detail 12329: { 12329: class error_info_base; 12329: struct type_info_; 12329: 12329: struct 12329: error_info_container 12329: { 12329: virtual char const * diagnostic_information( char const * ) const = 0; 12329: virtual shared_ptr get( type_info_ const & ) const = 0; 12329: virtual void set( shared_ptr const &, type_info_ const & ) = 0; 12329: virtual void add_ref() const = 0; 12329: virtual bool release() const = 0; 12329: virtual refcount_ptr clone() const = 0; 12329: 12329: protected: 12329: 12329: ~error_info_container() noexcept 12329: { 12329: } 12329: }; 12329: 12329: template 12329: struct get_info; 12329: 12329: template <> 12329: struct get_info; 12329: 12329: template <> 12329: struct get_info; 12329: 12329: template <> 12329: struct get_info; 12329: 12329: template 12329: struct set_info_rv; 12329: 12329: template <> 12329: struct set_info_rv; 12329: 12329: template <> 12329: struct set_info_rv; 12329: 12329: template <> 12329: struct set_info_rv; 12329: 12329: char const * get_diagnostic_information( exception const &, char const * ); 12329: 12329: void copy_boost_exception( exception *, exception const * ); 12329: 12329: template 12329: E const & set_info( E const &, error_info const & ); 12329: 12329: template 12329: E const & set_info( E const &, throw_function const & ); 12329: 12329: template 12329: E const & set_info( E const &, throw_file const & ); 12329: 12329: template 12329: E const & set_info( E const &, throw_line const & ); 12329: } 12329: 12329: class 12329: __attribute__((__visibility__("default"))) 12329: exception 12329: { 12329: 12329: public: 12329: template void set( typename Tag::type const & ); 12329: template typename Tag::type const * get() const; 12329: 12329: 12329: protected: 12329: 12329: exception(): 12329: throw_function_(0), 12329: throw_file_(0), 12329: throw_line_(-1) 12329: { 12329: } 12329: # 251 "/usr/include/boost/exception/exception.hpp" 3 12329: virtual ~exception() noexcept 12329: 12329: = 0 12329: 12329: ; 12329: 12329: 12329: 12329: 12329: private: 12329: 12329: template 12329: friend E const & exception_detail::set_info( E const &, throw_function const & ); 12329: 12329: template 12329: friend E const & exception_detail::set_info( E const &, throw_file const & ); 12329: 12329: template 12329: friend E const & exception_detail::set_info( E const &, throw_line const & ); 12329: 12329: template 12329: friend E const & exception_detail::set_info( E const &, error_info const & ); 12329: 12329: friend char const * exception_detail::get_diagnostic_information( exception const &, char const * ); 12329: 12329: template 12329: friend struct exception_detail::get_info; 12329: friend struct exception_detail::get_info; 12329: friend struct exception_detail::get_info; 12329: friend struct exception_detail::get_info; 12329: template 12329: friend struct exception_detail::set_info_rv; 12329: friend struct exception_detail::set_info_rv; 12329: friend struct exception_detail::set_info_rv; 12329: friend struct exception_detail::set_info_rv; 12329: friend void exception_detail::copy_boost_exception( exception *, exception const * ); 12329: 12329: mutable exception_detail::refcount_ptr data_; 12329: mutable char const * throw_function_; 12329: mutable char const * throw_file_; 12329: mutable int throw_line_; 12329: }; 12329: 12329: inline 12329: exception:: 12329: ~exception() noexcept 12329: { 12329: } 12329: 12329: namespace 12329: exception_detail 12329: { 12329: template 12329: E const & 12329: set_info( E const & x, throw_function const & y ) 12329: { 12329: x.throw_function_=y.v_; 12329: return x; 12329: } 12329: 12329: template 12329: E const & 12329: set_info( E const & x, throw_file const & y ) 12329: { 12329: x.throw_file_=y.v_; 12329: return x; 12329: } 12329: 12329: template 12329: E const & 12329: set_info( E const & x, throw_line const & y ) 12329: { 12329: x.throw_line_=y.v_; 12329: return x; 12329: } 12329: } 12329: 12329: 12329: 12329: namespace 12329: exception_detail 12329: { 12329: template 12329: struct 12329: __attribute__((__visibility__("default"))) 12329: error_info_injector: 12329: public T, 12329: public exception 12329: { 12329: explicit 12329: error_info_injector( T const & x ): 12329: T(x) 12329: { 12329: } 12329: 12329: ~error_info_injector() noexcept 12329: { 12329: } 12329: }; 12329: 12329: struct large_size { char c[256]; }; 12329: large_size dispatch_boost_exception( exception const * ); 12329: 12329: struct small_size { }; 12329: small_size dispatch_boost_exception( void const * ); 12329: 12329: template 12329: struct enable_error_info_helper; 12329: 12329: template 12329: struct 12329: enable_error_info_helper 12329: { 12329: typedef T type; 12329: }; 12329: 12329: template 12329: struct 12329: enable_error_info_helper 12329: { 12329: typedef error_info_injector type; 12329: }; 12329: 12329: template 12329: struct 12329: enable_error_info_return_type 12329: { 12329: typedef typename enable_error_info_helper(0)))>::type type; 12329: }; 12329: } 12329: 12329: template 12329: inline 12329: typename 12329: exception_detail::enable_error_info_return_type::type 12329: enable_error_info( T const & x ) 12329: { 12329: typedef typename exception_detail::enable_error_info_return_type::type rt; 12329: return rt(x); 12329: } 12329: 12329: 12329: 12329: namespace 12329: exception_detail 12329: { 12329: class 12329: __attribute__((__visibility__("default"))) 12329: clone_base 12329: { 12329: public: 12329: 12329: virtual clone_base const * clone() const = 0; 12329: virtual void rethrow() const = 0; 12329: 12329: virtual 12329: ~clone_base() noexcept 12329: { 12329: } 12329: }; 12329: 12329: inline 12329: void 12329: copy_boost_exception( exception * a, exception const * b ) 12329: { 12329: refcount_ptr data; 12329: if( error_info_container * d=b->data_.get() ) 12329: data = d->clone(); 12329: a->throw_file_ = b->throw_file_; 12329: a->throw_line_ = b->throw_line_; 12329: a->throw_function_ = b->throw_function_; 12329: a->data_ = data; 12329: } 12329: 12329: inline 12329: void 12329: copy_boost_exception( void *, void const * ) 12329: { 12329: } 12329: 12329: template 12329: class 12329: __attribute__((__visibility__("default"))) 12329: clone_impl: 12329: public T, 12329: public virtual clone_base 12329: { 12329: struct clone_tag { }; 12329: clone_impl( clone_impl const & x, clone_tag ): 12329: T(x) 12329: { 12329: copy_boost_exception(this,&x); 12329: } 12329: 12329: public: 12329: 12329: explicit 12329: clone_impl( T const & x ): 12329: T(x) 12329: { 12329: copy_boost_exception(this,&x); 12329: } 12329: 12329: ~clone_impl() noexcept 12329: { 12329: } 12329: 12329: private: 12329: 12329: clone_base const * 12329: clone() const 12329: { 12329: return new clone_impl(*this,clone_tag()); 12329: } 12329: 12329: void 12329: rethrow() const 12329: { 12329: throw*this; 12329: } 12329: }; 12329: } 12329: 12329: template 12329: inline 12329: exception_detail::clone_impl 12329: enable_current_exception( T const & x ) 12329: { 12329: return exception_detail::clone_impl(x); 12329: } 12329: } 12329: # 74 "/usr/include/boost/throw_exception.hpp" 2 3 4 12329: 12329: namespace boost 12329: { 12329: 12329: 12329: 12329: namespace detail 12329: { 12329: 12329: typedef char (&wrapexcept_s1)[ 1 ]; 12329: typedef char (&wrapexcept_s2)[ 2 ]; 12329: 12329: template wrapexcept_s1 wrapexcept_is_convertible( T* ); 12329: template wrapexcept_s2 wrapexcept_is_convertible( void* ); 12329: 12329: template( static_cast< E* >( 0 ) ) ) > struct wrapexcept_add_base; 12329: 12329: template struct wrapexcept_add_base 12329: { 12329: struct type {}; 12329: }; 12329: 12329: template struct wrapexcept_add_base 12329: { 12329: typedef B type; 12329: }; 12329: 12329: } 12329: 12329: template struct __attribute__((__visibility__("default"))) wrapexcept: 12329: public detail::wrapexcept_add_base::type, 12329: public E, 12329: public detail::wrapexcept_add_base::type 12329: { 12329: private: 12329: 12329: struct deleter 12329: { 12329: wrapexcept * p_; 12329: ~deleter() { delete p_; } 12329: }; 12329: 12329: private: 12329: 12329: void copy_from( void const* ) 12329: { 12329: } 12329: 12329: void copy_from( boost::exception const* p ) 12329: { 12329: static_cast( *this ) = *p; 12329: } 12329: 12329: public: 12329: 12329: explicit wrapexcept( E const & e ): E( e ) 12329: { 12329: copy_from( &e ); 12329: } 12329: 12329: explicit wrapexcept( E const & e, boost::source_location const & loc ): E( e ) 12329: { 12329: copy_from( &e ); 12329: 12329: set_info( *this, throw_file( loc.file_name() ) ); 12329: set_info( *this, throw_line( loc.line() ) ); 12329: set_info( *this, throw_function( loc.function_name() ) ); 12329: } 12329: 12329: virtual boost::exception_detail::clone_base const * clone() const override 12329: { 12329: wrapexcept * p = new wrapexcept( *this ); 12329: deleter del = { p }; 12329: 12329: boost::exception_detail::copy_boost_exception( p, this ); 12329: 12329: del.p_ = 0; 12329: return p; 12329: } 12329: 12329: virtual void rethrow() const override 12329: { 12329: throw *this; 12329: } 12329: }; 12329: 12329: 12329: 12329: template __attribute__ ((__noreturn__)) void throw_exception( E const & e ) 12329: { 12329: throw_exception_assert_compatibility( e ); 12329: throw wrapexcept( e ); 12329: } 12329: 12329: template __attribute__ ((__noreturn__)) void throw_exception( E const & e, boost::source_location const & loc ) 12329: { 12329: throw_exception_assert_compatibility( e ); 12329: throw wrapexcept( e, loc ); 12329: } 12329: 12329: } 12329: # 34 "/usr/include/boost/type_index/stl_type_index.hpp" 2 3 4 12329: # 1 "/usr/include/boost/core/demangle.hpp" 1 3 4 12329: # 17 "/usr/include/boost/core/demangle.hpp" 3 4 12329: 12329: # 32 "/usr/include/boost/core/demangle.hpp" 3 4 12329: # 1 "/usr/include/c++/12/cxxabi.h" 1 3 4 12329: # 44 "/usr/include/c++/12/cxxabi.h" 3 4 12329: 12329: # 45 "/usr/include/c++/12/cxxabi.h" 3 12329: 12329: #pragma GCC visibility push(default) 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 49 "/usr/include/c++/12/cxxabi.h" 2 3 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/cxxabi_tweaks.h" 1 3 12329: # 34 "/usr/include/aarch64-linux-gnu/c++/12/bits/cxxabi_tweaks.h" 3 12329: namespace __cxxabiv1 12329: { 12329: extern "C" 12329: { 12329: # 46 "/usr/include/aarch64-linux-gnu/c++/12/bits/cxxabi_tweaks.h" 3 12329: __extension__ typedef int __guard __attribute__((mode (__DI__))); 12329: 12329: 12329: typedef void __cxa_vec_ctor_return_type; 12329: 12329: 12329: typedef void __cxa_cdtor_return_type; 12329: 12329: 12329: } 12329: } 12329: # 51 "/usr/include/c++/12/cxxabi.h" 2 3 12329: 12329: 12329: 12329: 12329: namespace __cxxabiv1 12329: { 12329: extern "C" 12329: { 12329: 12329: 12329: typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(void *); 12329: 12329: 12329: void* 12329: __cxa_vec_new(size_t __element_count, size_t __element_size, 12329: size_t __padding_size, __cxa_cdtor_type __constructor, 12329: __cxa_cdtor_type __destructor); 12329: 12329: void* 12329: __cxa_vec_new2(size_t __element_count, size_t __element_size, 12329: size_t __padding_size, __cxa_cdtor_type __constructor, 12329: __cxa_cdtor_type __destructor, void *(*__alloc) (size_t), 12329: void (*__dealloc) (void*)); 12329: 12329: void* 12329: __cxa_vec_new3(size_t __element_count, size_t __element_size, 12329: size_t __padding_size, __cxa_cdtor_type __constructor, 12329: __cxa_cdtor_type __destructor, void *(*__alloc) (size_t), 12329: void (*__dealloc) (void*, size_t)); 12329: 12329: 12329: __cxa_vec_ctor_return_type 12329: __cxa_vec_ctor(void* __array_address, size_t __element_count, 12329: size_t __element_size, __cxa_cdtor_type __constructor, 12329: __cxa_cdtor_type __destructor); 12329: 12329: __cxa_vec_ctor_return_type 12329: __cxa_vec_cctor(void* __dest_array, void* __src_array, 12329: size_t __element_count, size_t __element_size, 12329: __cxa_cdtor_return_type (*__constructor) (void*, void*), 12329: __cxa_cdtor_type __destructor); 12329: 12329: 12329: void 12329: __cxa_vec_dtor(void* __array_address, size_t __element_count, 12329: size_t __element_size, __cxa_cdtor_type __destructor); 12329: 12329: void 12329: __cxa_vec_cleanup(void* __array_address, size_t __element_count, size_t __s, 12329: __cxa_cdtor_type __destructor) noexcept; 12329: 12329: 12329: void 12329: __cxa_vec_delete(void* __array_address, size_t __element_size, 12329: size_t __padding_size, __cxa_cdtor_type __destructor); 12329: 12329: void 12329: __cxa_vec_delete2(void* __array_address, size_t __element_size, 12329: size_t __padding_size, __cxa_cdtor_type __destructor, 12329: void (*__dealloc) (void*)); 12329: 12329: void 12329: __cxa_vec_delete3(void* __array_address, size_t __element_size, 12329: size_t __padding_size, __cxa_cdtor_type __destructor, 12329: void (*__dealloc) (void*, size_t)); 12329: 12329: int 12329: __cxa_guard_acquire(__guard*); 12329: 12329: void 12329: __cxa_guard_release(__guard*) noexcept; 12329: 12329: void 12329: __cxa_guard_abort(__guard*) noexcept; 12329: 12329: 12329: int 12329: 12329: __cxa_atexit(void ( *)(void*), void*, void*) noexcept; 12329: 12329: 12329: 12329: 12329: void 12329: __cxa_finalize(void*); 12329: 12329: 12329: int 12329: 12329: __cxa_thread_atexit(void ( *)(void*), void*, void *) noexcept; 12329: 12329: 12329: 12329: 12329: 12329: void 12329: __cxa_pure_virtual(void) __attribute__ ((__noreturn__)); 12329: 12329: void 12329: __cxa_deleted_virtual(void) __attribute__ ((__noreturn__)); 12329: 12329: 12329: void 12329: __cxa_bad_cast() __attribute__((__noreturn__)); 12329: 12329: void 12329: __cxa_bad_typeid() __attribute__((__noreturn__)); 12329: 12329: void 12329: __cxa_throw_bad_array_new_length() __attribute__((__noreturn__)); 12329: # 203 "/usr/include/c++/12/cxxabi.h" 3 12329: char* 12329: __cxa_demangle(const char* __mangled_name, char* __output_buffer, 12329: size_t* __length, int* __status); 12329: 12329: 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace __cxxabiv1 12329: { 12329: 12329: class __fundamental_type_info : public std::type_info 12329: { 12329: public: 12329: explicit 12329: __fundamental_type_info(const char* __n) : std::type_info(__n) { } 12329: 12329: virtual 12329: ~__fundamental_type_info(); 12329: }; 12329: 12329: 12329: class __array_type_info : public std::type_info 12329: { 12329: public: 12329: explicit 12329: __array_type_info(const char* __n) : std::type_info(__n) { } 12329: 12329: virtual 12329: ~__array_type_info(); 12329: }; 12329: 12329: 12329: class __function_type_info : public std::type_info 12329: { 12329: public: 12329: explicit 12329: __function_type_info(const char* __n) : std::type_info(__n) { } 12329: 12329: virtual 12329: ~__function_type_info(); 12329: 12329: protected: 12329: 12329: virtual bool 12329: __is_function_p() const; 12329: }; 12329: 12329: 12329: class __enum_type_info : public std::type_info 12329: { 12329: public: 12329: explicit 12329: __enum_type_info(const char* __n) : std::type_info(__n) { } 12329: 12329: virtual 12329: ~__enum_type_info(); 12329: }; 12329: 12329: 12329: class __pbase_type_info : public std::type_info 12329: { 12329: public: 12329: unsigned int __flags; 12329: const std::type_info* __pointee; 12329: 12329: explicit 12329: __pbase_type_info(const char* __n, int __quals, 12329: const std::type_info* __type) 12329: : std::type_info(__n), __flags(__quals), __pointee(__type) 12329: { } 12329: 12329: virtual 12329: ~__pbase_type_info(); 12329: 12329: 12329: enum __masks 12329: { 12329: __const_mask = 0x1, 12329: __volatile_mask = 0x2, 12329: __restrict_mask = 0x4, 12329: __incomplete_mask = 0x8, 12329: __incomplete_class_mask = 0x10, 12329: __transaction_safe_mask = 0x20, 12329: __noexcept_mask = 0x40 12329: }; 12329: 12329: protected: 12329: __pbase_type_info(const __pbase_type_info&); 12329: 12329: __pbase_type_info& 12329: operator=(const __pbase_type_info&); 12329: 12329: 12329: virtual bool 12329: __do_catch(const std::type_info* __thr_type, void** __thr_obj, 12329: unsigned int __outer) const; 12329: 12329: inline virtual bool 12329: __pointer_catch(const __pbase_type_info* __thr_type, void** __thr_obj, 12329: unsigned __outer) const; 12329: }; 12329: 12329: inline bool __pbase_type_info:: 12329: __pointer_catch (const __pbase_type_info *thrown_type, 12329: void **thr_obj, 12329: unsigned outer) const 12329: { 12329: return __pointee->__do_catch (thrown_type->__pointee, thr_obj, outer + 2); 12329: } 12329: 12329: 12329: class __pointer_type_info : public __pbase_type_info 12329: { 12329: public: 12329: explicit 12329: __pointer_type_info(const char* __n, int __quals, 12329: const std::type_info* __type) 12329: : __pbase_type_info (__n, __quals, __type) { } 12329: 12329: 12329: virtual 12329: ~__pointer_type_info(); 12329: 12329: protected: 12329: 12329: virtual bool 12329: __is_pointer_p() const; 12329: 12329: virtual bool 12329: __pointer_catch(const __pbase_type_info* __thr_type, void** __thr_obj, 12329: unsigned __outer) const; 12329: }; 12329: 12329: class __class_type_info; 12329: 12329: 12329: class __pointer_to_member_type_info : public __pbase_type_info 12329: { 12329: public: 12329: __class_type_info* __context; 12329: 12329: explicit 12329: __pointer_to_member_type_info(const char* __n, int __quals, 12329: const std::type_info* __type, 12329: __class_type_info* __klass) 12329: : __pbase_type_info(__n, __quals, __type), __context(__klass) { } 12329: 12329: virtual 12329: ~__pointer_to_member_type_info(); 12329: 12329: protected: 12329: __pointer_to_member_type_info(const __pointer_to_member_type_info&); 12329: 12329: __pointer_to_member_type_info& 12329: operator=(const __pointer_to_member_type_info&); 12329: 12329: 12329: virtual bool 12329: __pointer_catch(const __pbase_type_info* __thr_type, void** __thr_obj, 12329: unsigned __outer) const; 12329: }; 12329: 12329: 12329: class __base_class_type_info 12329: { 12329: public: 12329: const __class_type_info* __base_type; 12329: 12329: 12329: 12329: long __offset_flags; 12329: 12329: 12329: enum __offset_flags_masks 12329: { 12329: __virtual_mask = 0x1, 12329: __public_mask = 0x2, 12329: __hwm_bit = 2, 12329: __offset_shift = 8 12329: }; 12329: 12329: 12329: bool 12329: __is_virtual_p() const 12329: { return __offset_flags & __virtual_mask; } 12329: 12329: bool 12329: __is_public_p() const 12329: { return __offset_flags & __public_mask; } 12329: 12329: ptrdiff_t 12329: __offset() const 12329: { 12329: 12329: 12329: 12329: return static_cast(__offset_flags) >> __offset_shift; 12329: } 12329: }; 12329: 12329: 12329: class __class_type_info : public std::type_info 12329: { 12329: public: 12329: explicit 12329: __class_type_info (const char *__n) : type_info(__n) { } 12329: 12329: virtual 12329: ~__class_type_info (); 12329: 12329: 12329: 12329: 12329: 12329: 12329: enum __sub_kind 12329: { 12329: 12329: __unknown = 0, 12329: 12329: 12329: 12329: __not_contained, 12329: 12329: 12329: __contained_ambig, 12329: 12329: 12329: __contained_virtual_mask = __base_class_type_info::__virtual_mask, 12329: 12329: 12329: __contained_public_mask = __base_class_type_info::__public_mask, 12329: 12329: 12329: __contained_mask = 1 << __base_class_type_info::__hwm_bit, 12329: 12329: __contained_private = __contained_mask, 12329: __contained_public = __contained_mask | __contained_public_mask 12329: }; 12329: 12329: struct __upcast_result; 12329: struct __dyncast_result; 12329: 12329: protected: 12329: 12329: virtual bool 12329: __do_upcast(const __class_type_info* __dst_type, void**__obj_ptr) const; 12329: 12329: virtual bool 12329: __do_catch(const type_info* __thr_type, void** __thr_obj, 12329: unsigned __outer) const; 12329: 12329: public: 12329: 12329: 12329: virtual bool 12329: __do_upcast(const __class_type_info* __dst, const void* __obj, 12329: __upcast_result& __restrict __result) const; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: inline __sub_kind 12329: __find_public_src(ptrdiff_t __src2dst, const void* __obj_ptr, 12329: const __class_type_info* __src_type, 12329: const void* __src_ptr) const; 12329: # 486 "/usr/include/c++/12/cxxabi.h" 3 12329: virtual bool 12329: __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path, 12329: const __class_type_info* __dst_type, const void* __obj_ptr, 12329: const __class_type_info* __src_type, const void* __src_ptr, 12329: __dyncast_result& __result) const; 12329: 12329: 12329: 12329: 12329: 12329: virtual __sub_kind 12329: __do_find_public_src(ptrdiff_t __src2dst, const void* __obj_ptr, 12329: const __class_type_info* __src_type, 12329: const void* __src_ptr) const; 12329: }; 12329: 12329: 12329: class __si_class_type_info : public __class_type_info 12329: { 12329: public: 12329: const __class_type_info* __base_type; 12329: 12329: explicit 12329: __si_class_type_info(const char *__n, const __class_type_info *__base) 12329: : __class_type_info(__n), __base_type(__base) { } 12329: 12329: virtual 12329: ~__si_class_type_info(); 12329: 12329: protected: 12329: __si_class_type_info(const __si_class_type_info&); 12329: 12329: __si_class_type_info& 12329: operator=(const __si_class_type_info&); 12329: 12329: 12329: virtual bool 12329: __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path, 12329: const __class_type_info* __dst_type, const void* __obj_ptr, 12329: const __class_type_info* __src_type, const void* __src_ptr, 12329: __dyncast_result& __result) const; 12329: 12329: virtual __sub_kind 12329: __do_find_public_src(ptrdiff_t __src2dst, const void* __obj_ptr, 12329: const __class_type_info* __src_type, 12329: const void* __sub_ptr) const; 12329: 12329: virtual bool 12329: __do_upcast(const __class_type_info*__dst, const void*__obj, 12329: __upcast_result& __restrict __result) const; 12329: }; 12329: 12329: 12329: class __vmi_class_type_info : public __class_type_info 12329: { 12329: public: 12329: unsigned int __flags; 12329: unsigned int __base_count; 12329: 12329: 12329: 12329: 12329: __base_class_type_info __base_info[1]; 12329: 12329: explicit 12329: __vmi_class_type_info(const char* __n, int ___flags) 12329: : __class_type_info(__n), __flags(___flags), __base_count(0) { } 12329: 12329: virtual 12329: ~__vmi_class_type_info(); 12329: 12329: 12329: enum __flags_masks 12329: { 12329: __non_diamond_repeat_mask = 0x1, 12329: __diamond_shaped_mask = 0x2, 12329: __flags_unknown_mask = 0x10 12329: }; 12329: 12329: protected: 12329: 12329: virtual bool 12329: __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path, 12329: const __class_type_info* __dst_type, const void* __obj_ptr, 12329: const __class_type_info* __src_type, const void* __src_ptr, 12329: __dyncast_result& __result) const; 12329: 12329: virtual __sub_kind 12329: __do_find_public_src(ptrdiff_t __src2dst, const void* __obj_ptr, 12329: const __class_type_info* __src_type, 12329: const void* __src_ptr) const; 12329: 12329: virtual bool 12329: __do_upcast(const __class_type_info* __dst, const void* __obj, 12329: __upcast_result& __restrict __result) const; 12329: }; 12329: 12329: 12329: struct __cxa_exception; 12329: struct __cxa_refcounted_exception; 12329: struct __cxa_dependent_exception; 12329: struct __cxa_eh_globals; 12329: 12329: extern "C" 12329: { 12329: # 599 "/usr/include/c++/12/cxxabi.h" 3 12329: void* 12329: __dynamic_cast(const void* __src_ptr, 12329: const __class_type_info* __src_type, 12329: const __class_type_info* __dst_type, 12329: ptrdiff_t __src2dst); 12329: # 612 "/usr/include/c++/12/cxxabi.h" 3 12329: __cxa_eh_globals* 12329: __cxa_get_globals() noexcept __attribute__ ((__const__)); 12329: 12329: __cxa_eh_globals* 12329: __cxa_get_globals_fast() noexcept __attribute__ ((__const__)); 12329: 12329: 12329: void 12329: __cxa_free_exception(void*) noexcept; 12329: 12329: 12329: void 12329: __cxa_throw(void*, std::type_info*, void ( *) (void *)) 12329: __attribute__((__noreturn__)); 12329: 12329: 12329: void* 12329: __cxa_get_exception_ptr(void*) noexcept __attribute__ ((__pure__)); 12329: 12329: void* 12329: __cxa_begin_catch(void*) noexcept; 12329: 12329: void 12329: __cxa_end_catch(); 12329: 12329: void 12329: __cxa_rethrow() __attribute__((__noreturn__)); 12329: 12329: 12329: 12329: std::type_info* 12329: __cxa_current_exception_type() noexcept __attribute__ ((__pure__)); 12329: 12329: 12329: 12329: 12329: __cxa_dependent_exception* 12329: __cxa_allocate_dependent_exception() noexcept; 12329: 12329: 12329: void 12329: __cxa_free_dependent_exception(__cxa_dependent_exception*) noexcept; 12329: 12329: } 12329: 12329: 12329: 12329: class __foreign_exception 12329: { 12329: virtual ~__foreign_exception() throw(); 12329: virtual void __pure_dummy() = 0; 12329: }; 12329: 12329: } 12329: # 687 "/usr/include/c++/12/cxxabi.h" 3 12329: namespace abi = __cxxabiv1; 12329: 12329: namespace __gnu_cxx 12329: { 12329: # 704 "/usr/include/c++/12/cxxabi.h" 3 12329: class recursive_init_error: public std::exception 12329: { 12329: public: 12329: recursive_init_error() noexcept; 12329: virtual ~recursive_init_error() noexcept; 12329: }; 12329: } 12329: 12329: 12329: #pragma GCC visibility pop 12329: # 33 "/usr/include/boost/core/demangle.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/cstdlib" 1 3 4 12329: # 39 "/usr/include/c++/12/cstdlib" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cstdlib" 3 12329: # 40 "/usr/include/boost/core/demangle.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: namespace core 12329: { 12329: 12329: inline char const * demangle_alloc( char const * name ) noexcept; 12329: inline void demangle_free( char const * name ) noexcept; 12329: 12329: class scoped_demangled_name 12329: { 12329: private: 12329: char const * m_p; 12329: 12329: public: 12329: explicit scoped_demangled_name( char const * name ) noexcept : 12329: m_p( demangle_alloc( name ) ) 12329: { 12329: } 12329: 12329: ~scoped_demangled_name() noexcept 12329: { 12329: demangle_free( m_p ); 12329: } 12329: 12329: char const * get() const noexcept 12329: { 12329: return m_p; 12329: } 12329: 12329: scoped_demangled_name( scoped_demangled_name const& ) = delete; 12329: scoped_demangled_name& operator= ( scoped_demangled_name const& ) = delete; 12329: }; 12329: 12329: 12329: 12329: 12329: inline char const * demangle_alloc( char const * name ) noexcept 12329: { 12329: int status = 0; 12329: std::size_t size = 0; 12329: return abi::__cxa_demangle( name, __null, &size, &status ); 12329: } 12329: 12329: inline void demangle_free( char const * name ) noexcept 12329: { 12329: std::free( const_cast< char* >( name ) ); 12329: } 12329: 12329: inline std::string demangle( char const * name ) 12329: { 12329: scoped_demangled_name demangled_name( name ); 12329: char const * p = demangled_name.get(); 12329: if( !p ) 12329: p = name; 12329: return p; 12329: } 12329: # 120 "/usr/include/boost/core/demangle.hpp" 3 4 12329: } 12329: 12329: } 12329: # 35 "/usr/include/boost/type_index/stl_type_index.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/conditional.hpp" 1 3 4 12329: # 14 "/usr/include/boost/type_traits/conditional.hpp" 3 4 12329: namespace boost { 12329: 12329: template struct conditional { typedef T type; }; 12329: template struct conditional { typedef U type; }; 12329: 12329: 12329: 12329: template using conditional_t = typename conditional::type; 12329: 12329: 12329: 12329: } 12329: # 36 "/usr/include/boost/type_index/stl_type_index.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_const.hpp" 1 3 4 12329: # 25 "/usr/include/boost/type_traits/is_const.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/integral_constant.hpp" 1 3 4 12329: # 31 "/usr/include/boost/type_traits/integral_constant.hpp" 3 4 12329: namespace mpl_{ 12329: 12329: template struct bool_; 12329: template struct integral_c; 12329: struct integral_c_tag; 12329: } 12329: 12329: namespace boost 12329: { 12329: namespace mpl 12329: { 12329: using ::mpl_::bool_; 12329: using ::mpl_::integral_c; 12329: using ::mpl_::integral_c_tag; 12329: } 12329: } 12329: 12329: 12329: 12329: namespace boost{ 12329: 12329: template 12329: struct integral_constant 12329: { 12329: typedef mpl::integral_c_tag tag; 12329: typedef T value_type; 12329: typedef integral_constant type; 12329: static const T value = val; 12329: 12329: operator const mpl::integral_c& ()const 12329: { 12329: static const char data[sizeof(long)] = { 0 }; 12329: static const void* pdata = data; 12329: return *(reinterpret_cast*>(pdata)); 12329: } 12329: constexpr operator T()const { return val; } 12329: }; 12329: 12329: template 12329: T const integral_constant::value; 12329: 12329: template 12329: struct integral_constant 12329: { 12329: typedef mpl::integral_c_tag tag; 12329: typedef bool value_type; 12329: typedef integral_constant type; 12329: static const bool value = val; 12329: 12329: operator const mpl::bool_& ()const 12329: { 12329: static const char data[sizeof(long)] = { 0 }; 12329: static const void* pdata = data; 12329: return *(reinterpret_cast*>(pdata)); 12329: } 12329: constexpr operator bool()const { return val; } 12329: }; 12329: 12329: template 12329: bool const integral_constant::value; 12329: 12329: typedef integral_constant true_type; 12329: typedef integral_constant false_type; 12329: 12329: } 12329: # 26 "/usr/include/boost/type_traits/is_const.hpp" 2 3 4 12329: 12329: namespace boost { 12329: # 36 "/usr/include/boost/type_traits/is_const.hpp" 3 4 12329: template 12329: struct is_const : public false_type {}; 12329: template struct is_const : public true_type{}; 12329: template struct is_const : public true_type{}; 12329: template struct is_const : public true_type{}; 12329: 12329: 12329: 12329: } 12329: # 37 "/usr/include/boost/type_index/stl_type_index.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_reference.hpp" 1 3 4 12329: # 15 "/usr/include/boost/type_traits/is_reference.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_lvalue_reference.hpp" 1 3 4 12329: # 26 "/usr/include/boost/type_traits/is_lvalue_reference.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: 12329: 12329: 12329: template struct is_lvalue_reference : public false_type{}; 12329: template struct is_lvalue_reference : public true_type{}; 12329: # 47 "/usr/include/boost/type_traits/is_lvalue_reference.hpp" 3 4 12329: } 12329: # 16 "/usr/include/boost/type_traits/is_reference.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_rvalue_reference.hpp" 1 3 4 12329: # 15 "/usr/include/boost/type_traits/is_rvalue_reference.hpp" 3 4 12329: namespace boost { 12329: 12329: template struct is_rvalue_reference : public false_type {}; 12329: 12329: template struct is_rvalue_reference : public true_type {}; 12329: 12329: 12329: } 12329: # 17 "/usr/include/boost/type_traits/is_reference.hpp" 2 3 4 12329: 12329: namespace boost { 12329: 12329: template struct is_reference 12329: : public 12329: integral_constant< 12329: bool, 12329: ::boost::is_lvalue_reference::value || ::boost::is_rvalue_reference::value> 12329: {}; 12329: 12329: } 12329: # 38 "/usr/include/boost/type_index/stl_type_index.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_volatile.hpp" 1 3 4 12329: # 27 "/usr/include/boost/type_traits/is_volatile.hpp" 3 4 12329: namespace boost { 12329: # 36 "/usr/include/boost/type_traits/is_volatile.hpp" 3 4 12329: template 12329: struct is_volatile : public false_type {}; 12329: template struct is_volatile : public true_type{}; 12329: template struct is_volatile : public true_type{}; 12329: template struct is_volatile : public true_type{}; 12329: 12329: 12329: 12329: } 12329: # 39 "/usr/include/boost/type_index/stl_type_index.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/remove_cv.hpp" 1 3 4 12329: # 18 "/usr/include/boost/type_traits/remove_cv.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: template struct remove_cv{ typedef T type; }; 12329: template struct remove_cv{ typedef T type; }; 12329: template struct remove_cv{ typedef T type; }; 12329: template struct remove_cv{ typedef T type; }; 12329: 12329: 12329: template struct remove_cv{ typedef T type[N]; }; 12329: template struct remove_cv{ typedef T type[N]; }; 12329: template struct remove_cv{ typedef T type[N]; }; 12329: 12329: template struct remove_cv{ typedef T type[]; }; 12329: template struct remove_cv{ typedef T type[]; }; 12329: template struct remove_cv{ typedef T type[]; }; 12329: 12329: 12329: 12329: 12329: 12329: template using remove_cv_t = typename remove_cv::type; 12329: 12329: 12329: 12329: } 12329: # 40 "/usr/include/boost/type_index/stl_type_index.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/remove_reference.hpp" 1 3 4 12329: # 15 "/usr/include/boost/type_traits/remove_reference.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: namespace detail{ 12329: 12329: 12329: 12329: 12329: template 12329: struct remove_rvalue_ref 12329: { 12329: typedef T type; 12329: }; 12329: 12329: template 12329: struct remove_rvalue_ref 12329: { 12329: typedef T type; 12329: }; 12329: 12329: 12329: } 12329: 12329: template struct remove_reference{ typedef typename boost::detail::remove_rvalue_ref::type type; }; 12329: template struct remove_reference{ typedef T type; }; 12329: # 53 "/usr/include/boost/type_traits/remove_reference.hpp" 3 4 12329: template using remove_reference_t = typename remove_reference::type; 12329: 12329: 12329: 12329: } 12329: # 41 "/usr/include/boost/type_index/stl_type_index.hpp" 2 3 4 12329: # 58 "/usr/include/boost/type_index/stl_type_index.hpp" 3 4 12329: 12329: 12329: 12329: namespace boost { namespace typeindex { 12329: 12329: 12329: 12329: 12329: 12329: 12329: class stl_type_index 12329: : public type_index_facade< 12329: stl_type_index, 12329: 12329: 12329: 12329: std::type_info 12329: 12329: > 12329: { 12329: public: 12329: 12329: 12329: 12329: typedef std::type_info type_info_t; 12329: 12329: 12329: private: 12329: const type_info_t* data_; 12329: 12329: public: 12329: inline stl_type_index() noexcept 12329: : data_(&typeid(void)) 12329: {} 12329: 12329: inline stl_type_index(const type_info_t& data) noexcept 12329: : data_(&data) 12329: {} 12329: 12329: inline const type_info_t& type_info() const noexcept; 12329: 12329: inline const char* raw_name() const noexcept; 12329: inline const char* name() const noexcept; 12329: inline std::string pretty_name() const; 12329: 12329: inline std::size_t hash_code() const noexcept; 12329: inline bool equal(const stl_type_index& rhs) const noexcept; 12329: inline bool before(const stl_type_index& rhs) const noexcept; 12329: 12329: template 12329: inline static stl_type_index type_id() noexcept; 12329: 12329: template 12329: inline static stl_type_index type_id_with_cvr() noexcept; 12329: 12329: template 12329: inline static stl_type_index type_id_runtime(const T& value) noexcept; 12329: }; 12329: 12329: inline const stl_type_index::type_info_t& stl_type_index::type_info() const noexcept { 12329: return *data_; 12329: } 12329: 12329: 12329: inline const char* stl_type_index::raw_name() const noexcept { 12329: 12329: 12329: 12329: return data_->name(); 12329: 12329: } 12329: 12329: inline const char* stl_type_index::name() const noexcept { 12329: return data_->name(); 12329: } 12329: 12329: inline std::string stl_type_index::pretty_name() const { 12329: static const char cvr_saver_name[] = "boost::typeindex::detail::cvr_saver<"; 12329: static constexpr std::string::size_type cvr_saver_name_len = sizeof(cvr_saver_name) - 1; 12329: 12329: 12329: 12329: const boost::core::scoped_demangled_name demangled_name(data_->name()); 12329: 12329: const char* begin = demangled_name.get(); 12329: if (!begin) { 12329: boost::throw_exception(std::runtime_error("Type name demangling failed")); 12329: } 12329: 12329: const std::string::size_type len = std::strlen(begin); 12329: const char* end = begin + len; 12329: 12329: if (len > cvr_saver_name_len) { 12329: const char* b = std::strstr(begin, cvr_saver_name); 12329: if (b) { 12329: b += cvr_saver_name_len; 12329: 12329: 12329: while (*b == ' ') { 12329: ++ b; 12329: } 12329: 12329: 12329: const char* e = end - 1; 12329: while (e > b && *e != '>') { 12329: -- e; 12329: } 12329: 12329: 12329: while (e > b && *(e - 1) == ' ') { 12329: -- e; 12329: } 12329: 12329: if (b < e) { 12329: 12329: begin = b; 12329: end = e; 12329: } 12329: } 12329: } 12329: 12329: return std::string(begin, end); 12329: } 12329: 12329: 12329: inline std::size_t stl_type_index::hash_code() const noexcept { 12329: 12329: return data_->hash_code(); 12329: 12329: 12329: 12329: } 12329: # 206 "/usr/include/boost/type_index/stl_type_index.hpp" 3 4 12329: inline bool stl_type_index::equal(const stl_type_index& rhs) const noexcept { 12329: 12329: 12329: 12329: return !!(*data_ == *rhs.data_); 12329: 12329: } 12329: 12329: inline bool stl_type_index::before(const stl_type_index& rhs) const noexcept { 12329: 12329: 12329: 12329: return !!data_->before(*rhs.data_); 12329: 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: inline stl_type_index stl_type_index::type_id() noexcept { 12329: typedef typename boost::remove_reference::type no_ref_t; 12329: typedef typename boost::remove_cv::type no_cvr_prefinal_t; 12329: # 243 "/usr/include/boost/type_index/stl_type_index.hpp" 3 4 12329: typedef no_cvr_prefinal_t no_cvr_t; 12329: 12329: 12329: return typeid(no_cvr_t); 12329: } 12329: 12329: namespace detail { 12329: template class cvr_saver{}; 12329: } 12329: 12329: template 12329: inline stl_type_index stl_type_index::type_id_with_cvr() noexcept { 12329: typedef typename boost::conditional< 12329: boost::is_reference::value || boost::is_const::value || boost::is_volatile::value, 12329: detail::cvr_saver, 12329: T 12329: >::type type; 12329: 12329: return typeid(type); 12329: } 12329: 12329: 12329: template 12329: inline stl_type_index stl_type_index::type_id_runtime(const T& value) noexcept { 12329: 12329: 12329: 12329: return typeid(value); 12329: 12329: } 12329: 12329: }} 12329: # 30 "/usr/include/boost/type_index.hpp" 2 3 4 12329: # 52 "/usr/include/boost/type_index.hpp" 3 4 12329: namespace boost { namespace typeindex { 12329: # 132 "/usr/include/boost/type_index.hpp" 3 4 12329: typedef boost::typeindex::stl_type_index type_index; 12329: # 144 "/usr/include/boost/type_index.hpp" 3 4 12329: typedef type_index::type_info_t type_info; 12329: # 210 "/usr/include/boost/type_index.hpp" 3 4 12329: template 12329: inline type_index type_id() noexcept { 12329: return type_index::type_id(); 12329: } 12329: # 230 "/usr/include/boost/type_index.hpp" 3 4 12329: template 12329: inline type_index type_id_with_cvr() noexcept { 12329: return type_index::type_id_with_cvr(); 12329: } 12329: # 255 "/usr/include/boost/type_index.hpp" 3 4 12329: template 12329: inline type_index type_id_runtime(const T& runtime_val) noexcept { 12329: return type_index::type_id_runtime(runtime_val); 12329: } 12329: 12329: }} 12329: # 19 "/usr/include/boost/any.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/type_traits/decay.hpp" 1 3 4 12329: # 12 "/usr/include/boost/type_traits/decay.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_array.hpp" 1 3 4 12329: # 20 "/usr/include/boost/type_traits/is_array.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: 12329: 12329: template struct is_array : public false_type {}; 12329: 12329: template struct is_array : public true_type {}; 12329: template struct is_array : public true_type{}; 12329: template struct is_array : public true_type{}; 12329: template struct is_array : public true_type{}; 12329: 12329: template struct is_array : public true_type{}; 12329: template struct is_array : public true_type{}; 12329: template struct is_array : public true_type{}; 12329: template struct is_array : public true_type{}; 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 13 "/usr/include/boost/type_traits/decay.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_function.hpp" 1 3 4 12329: # 14 "/usr/include/boost/type_traits/is_function.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/detail/config.hpp" 1 3 4 12329: # 15 "/usr/include/boost/type_traits/is_function.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/detail/is_function_cxx_11.hpp" 1 3 4 12329: # 16 "/usr/include/boost/type_traits/detail/is_function_cxx_11.hpp" 3 4 12329: namespace boost { 12329: 12329: template 12329: struct is_function : public false_type {}; 12329: # 35 "/usr/include/boost/type_traits/detail/is_function_cxx_11.hpp" 3 4 12329: template 12329: struct is_function : public true_type {}; 12329: template 12329: struct is_function : public true_type {}; 12329: 12329: template 12329: struct is_function : public true_type {}; 12329: template 12329: struct is_function : public true_type {}; 12329: 12329: template 12329: struct is_function : public true_type {}; 12329: template 12329: struct is_function : public true_type {}; 12329: 12329: template 12329: struct is_function : public true_type {}; 12329: template 12329: struct is_function : public true_type {}; 12329: 12329: 12329: 12329: template 12329: struct is_function : public true_type {}; 12329: template 12329: struct is_function : public true_type {}; 12329: 12329: template 12329: struct is_function : public true_type {}; 12329: template 12329: struct is_function : public true_type {}; 12329: 12329: template 12329: struct is_function : public true_type {}; 12329: template 12329: struct is_function : public true_type {}; 12329: 12329: template 12329: struct is_function : public true_type {}; 12329: template 12329: struct is_function : public true_type {}; 12329: 12329: 12329: 12329: template 12329: struct is_function : public true_type {}; 12329: template 12329: struct is_function : public true_type {}; 12329: 12329: template 12329: struct is_function : public true_type {}; 12329: template 12329: struct is_function : public true_type {}; 12329: 12329: template 12329: struct is_function : public true_type {}; 12329: template 12329: struct is_function : public true_type {}; 12329: 12329: template 12329: struct is_function : public true_type {}; 12329: template 12329: struct is_function : public true_type {}; 12329: # 590 "/usr/include/boost/type_traits/detail/is_function_cxx_11.hpp" 3 4 12329: } 12329: # 20 "/usr/include/boost/type_traits/is_function.hpp" 2 3 4 12329: # 14 "/usr/include/boost/type_traits/decay.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/remove_bounds.hpp" 1 3 4 12329: # 12 "/usr/include/boost/type_traits/remove_bounds.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/remove_extent.hpp" 1 3 4 12329: # 16 "/usr/include/boost/type_traits/remove_extent.hpp" 3 4 12329: namespace boost { 12329: 12329: template struct remove_extent{ typedef T type; }; 12329: 12329: 12329: template struct remove_extent { typedef T type; }; 12329: template struct remove_extent { typedef T const type; }; 12329: template struct remove_extent { typedef T volatile type; }; 12329: template struct remove_extent { typedef T const volatile type; }; 12329: 12329: template struct remove_extent { typedef T type; }; 12329: template struct remove_extent { typedef T const type; }; 12329: template struct remove_extent { typedef T volatile type; }; 12329: template struct remove_extent { typedef T const volatile type; }; 12329: 12329: 12329: 12329: 12329: 12329: template using remove_extent_t = typename remove_extent::type; 12329: 12329: 12329: 12329: } 12329: # 13 "/usr/include/boost/type_traits/remove_bounds.hpp" 2 3 4 12329: 12329: namespace boost 12329: { 12329: 12329: template struct remove_bounds : public remove_extent {}; 12329: 12329: 12329: 12329: template using remove_bounds_t = typename remove_bounds::type; 12329: 12329: 12329: 12329: 12329: } 12329: # 15 "/usr/include/boost/type_traits/decay.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/add_pointer.hpp" 1 3 4 12329: # 14 "/usr/include/boost/type_traits/add_pointer.hpp" 3 4 12329: namespace boost { 12329: # 50 "/usr/include/boost/type_traits/add_pointer.hpp" 3 4 12329: template 12329: struct add_pointer 12329: { 12329: typedef typename remove_reference::type no_ref_type; 12329: typedef no_ref_type* type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template using add_pointer_t = typename add_pointer::type; 12329: 12329: 12329: 12329: } 12329: # 16 "/usr/include/boost/type_traits/decay.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: template struct decay_imp { typedef typename remove_cv::type type; }; 12329: template struct decay_imp { typedef typename remove_bounds::type* type; }; 12329: template struct decay_imp { typedef T* type; }; 12329: 12329: } 12329: 12329: template< class T > 12329: struct decay 12329: { 12329: private: 12329: typedef typename remove_reference::type Ty; 12329: public: 12329: typedef typename boost::detail::decay_imp::value, boost::is_function::value>::type type; 12329: }; 12329: 12329: 12329: 12329: template using decay_t = typename decay::type; 12329: 12329: 12329: 12329: } 12329: # 21 "/usr/include/boost/any.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/type_traits/add_reference.hpp" 1 3 4 12329: # 15 "/usr/include/boost/type_traits/add_reference.hpp" 3 4 12329: namespace boost { 12329: 12329: namespace detail { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct add_reference_impl 12329: { 12329: typedef T& type; 12329: }; 12329: 12329: 12329: template 12329: struct add_reference_impl 12329: { 12329: typedef T&& type; 12329: }; 12329: 12329: 12329: } 12329: 12329: template struct add_reference 12329: { 12329: typedef typename boost::detail::add_reference_impl::type type; 12329: }; 12329: template struct add_reference 12329: { 12329: typedef T& type; 12329: }; 12329: 12329: 12329: template <> struct add_reference { typedef void type; }; 12329: 12329: template <> struct add_reference { typedef const void type; }; 12329: template <> struct add_reference { typedef const volatile void type; }; 12329: template <> struct add_reference { typedef volatile void type; }; 12329: 12329: 12329: 12329: 12329: template using add_reference_t = typename add_reference::type; 12329: 12329: 12329: 12329: 12329: } 12329: # 23 "/usr/include/boost/any.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/utility/enable_if.hpp" 1 3 4 12329: # 15 "/usr/include/boost/utility/enable_if.hpp" 3 4 12329: # 1 "/usr/include/boost/core/enable_if.hpp" 1 3 4 12329: # 24 "/usr/include/boost/core/enable_if.hpp" 3 4 12329: namespace boost 12329: { 12329: template 12329: struct enable_if_has_type 12329: { 12329: typedef R type; 12329: }; 12329: 12329: template 12329: struct enable_if_c { 12329: typedef T type; 12329: }; 12329: 12329: template 12329: struct enable_if_c {}; 12329: 12329: template 12329: struct enable_if : public enable_if_c {}; 12329: 12329: template 12329: struct lazy_enable_if_c { 12329: typedef typename T::type type; 12329: }; 12329: 12329: template 12329: struct lazy_enable_if_c {}; 12329: 12329: template 12329: struct lazy_enable_if : public lazy_enable_if_c {}; 12329: 12329: 12329: template 12329: struct disable_if_c { 12329: typedef T type; 12329: }; 12329: 12329: template 12329: struct disable_if_c {}; 12329: 12329: template 12329: struct disable_if : public disable_if_c {}; 12329: 12329: template 12329: struct lazy_disable_if_c { 12329: typedef typename T::type type; 12329: }; 12329: 12329: template 12329: struct lazy_disable_if_c {}; 12329: 12329: template 12329: struct lazy_disable_if : public lazy_disable_if_c {}; 12329: 12329: } 12329: # 16 "/usr/include/boost/utility/enable_if.hpp" 2 3 4 12329: # 28 "/usr/include/boost/any.hpp" 2 3 4 12329: # 1 "/usr/include/boost/core/addressof.hpp" 1 3 4 12329: # 34 "/usr/include/boost/core/addressof.hpp" 3 4 12329: namespace boost { 12329: 12329: template 12329: constexpr inline T* 12329: addressof(T& o) noexcept 12329: { 12329: return __builtin_addressof(o); 12329: } 12329: 12329: } 12329: # 266 "/usr/include/boost/core/addressof.hpp" 3 4 12329: namespace boost { 12329: 12329: template 12329: const T* addressof(const T&&) = delete; 12329: 12329: } 12329: # 29 "/usr/include/boost/any.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_same.hpp" 1 3 4 12329: # 26 "/usr/include/boost/type_traits/is_same.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: template struct is_same : public false_type {}; 12329: template struct is_same : public true_type {}; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 30 "/usr/include/boost/any.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: class any 12329: { 12329: public: 12329: 12329: constexpr any() noexcept 12329: : content(0) 12329: { 12329: } 12329: 12329: template 12329: any(const ValueType & value) 12329: : content(new holder< 12329: typename remove_cv::type>::type 12329: >(value)) 12329: { 12329: } 12329: 12329: any(const any & other) 12329: : content(other.content ? other.content->clone() : 0) 12329: { 12329: } 12329: 12329: 12329: 12329: any(any&& other) noexcept 12329: : content(other.content) 12329: { 12329: other.content = 0; 12329: } 12329: 12329: 12329: template 12329: any(ValueType&& value 12329: , typename boost::disable_if >::type* = 0 12329: , typename boost::disable_if >::type* = 0) 12329: : content(new holder< typename decay::type >(static_cast(value))) 12329: { 12329: } 12329: 12329: 12329: ~any() noexcept 12329: { 12329: delete content; 12329: } 12329: 12329: public: 12329: 12329: any & swap(any & rhs) noexcept 12329: { 12329: placeholder* tmp = content; 12329: content = rhs.content; 12329: rhs.content = tmp; 12329: return *this; 12329: } 12329: # 106 "/usr/include/boost/any.hpp" 3 4 12329: any & operator=(const any& rhs) 12329: { 12329: any(rhs).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: any & operator=(any&& rhs) noexcept 12329: { 12329: rhs.swap(*this); 12329: any().swap(rhs); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: any & operator=(ValueType&& rhs) 12329: { 12329: any(static_cast(rhs)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: public: 12329: 12329: bool empty() const noexcept 12329: { 12329: return !content; 12329: } 12329: 12329: void clear() noexcept 12329: { 12329: any().swap(*this); 12329: } 12329: 12329: const boost::typeindex::type_info& type() const noexcept 12329: { 12329: return content ? content->type() : boost::typeindex::type_id().type_info(); 12329: } 12329: 12329: 12329: private: 12329: 12329: 12329: 12329: 12329: class __attribute__((__visibility__("default"))) placeholder 12329: { 12329: public: 12329: 12329: virtual ~placeholder() 12329: { 12329: } 12329: 12329: public: 12329: 12329: virtual const boost::typeindex::type_info& type() const noexcept = 0; 12329: 12329: virtual placeholder * clone() const = 0; 12329: 12329: }; 12329: 12329: template 12329: class holder 12329: 12329: final 12329: 12329: : public placeholder 12329: { 12329: public: 12329: 12329: holder(const ValueType & value) 12329: : held(value) 12329: { 12329: } 12329: 12329: 12329: holder(ValueType&& value) 12329: : held(static_cast< ValueType&& >(value)) 12329: { 12329: } 12329: 12329: public: 12329: 12329: const boost::typeindex::type_info& type() const noexcept override 12329: { 12329: return boost::typeindex::type_id().type_info(); 12329: } 12329: 12329: placeholder * clone() const override 12329: { 12329: return new holder(held); 12329: } 12329: 12329: public: 12329: 12329: ValueType held; 12329: 12329: private: 12329: holder & operator=(const holder &); 12329: }; 12329: 12329: 12329: 12329: private: 12329: 12329: template 12329: friend ValueType * any_cast(any *) noexcept; 12329: 12329: template 12329: friend ValueType * unsafe_any_cast(any *) noexcept; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: placeholder * content; 12329: 12329: }; 12329: 12329: inline void swap(any & lhs, any & rhs) noexcept 12329: { 12329: lhs.swap(rhs); 12329: } 12329: 12329: class __attribute__((__visibility__("default"))) bad_any_cast : 12329: 12329: public std::bad_cast 12329: 12329: 12329: 12329: { 12329: public: 12329: const char * what() const noexcept override 12329: { 12329: return "boost::bad_any_cast: " 12329: "failed conversion using boost::any_cast"; 12329: } 12329: }; 12329: 12329: template 12329: ValueType * any_cast(any * operand) noexcept 12329: { 12329: return operand && operand->type() == boost::typeindex::type_id() 12329: ? boost::addressof( 12329: static_cast::type> *>(operand->content)->held 12329: ) 12329: : 0; 12329: } 12329: 12329: template 12329: inline const ValueType * any_cast(const any * operand) noexcept 12329: { 12329: return any_cast(const_cast(operand)); 12329: } 12329: 12329: template 12329: ValueType any_cast(any & operand) 12329: { 12329: typedef typename remove_reference::type nonref; 12329: 12329: 12329: nonref * result = any_cast(boost::addressof(operand)); 12329: if(!result) 12329: boost::throw_exception(bad_any_cast()); 12329: 12329: 12329: 12329: 12329: 12329: typedef typename boost::conditional< 12329: boost::is_reference::value, 12329: ValueType, 12329: typename boost::add_reference::type 12329: >::type ref_type; 12329: 12329: 12329: 12329: 12329: 12329: return static_cast(*result); 12329: 12329: 12329: 12329: } 12329: 12329: template 12329: inline ValueType any_cast(const any & operand) 12329: { 12329: typedef typename remove_reference::type nonref; 12329: return any_cast(const_cast(operand)); 12329: } 12329: 12329: 12329: template 12329: inline ValueType any_cast(any&& operand) 12329: { 12329: static_assert(boost::is_rvalue_reference::value || boost::is_const< typename boost::remove_reference::type >::value, "boost::any_cast shall not be used for getting nonconst references to temporary objects") 12329: 12329: 12329: 12329: ; 12329: return any_cast(operand); 12329: } 12329: # 320 "/usr/include/boost/any.hpp" 3 4 12329: template 12329: inline ValueType * unsafe_any_cast(any * operand) noexcept 12329: { 12329: return boost::addressof( 12329: static_cast *>(operand->content)->held 12329: ); 12329: } 12329: 12329: template 12329: inline const ValueType * unsafe_any_cast(const any * operand) noexcept 12329: { 12329: return unsafe_any_cast(const_cast(operand)); 12329: } 12329: } 12329: # 13 "/usr/include/boost/program_options/value_semantic.hpp" 2 3 4 12329: # 1 "/usr/include/boost/function/function1.hpp" 1 3 4 12329: # 11 "/usr/include/boost/function/function1.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4 12329: # 22 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4 12329: # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4 12329: # 13 "/usr/include/boost/function/function_template.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/prologue.hpp" 1 3 4 12329: # 12 "/usr/include/boost/function/detail/prologue.hpp" 3 4 12329: # 1 "/usr/include/c++/12/cassert" 1 3 4 12329: # 41 "/usr/include/c++/12/cassert" 3 4 12329: 12329: # 42 "/usr/include/c++/12/cassert" 3 12329: 12329: 12329: # 1 "/usr/include/assert.h" 1 3 4 12329: # 45 "/usr/include/c++/12/cassert" 2 3 12329: # 13 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4 12329: # 1 "/usr/include/c++/12/algorithm" 1 3 4 12329: # 58 "/usr/include/c++/12/algorithm" 3 4 12329: 12329: # 59 "/usr/include/c++/12/algorithm" 3 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/stl_algo.h" 1 3 12329: # 59 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: # 1 "/usr/include/c++/12/bits/algorithmfwd.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/algorithmfwd.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/algorithmfwd.h" 3 12329: # 42 "/usr/include/c++/12/bits/algorithmfwd.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 199 "/usr/include/c++/12/bits/algorithmfwd.h" 3 12329: template 12329: 12329: bool 12329: all_of(_IIter, _IIter, _Predicate); 12329: 12329: template 12329: 12329: bool 12329: any_of(_IIter, _IIter, _Predicate); 12329: 12329: 12329: template 12329: 12329: bool 12329: binary_search(_FIter, _FIter, const _Tp&); 12329: 12329: template 12329: 12329: bool 12329: binary_search(_FIter, _FIter, const _Tp&, _Compare); 12329: # 232 "/usr/include/c++/12/bits/algorithmfwd.h" 3 12329: template 12329: 12329: _OIter 12329: copy(_IIter, _IIter, _OIter); 12329: 12329: template 12329: 12329: _BIter2 12329: copy_backward(_BIter1, _BIter1, _BIter2); 12329: 12329: 12329: template 12329: 12329: _OIter 12329: copy_if(_IIter, _IIter, _OIter, _Predicate); 12329: 12329: template 12329: 12329: _OIter 12329: copy_n(_IIter, _Size, _OIter); 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: pair<_FIter, _FIter> 12329: equal_range(_FIter, _FIter, const _Tp&); 12329: 12329: template 12329: 12329: pair<_FIter, _FIter> 12329: equal_range(_FIter, _FIter, const _Tp&, _Compare); 12329: 12329: template 12329: 12329: void 12329: fill(_FIter, _FIter, const _Tp&); 12329: 12329: template 12329: 12329: _OIter 12329: fill_n(_OIter, _Size, const _Tp&); 12329: 12329: 12329: 12329: template 12329: 12329: _FIter1 12329: find_end(_FIter1, _FIter1, _FIter2, _FIter2); 12329: 12329: template 12329: 12329: _FIter1 12329: find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: _IIter 12329: find_if_not(_IIter, _IIter, _Predicate); 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: bool 12329: includes(_IIter1, _IIter1, _IIter2, _IIter2); 12329: 12329: template 12329: 12329: bool 12329: includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 12329: 12329: template 12329: void 12329: inplace_merge(_BIter, _BIter, _BIter); 12329: 12329: template 12329: void 12329: inplace_merge(_BIter, _BIter, _BIter, _Compare); 12329: 12329: 12329: template 12329: 12329: bool 12329: is_heap(_RAIter, _RAIter); 12329: 12329: template 12329: 12329: bool 12329: is_heap(_RAIter, _RAIter, _Compare); 12329: 12329: template 12329: 12329: _RAIter 12329: is_heap_until(_RAIter, _RAIter); 12329: 12329: template 12329: 12329: _RAIter 12329: is_heap_until(_RAIter, _RAIter, _Compare); 12329: 12329: template 12329: 12329: bool 12329: is_partitioned(_IIter, _IIter, _Predicate); 12329: 12329: template 12329: 12329: bool 12329: is_permutation(_FIter1, _FIter1, _FIter2); 12329: 12329: template 12329: 12329: bool 12329: is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate); 12329: 12329: template 12329: 12329: bool 12329: is_sorted(_FIter, _FIter); 12329: 12329: template 12329: 12329: bool 12329: is_sorted(_FIter, _FIter, _Compare); 12329: 12329: template 12329: 12329: _FIter 12329: is_sorted_until(_FIter, _FIter); 12329: 12329: template 12329: 12329: _FIter 12329: is_sorted_until(_FIter, _FIter, _Compare); 12329: 12329: 12329: template 12329: 12329: void 12329: iter_swap(_FIter1, _FIter2); 12329: 12329: template 12329: 12329: _FIter 12329: lower_bound(_FIter, _FIter, const _Tp&); 12329: 12329: template 12329: 12329: _FIter 12329: lower_bound(_FIter, _FIter, const _Tp&, _Compare); 12329: 12329: template 12329: 12329: void 12329: make_heap(_RAIter, _RAIter); 12329: 12329: template 12329: 12329: void 12329: make_heap(_RAIter, _RAIter, _Compare); 12329: 12329: template 12329: constexpr 12329: const _Tp& 12329: max(const _Tp&, const _Tp&); 12329: 12329: template 12329: constexpr 12329: const _Tp& 12329: max(const _Tp&, const _Tp&, _Compare); 12329: 12329: 12329: 12329: 12329: template 12329: constexpr 12329: const _Tp& 12329: min(const _Tp&, const _Tp&); 12329: 12329: template 12329: constexpr 12329: const _Tp& 12329: min(const _Tp&, const _Tp&, _Compare); 12329: 12329: 12329: 12329: 12329: template 12329: constexpr 12329: pair 12329: minmax(const _Tp&, const _Tp&); 12329: 12329: template 12329: constexpr 12329: pair 12329: minmax(const _Tp&, const _Tp&, _Compare); 12329: 12329: template 12329: constexpr 12329: pair<_FIter, _FIter> 12329: minmax_element(_FIter, _FIter); 12329: 12329: template 12329: constexpr 12329: pair<_FIter, _FIter> 12329: minmax_element(_FIter, _FIter, _Compare); 12329: 12329: template 12329: constexpr 12329: _Tp 12329: min(initializer_list<_Tp>); 12329: 12329: template 12329: constexpr 12329: _Tp 12329: min(initializer_list<_Tp>, _Compare); 12329: 12329: template 12329: constexpr 12329: _Tp 12329: max(initializer_list<_Tp>); 12329: 12329: template 12329: constexpr 12329: _Tp 12329: max(initializer_list<_Tp>, _Compare); 12329: 12329: template 12329: constexpr 12329: pair<_Tp, _Tp> 12329: minmax(initializer_list<_Tp>); 12329: 12329: template 12329: constexpr 12329: pair<_Tp, _Tp> 12329: minmax(initializer_list<_Tp>, _Compare); 12329: 12329: 12329: 12329: 12329: template 12329: 12329: bool 12329: next_permutation(_BIter, _BIter); 12329: 12329: template 12329: 12329: bool 12329: next_permutation(_BIter, _BIter, _Compare); 12329: 12329: 12329: template 12329: 12329: bool 12329: none_of(_IIter, _IIter, _Predicate); 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: _RAIter 12329: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); 12329: 12329: template 12329: 12329: _RAIter 12329: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); 12329: 12329: 12329: 12329: 12329: template 12329: 12329: pair<_OIter1, _OIter2> 12329: partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate); 12329: 12329: template 12329: 12329: _FIter 12329: partition_point(_FIter, _FIter, _Predicate); 12329: 12329: 12329: template 12329: 12329: void 12329: pop_heap(_RAIter, _RAIter); 12329: 12329: template 12329: 12329: void 12329: pop_heap(_RAIter, _RAIter, _Compare); 12329: 12329: template 12329: 12329: bool 12329: prev_permutation(_BIter, _BIter); 12329: 12329: template 12329: 12329: bool 12329: prev_permutation(_BIter, _BIter, _Compare); 12329: 12329: template 12329: 12329: void 12329: push_heap(_RAIter, _RAIter); 12329: 12329: template 12329: 12329: void 12329: push_heap(_RAIter, _RAIter, _Compare); 12329: 12329: 12329: 12329: template 12329: 12329: _FIter 12329: remove(_FIter, _FIter, const _Tp&); 12329: 12329: template 12329: 12329: _FIter 12329: remove_if(_FIter, _FIter, _Predicate); 12329: 12329: template 12329: 12329: _OIter 12329: remove_copy(_IIter, _IIter, _OIter, const _Tp&); 12329: 12329: template 12329: 12329: _OIter 12329: remove_copy_if(_IIter, _IIter, _OIter, _Predicate); 12329: 12329: 12329: 12329: template 12329: 12329: _OIter 12329: replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); 12329: 12329: template 12329: 12329: _OIter 12329: replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); 12329: 12329: 12329: 12329: template 12329: 12329: void 12329: reverse(_BIter, _BIter); 12329: 12329: template 12329: 12329: _OIter 12329: reverse_copy(_BIter, _BIter, _OIter); 12329: 12329: inline namespace _V2 12329: { 12329: template 12329: 12329: _FIter 12329: rotate(_FIter, _FIter, _FIter); 12329: } 12329: 12329: template 12329: 12329: _OIter 12329: rotate_copy(_FIter, _FIter, _FIter, _OIter); 12329: # 625 "/usr/include/c++/12/bits/algorithmfwd.h" 3 12329: template 12329: void 12329: shuffle(_RAIter, _RAIter, _UGenerator&&); 12329: 12329: 12329: template 12329: 12329: void 12329: sort_heap(_RAIter, _RAIter); 12329: 12329: template 12329: 12329: void 12329: sort_heap(_RAIter, _RAIter, _Compare); 12329: 12329: template 12329: _BIter 12329: stable_partition(_BIter, _BIter, _Predicate); 12329: # 658 "/usr/include/c++/12/bits/algorithmfwd.h" 3 12329: template 12329: 12329: _FIter2 12329: swap_ranges(_FIter1, _FIter1, _FIter2); 12329: 12329: 12329: 12329: template 12329: 12329: _FIter 12329: unique(_FIter, _FIter); 12329: 12329: template 12329: 12329: _FIter 12329: unique(_FIter, _FIter, _BinaryPredicate); 12329: 12329: 12329: 12329: template 12329: 12329: _FIter 12329: upper_bound(_FIter, _FIter, const _Tp&); 12329: 12329: template 12329: 12329: _FIter 12329: upper_bound(_FIter, _FIter, const _Tp&, _Compare); 12329: 12329: 12329: 12329: template 12329: 12329: _FIter 12329: adjacent_find(_FIter, _FIter); 12329: 12329: template 12329: 12329: _FIter 12329: adjacent_find(_FIter, _FIter, _BinaryPredicate); 12329: 12329: template 12329: 12329: typename iterator_traits<_IIter>::difference_type 12329: count(_IIter, _IIter, const _Tp&); 12329: 12329: template 12329: 12329: typename iterator_traits<_IIter>::difference_type 12329: count_if(_IIter, _IIter, _Predicate); 12329: 12329: template 12329: 12329: bool 12329: equal(_IIter1, _IIter1, _IIter2); 12329: 12329: template 12329: 12329: bool 12329: equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 12329: 12329: template 12329: 12329: _IIter 12329: find(_IIter, _IIter, const _Tp&); 12329: 12329: template 12329: 12329: _FIter1 12329: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); 12329: 12329: template 12329: 12329: _FIter1 12329: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 12329: 12329: template 12329: 12329: _IIter 12329: find_if(_IIter, _IIter, _Predicate); 12329: 12329: template 12329: 12329: _Funct 12329: for_each(_IIter, _IIter, _Funct); 12329: 12329: template 12329: 12329: void 12329: generate(_FIter, _FIter, _Generator); 12329: 12329: template 12329: 12329: _OIter 12329: generate_n(_OIter, _Size, _Generator); 12329: 12329: template 12329: 12329: bool 12329: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); 12329: 12329: template 12329: 12329: bool 12329: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 12329: 12329: template 12329: constexpr 12329: _FIter 12329: max_element(_FIter, _FIter); 12329: 12329: template 12329: constexpr 12329: _FIter 12329: max_element(_FIter, _FIter, _Compare); 12329: 12329: template 12329: 12329: _OIter 12329: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 12329: 12329: template 12329: 12329: _OIter 12329: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 12329: 12329: template 12329: constexpr 12329: _FIter 12329: min_element(_FIter, _FIter); 12329: 12329: template 12329: constexpr 12329: _FIter 12329: min_element(_FIter, _FIter, _Compare); 12329: 12329: template 12329: 12329: pair<_IIter1, _IIter2> 12329: mismatch(_IIter1, _IIter1, _IIter2); 12329: 12329: template 12329: 12329: pair<_IIter1, _IIter2> 12329: mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 12329: 12329: template 12329: 12329: void 12329: nth_element(_RAIter, _RAIter, _RAIter); 12329: 12329: template 12329: 12329: void 12329: nth_element(_RAIter, _RAIter, _RAIter, _Compare); 12329: 12329: template 12329: 12329: void 12329: partial_sort(_RAIter, _RAIter, _RAIter); 12329: 12329: template 12329: 12329: void 12329: partial_sort(_RAIter, _RAIter, _RAIter, _Compare); 12329: 12329: template 12329: 12329: _BIter 12329: partition(_BIter, _BIter, _Predicate); 12329: 12329: template 12329: void 12329: random_shuffle(_RAIter, _RAIter); 12329: 12329: template 12329: void 12329: random_shuffle(_RAIter, _RAIter, 12329: 12329: _Generator&&); 12329: 12329: 12329: 12329: 12329: template 12329: 12329: void 12329: replace(_FIter, _FIter, const _Tp&, const _Tp&); 12329: 12329: template 12329: 12329: void 12329: replace_if(_FIter, _FIter, _Predicate, const _Tp&); 12329: 12329: template 12329: 12329: _FIter1 12329: search(_FIter1, _FIter1, _FIter2, _FIter2); 12329: 12329: template 12329: 12329: _FIter1 12329: search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 12329: 12329: template 12329: 12329: _FIter 12329: search_n(_FIter, _FIter, _Size, const _Tp&); 12329: 12329: template 12329: 12329: _FIter 12329: search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); 12329: 12329: template 12329: 12329: _OIter 12329: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 12329: 12329: template 12329: 12329: _OIter 12329: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 12329: 12329: template 12329: 12329: _OIter 12329: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 12329: 12329: template 12329: 12329: _OIter 12329: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 12329: 12329: template 12329: 12329: _OIter 12329: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 12329: 12329: template 12329: 12329: _OIter 12329: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, 12329: _OIter, _Compare); 12329: 12329: template 12329: 12329: _OIter 12329: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 12329: 12329: template 12329: 12329: _OIter 12329: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 12329: 12329: template 12329: 12329: void 12329: sort(_RAIter, _RAIter); 12329: 12329: template 12329: 12329: void 12329: sort(_RAIter, _RAIter, _Compare); 12329: 12329: template 12329: void 12329: stable_sort(_RAIter, _RAIter); 12329: 12329: template 12329: void 12329: stable_sort(_RAIter, _RAIter, _Compare); 12329: 12329: template 12329: 12329: _OIter 12329: transform(_IIter, _IIter, _OIter, _UnaryOperation); 12329: 12329: template 12329: 12329: _OIter 12329: transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); 12329: 12329: template 12329: 12329: _OIter 12329: unique_copy(_IIter, _IIter, _OIter); 12329: 12329: template 12329: 12329: _OIter 12329: unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); 12329: 12329: 12329: 12329: } 12329: # 60 "/usr/include/c++/12/bits/stl_algo.h" 2 3 12329: # 1 "/usr/include/c++/12/bits/stl_heap.h" 1 3 12329: # 63 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: _Distance 12329: __is_heap_until(_RandomAccessIterator __first, _Distance __n, 12329: _Compare& __comp) 12329: { 12329: _Distance __parent = 0; 12329: for (_Distance __child = 1; __child < __n; ++__child) 12329: { 12329: if (__comp(__first + __parent, __first + __child)) 12329: return __child; 12329: if ((__child & 1) == 0) 12329: ++__parent; 12329: } 12329: return __n; 12329: } 12329: 12329: 12329: 12329: template 12329: 12329: inline bool 12329: __is_heap(_RandomAccessIterator __first, _Distance __n) 12329: { 12329: __gnu_cxx::__ops::_Iter_less_iter __comp; 12329: return std::__is_heap_until(__first, __n, __comp) == __n; 12329: } 12329: 12329: template 12329: 12329: inline bool 12329: __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) 12329: { 12329: typedef __decltype(__comp) _Cmp; 12329: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 12329: return std::__is_heap_until(__first, __n, __cmp) == __n; 12329: } 12329: 12329: template 12329: 12329: inline bool 12329: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 12329: { return std::__is_heap(__first, std::distance(__first, __last)); } 12329: 12329: template 12329: 12329: inline bool 12329: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: return std::__is_heap(__first, std::move(__comp), 12329: std::distance(__first, __last)); 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: 12329: void 12329: __push_heap(_RandomAccessIterator __first, 12329: _Distance __holeIndex, _Distance __topIndex, _Tp __value, 12329: _Compare& __comp) 12329: { 12329: _Distance __parent = (__holeIndex - 1) / 2; 12329: while (__holeIndex > __topIndex && __comp(__first + __parent, __value)) 12329: { 12329: *(__first + __holeIndex) = std::move(*(__first + __parent)); 12329: __holeIndex = __parent; 12329: __parent = (__holeIndex - 1) / 2; 12329: } 12329: *(__first + __holeIndex) = std::move(__value); 12329: } 12329: # 159 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: template 12329: 12329: inline void 12329: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 12329: { 12329: typedef typename iterator_traits<_RandomAccessIterator>::value_type 12329: _ValueType; 12329: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 12329: _DistanceType; 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: 12329: __gnu_cxx::__ops::_Iter_less_val __comp; 12329: _ValueType __value = std::move(*(__last - 1)); 12329: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 12329: _DistanceType(0), std::move(__value), __comp); 12329: } 12329: # 195 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: template 12329: 12329: inline void 12329: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: typedef typename iterator_traits<_RandomAccessIterator>::value_type 12329: _ValueType; 12329: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 12329: _DistanceType; 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: 12329: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 12329: __cmp(std::move(__comp)); 12329: _ValueType __value = std::move(*(__last - 1)); 12329: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 12329: _DistanceType(0), std::move(__value), __cmp); 12329: } 12329: 12329: template 12329: 12329: void 12329: __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, 12329: _Distance __len, _Tp __value, _Compare __comp) 12329: { 12329: const _Distance __topIndex = __holeIndex; 12329: _Distance __secondChild = __holeIndex; 12329: while (__secondChild < (__len - 1) / 2) 12329: { 12329: __secondChild = 2 * (__secondChild + 1); 12329: if (__comp(__first + __secondChild, 12329: __first + (__secondChild - 1))) 12329: __secondChild--; 12329: *(__first + __holeIndex) = std::move(*(__first + __secondChild)); 12329: __holeIndex = __secondChild; 12329: } 12329: if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) 12329: { 12329: __secondChild = 2 * (__secondChild + 1); 12329: *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) 12329: ; 12329: __holeIndex = __secondChild - 1; 12329: } 12329: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 12329: __cmp(std::move(__comp)); 12329: std::__push_heap(__first, __holeIndex, __topIndex, 12329: std::move(__value), __cmp); 12329: } 12329: 12329: template 12329: 12329: inline void 12329: __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _RandomAccessIterator __result, _Compare& __comp) 12329: { 12329: typedef typename iterator_traits<_RandomAccessIterator>::value_type 12329: _ValueType; 12329: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 12329: _DistanceType; 12329: 12329: _ValueType __value = std::move(*__result); 12329: *__result = std::move(*__first); 12329: std::__adjust_heap(__first, _DistanceType(0), 12329: _DistanceType(__last - __first), 12329: std::move(__value), __comp); 12329: } 12329: # 280 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: template 12329: 12329: inline void 12329: pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: if (__last - __first > 1) 12329: { 12329: --__last; 12329: __gnu_cxx::__ops::_Iter_less_iter __comp; 12329: std::__pop_heap(__first, __last, __last, __comp); 12329: } 12329: } 12329: # 314 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: template 12329: 12329: inline void 12329: pop_heap(_RandomAccessIterator __first, 12329: _RandomAccessIterator __last, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: if (__last - __first > 1) 12329: { 12329: typedef __decltype(__comp) _Cmp; 12329: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 12329: --__last; 12329: std::__pop_heap(__first, __last, __last, __cmp); 12329: } 12329: } 12329: 12329: template 12329: 12329: void 12329: __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Compare& __comp) 12329: { 12329: typedef typename iterator_traits<_RandomAccessIterator>::value_type 12329: _ValueType; 12329: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 12329: _DistanceType; 12329: 12329: if (__last - __first < 2) 12329: return; 12329: 12329: const _DistanceType __len = __last - __first; 12329: _DistanceType __parent = (__len - 2) / 2; 12329: while (true) 12329: { 12329: _ValueType __value = std::move(*(__first + __parent)); 12329: std::__adjust_heap(__first, __parent, __len, std::move(__value), 12329: __comp); 12329: if (__parent == 0) 12329: return; 12329: __parent--; 12329: } 12329: } 12329: # 372 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: template 12329: 12329: inline void 12329: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: __gnu_cxx::__ops::_Iter_less_iter __comp; 12329: std::__make_heap(__first, __last, __comp); 12329: } 12329: # 399 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: template 12329: 12329: inline void 12329: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: typedef __decltype(__comp) _Cmp; 12329: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 12329: std::__make_heap(__first, __last, __cmp); 12329: } 12329: 12329: template 12329: 12329: void 12329: __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Compare& __comp) 12329: { 12329: while (__last - __first > 1) 12329: { 12329: --__last; 12329: std::__pop_heap(__first, __last, __last, __comp); 12329: } 12329: } 12329: # 437 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: template 12329: 12329: inline void 12329: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: 12329: __gnu_cxx::__ops::_Iter_less_iter __comp; 12329: std::__sort_heap(__first, __last, __comp); 12329: } 12329: # 465 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: template 12329: 12329: inline void 12329: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: 12329: typedef __decltype(__comp) _Cmp; 12329: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 12329: std::__sort_heap(__first, __last, __cmp); 12329: } 12329: # 494 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: template 12329: 12329: inline _RandomAccessIterator 12329: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: __gnu_cxx::__ops::_Iter_less_iter __comp; 12329: return __first + 12329: std::__is_heap_until(__first, std::distance(__first, __last), __comp); 12329: } 12329: # 523 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: template 12329: 12329: inline _RandomAccessIterator 12329: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: typedef __decltype(__comp) _Cmp; 12329: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 12329: return __first 12329: + std::__is_heap_until(__first, std::distance(__first, __last), __cmp); 12329: } 12329: # 548 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: template 12329: 12329: inline bool 12329: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 12329: { return std::is_heap_until(__first, __last) == __last; } 12329: # 562 "/usr/include/c++/12/bits/stl_heap.h" 3 12329: template 12329: 12329: inline bool 12329: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: const auto __dist = std::distance(__first, __last); 12329: typedef __decltype(__comp) _Cmp; 12329: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 12329: return std::__is_heap_until(__first, __dist, __cmp) == __dist; 12329: } 12329: 12329: 12329: 12329: } 12329: # 61 "/usr/include/c++/12/bits/stl_algo.h" 2 3 12329: # 1 "/usr/include/c++/12/bits/stl_tempbuf.h" 1 3 12329: # 62 "/usr/include/c++/12/bits/stl_tempbuf.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: namespace __detail 12329: { 12329: template 12329: inline void 12329: __return_temporary_buffer(_Tp* __p, 12329: size_t __len __attribute__((__unused__))) 12329: { 12329: 12329: ::operator delete(__p, __len * sizeof(_Tp)); 12329: 12329: 12329: 12329: } 12329: } 12329: # 98 "/usr/include/c++/12/bits/stl_tempbuf.h" 3 12329: template 12329: 12329: pair<_Tp*, ptrdiff_t> 12329: get_temporary_buffer(ptrdiff_t __len) noexcept 12329: { 12329: const ptrdiff_t __max = 12329: __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 12329: if (__len > __max) 12329: __len = __max; 12329: 12329: while (__len > 0) 12329: { 12329: _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), 12329: std::nothrow)); 12329: if (__tmp != 0) 12329: return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); 12329: __len = __len == 1 ? 0 : ((__len + 1) / 2); 12329: } 12329: return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); 12329: } 12329: # 126 "/usr/include/c++/12/bits/stl_tempbuf.h" 3 12329: template 12329: inline void 12329: return_temporary_buffer(_Tp* __p) 12329: { ::operator delete(__p); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class _Temporary_buffer 12329: { 12329: 12329: 12329: 12329: public: 12329: typedef _Tp value_type; 12329: typedef value_type* pointer; 12329: typedef pointer iterator; 12329: typedef ptrdiff_t size_type; 12329: 12329: protected: 12329: size_type _M_original_len; 12329: size_type _M_len; 12329: pointer _M_buffer; 12329: 12329: public: 12329: 12329: size_type 12329: size() const 12329: { return _M_len; } 12329: 12329: 12329: size_type 12329: requested_size() const 12329: { return _M_original_len; } 12329: 12329: 12329: iterator 12329: begin() 12329: { return _M_buffer; } 12329: 12329: 12329: iterator 12329: end() 12329: { return _M_buffer + _M_len; } 12329: 12329: 12329: 12329: 12329: 12329: _Temporary_buffer(_ForwardIterator __seed, size_type __original_len); 12329: 12329: ~_Temporary_buffer() 12329: { 12329: std::_Destroy(_M_buffer, _M_buffer + _M_len); 12329: std::__detail::__return_temporary_buffer(_M_buffer, _M_len); 12329: } 12329: 12329: private: 12329: 12329: _Temporary_buffer(const _Temporary_buffer&); 12329: 12329: void 12329: operator=(const _Temporary_buffer&); 12329: }; 12329: 12329: 12329: template 12329: struct __uninitialized_construct_buf_dispatch 12329: { 12329: template 12329: static void 12329: __ucr(_Pointer __first, _Pointer __last, 12329: _ForwardIterator __seed) 12329: { 12329: if (__first == __last) 12329: return; 12329: 12329: _Pointer __cur = __first; 12329: try 12329: { 12329: std::_Construct(std::__addressof(*__first), 12329: std::move(*__seed)); 12329: _Pointer __prev = __cur; 12329: ++__cur; 12329: for(; __cur != __last; ++__cur, ++__prev) 12329: std::_Construct(std::__addressof(*__cur), 12329: std::move(*__prev)); 12329: *__seed = std::move(*__prev); 12329: } 12329: catch(...) 12329: { 12329: std::_Destroy(__first, __cur); 12329: throw; 12329: } 12329: } 12329: }; 12329: 12329: template<> 12329: struct __uninitialized_construct_buf_dispatch 12329: { 12329: template 12329: static void 12329: __ucr(_Pointer, _Pointer, _ForwardIterator) { } 12329: }; 12329: # 244 "/usr/include/c++/12/bits/stl_tempbuf.h" 3 12329: template 12329: inline void 12329: __uninitialized_construct_buf(_Pointer __first, _Pointer __last, 12329: _ForwardIterator __seed) 12329: { 12329: typedef typename std::iterator_traits<_Pointer>::value_type 12329: _ValueType; 12329: 12329: std::__uninitialized_construct_buf_dispatch< 12329: __has_trivial_constructor(_ValueType)>:: 12329: __ucr(__first, __last, __seed); 12329: } 12329: 12329: template 12329: _Temporary_buffer<_ForwardIterator, _Tp>:: 12329: _Temporary_buffer(_ForwardIterator __seed, size_type __original_len) 12329: : _M_original_len(__original_len), _M_len(0), _M_buffer(0) 12329: { 12329: std::pair __p( 12329: std::get_temporary_buffer(_M_original_len)); 12329: 12329: if (__p.first) 12329: { 12329: try 12329: { 12329: std::__uninitialized_construct_buf(__p.first, __p.first + __p.second, 12329: __seed); 12329: _M_buffer = __p.first; 12329: _M_len = __p.second; 12329: } 12329: catch(...) 12329: { 12329: std::__detail::__return_temporary_buffer(__p.first, __p.second); 12329: throw; 12329: } 12329: } 12329: } 12329: 12329: 12329: } 12329: # 62 "/usr/include/c++/12/bits/stl_algo.h" 2 3 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/uniform_int_dist.h" 1 3 12329: # 41 "/usr/include/c++/12/bits/uniform_int_dist.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 58 "/usr/include/c++/12/bits/uniform_int_dist.h" 3 12329: namespace __detail 12329: { 12329: 12329: 12329: 12329: template 12329: constexpr bool 12329: _Power_of_2(_Tp __x) 12329: { 12329: return ((__x - 1) & __x) == 0; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class uniform_int_distribution 12329: { 12329: static_assert(std::is_integral<_IntType>::value, 12329: "template argument must be an integral type"); 12329: 12329: public: 12329: 12329: typedef _IntType result_type; 12329: 12329: struct param_type 12329: { 12329: typedef uniform_int_distribution<_IntType> distribution_type; 12329: 12329: param_type() : param_type(0) { } 12329: 12329: explicit 12329: param_type(_IntType __a, 12329: _IntType __b = __gnu_cxx::__int_traits<_IntType>::__max) 12329: : _M_a(__a), _M_b(__b) 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(_M_a <= _M_b)) __builtin_unreachable(); } while (false); 12329: } 12329: 12329: result_type 12329: a() const 12329: { return _M_a; } 12329: 12329: result_type 12329: b() const 12329: { return _M_b; } 12329: 12329: friend bool 12329: operator==(const param_type& __p1, const param_type& __p2) 12329: { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } 12329: 12329: friend bool 12329: operator!=(const param_type& __p1, const param_type& __p2) 12329: { return !(__p1 == __p2); } 12329: 12329: private: 12329: _IntType _M_a; 12329: _IntType _M_b; 12329: }; 12329: 12329: public: 12329: 12329: 12329: 12329: uniform_int_distribution() : uniform_int_distribution(0) { } 12329: 12329: 12329: 12329: 12329: explicit 12329: uniform_int_distribution(_IntType __a, 12329: _IntType __b 12329: = __gnu_cxx::__int_traits<_IntType>::__max) 12329: : _M_param(__a, __b) 12329: { } 12329: 12329: explicit 12329: uniform_int_distribution(const param_type& __p) 12329: : _M_param(__p) 12329: { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: reset() { } 12329: 12329: result_type 12329: a() const 12329: { return _M_param.a(); } 12329: 12329: result_type 12329: b() const 12329: { return _M_param.b(); } 12329: 12329: 12329: 12329: 12329: param_type 12329: param() const 12329: { return _M_param; } 12329: 12329: 12329: 12329: 12329: 12329: void 12329: param(const param_type& __param) 12329: { _M_param = __param; } 12329: 12329: 12329: 12329: 12329: result_type 12329: min() const 12329: { return this->a(); } 12329: 12329: 12329: 12329: 12329: result_type 12329: max() const 12329: { return this->b(); } 12329: 12329: 12329: 12329: 12329: template 12329: result_type 12329: operator()(_UniformRandomBitGenerator& __urng) 12329: { return this->operator()(__urng, _M_param); } 12329: 12329: template 12329: result_type 12329: operator()(_UniformRandomBitGenerator& __urng, 12329: const param_type& __p); 12329: 12329: template 12329: void 12329: __generate(_ForwardIterator __f, _ForwardIterator __t, 12329: _UniformRandomBitGenerator& __urng) 12329: { this->__generate(__f, __t, __urng, _M_param); } 12329: 12329: template 12329: void 12329: __generate(_ForwardIterator __f, _ForwardIterator __t, 12329: _UniformRandomBitGenerator& __urng, 12329: const param_type& __p) 12329: { this->__generate_impl(__f, __t, __urng, __p); } 12329: 12329: template 12329: void 12329: __generate(result_type* __f, result_type* __t, 12329: _UniformRandomBitGenerator& __urng, 12329: const param_type& __p) 12329: { this->__generate_impl(__f, __t, __urng, __p); } 12329: 12329: 12329: 12329: 12329: 12329: friend bool 12329: operator==(const uniform_int_distribution& __d1, 12329: const uniform_int_distribution& __d2) 12329: { return __d1._M_param == __d2._M_param; } 12329: 12329: private: 12329: template 12329: void 12329: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 12329: _UniformRandomBitGenerator& __urng, 12329: const param_type& __p); 12329: 12329: param_type _M_param; 12329: 12329: 12329: 12329: 12329: template 12329: static _Up 12329: _S_nd(_Urbg& __g, _Up __range) 12329: { 12329: using _Up_traits = __gnu_cxx::__int_traits<_Up>; 12329: using _Wp_traits = __gnu_cxx::__int_traits<_Wp>; 12329: static_assert(!_Up_traits::__is_signed, "U must be unsigned"); 12329: static_assert(!_Wp_traits::__is_signed, "W must be unsigned"); 12329: static_assert(_Wp_traits::__digits == (2 * _Up_traits::__digits), 12329: "W must be twice as wide as U"); 12329: 12329: 12329: 12329: 12329: _Wp __product = _Wp(__g()) * _Wp(__range); 12329: _Up __low = _Up(__product); 12329: if (__low < __range) 12329: { 12329: _Up __threshold = -__range % __range; 12329: while (__low < __threshold) 12329: { 12329: __product = _Wp(__g()) * _Wp(__range); 12329: __low = _Up(__product); 12329: } 12329: } 12329: return __product >> _Up_traits::__digits; 12329: } 12329: }; 12329: 12329: template 12329: template 12329: typename uniform_int_distribution<_IntType>::result_type 12329: uniform_int_distribution<_IntType>:: 12329: operator()(_UniformRandomBitGenerator& __urng, 12329: const param_type& __param) 12329: { 12329: typedef typename _UniformRandomBitGenerator::result_type _Gresult_type; 12329: typedef typename make_unsigned::type __utype; 12329: typedef typename common_type<_Gresult_type, __utype>::type __uctype; 12329: 12329: constexpr __uctype __urngmin = _UniformRandomBitGenerator::min(); 12329: constexpr __uctype __urngmax = _UniformRandomBitGenerator::max(); 12329: static_assert( __urngmin < __urngmax, 12329: "Uniform random bit generator must define min() < max()"); 12329: constexpr __uctype __urngrange = __urngmax - __urngmin; 12329: 12329: const __uctype __urange 12329: = __uctype(__param.b()) - __uctype(__param.a()); 12329: 12329: __uctype __ret; 12329: if (__urngrange > __urange) 12329: { 12329: 12329: 12329: const __uctype __uerange = __urange + 1; 12329: 12329: 12329: 12329: if (__urngrange == 0xffffffffffffffffUL) 12329: { 12329: 12329: 12329: long unsigned int __u64erange = __uerange; 12329: __ret = __extension__ _S_nd(__urng, 12329: __u64erange); 12329: } 12329: else 12329: 12329: if (__urngrange == 0xffffffffU) 12329: { 12329: 12329: 12329: unsigned int __u32erange = __uerange; 12329: __ret = _S_nd(__urng, __u32erange); 12329: } 12329: else 12329: 12329: { 12329: 12329: const __uctype __scaling = __urngrange / __uerange; 12329: const __uctype __past = __uerange * __scaling; 12329: do 12329: __ret = __uctype(__urng()) - __urngmin; 12329: while (__ret >= __past); 12329: __ret /= __scaling; 12329: } 12329: } 12329: else if (__urngrange < __urange) 12329: { 12329: # 348 "/usr/include/c++/12/bits/uniform_int_dist.h" 3 12329: __uctype __tmp; 12329: do 12329: { 12329: const __uctype __uerngrange = __urngrange + 1; 12329: __tmp = (__uerngrange * operator() 12329: (__urng, param_type(0, __urange / __uerngrange))); 12329: __ret = __tmp + (__uctype(__urng()) - __urngmin); 12329: } 12329: while (__ret > __urange || __ret < __tmp); 12329: } 12329: else 12329: __ret = __uctype(__urng()) - __urngmin; 12329: 12329: return __ret + __param.a(); 12329: } 12329: 12329: 12329: template 12329: template 12329: void 12329: uniform_int_distribution<_IntType>:: 12329: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 12329: _UniformRandomBitGenerator& __urng, 12329: const param_type& __param) 12329: { 12329: 12329: typedef typename _UniformRandomBitGenerator::result_type _Gresult_type; 12329: typedef typename make_unsigned::type __utype; 12329: typedef typename common_type<_Gresult_type, __utype>::type __uctype; 12329: 12329: static_assert( __urng.min() < __urng.max(), 12329: "Uniform random bit generator must define min() < max()"); 12329: 12329: constexpr __uctype __urngmin = __urng.min(); 12329: constexpr __uctype __urngmax = __urng.max(); 12329: constexpr __uctype __urngrange = __urngmax - __urngmin; 12329: const __uctype __urange 12329: = __uctype(__param.b()) - __uctype(__param.a()); 12329: 12329: __uctype __ret; 12329: 12329: if (__urngrange > __urange) 12329: { 12329: if (__detail::_Power_of_2(__urngrange + 1) 12329: && __detail::_Power_of_2(__urange + 1)) 12329: { 12329: while (__f != __t) 12329: { 12329: __ret = __uctype(__urng()) - __urngmin; 12329: *__f++ = (__ret & __urange) + __param.a(); 12329: } 12329: } 12329: else 12329: { 12329: 12329: const __uctype __uerange = __urange + 1; 12329: const __uctype __scaling = __urngrange / __uerange; 12329: const __uctype __past = __uerange * __scaling; 12329: while (__f != __t) 12329: { 12329: do 12329: __ret = __uctype(__urng()) - __urngmin; 12329: while (__ret >= __past); 12329: *__f++ = __ret / __scaling + __param.a(); 12329: } 12329: } 12329: } 12329: else if (__urngrange < __urange) 12329: { 12329: # 433 "/usr/include/c++/12/bits/uniform_int_dist.h" 3 12329: __uctype __tmp; 12329: while (__f != __t) 12329: { 12329: do 12329: { 12329: constexpr __uctype __uerngrange = __urngrange + 1; 12329: __tmp = (__uerngrange * operator() 12329: (__urng, param_type(0, __urange / __uerngrange))); 12329: __ret = __tmp + (__uctype(__urng()) - __urngmin); 12329: } 12329: while (__ret > __urange || __ret < __tmp); 12329: *__f++ = __ret; 12329: } 12329: } 12329: else 12329: while (__f != __t) 12329: *__f++ = __uctype(__urng()) - __urngmin + __param.a(); 12329: } 12329: 12329: 12329: 12329: 12329: } 12329: # 66 "/usr/include/c++/12/bits/stl_algo.h" 2 3 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/cstdlib" 1 3 12329: # 39 "/usr/include/c++/12/cstdlib" 3 12329: 12329: # 40 "/usr/include/c++/12/cstdlib" 3 12329: # 70 "/usr/include/c++/12/bits/stl_algo.h" 2 3 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: template 12329: 12329: void 12329: __move_median_to_first(_Iterator __result,_Iterator __a, _Iterator __b, 12329: _Iterator __c, _Compare __comp) 12329: { 12329: if (__comp(__a, __b)) 12329: { 12329: if (__comp(__b, __c)) 12329: std::iter_swap(__result, __b); 12329: else if (__comp(__a, __c)) 12329: std::iter_swap(__result, __c); 12329: else 12329: std::iter_swap(__result, __a); 12329: } 12329: else if (__comp(__a, __c)) 12329: std::iter_swap(__result, __a); 12329: else if (__comp(__b, __c)) 12329: std::iter_swap(__result, __c); 12329: else 12329: std::iter_swap(__result, __b); 12329: } 12329: 12329: 12329: template 12329: 12329: inline _InputIterator 12329: __find_if_not(_InputIterator __first, _InputIterator __last, 12329: _Predicate __pred) 12329: { 12329: return std::__find_if(__first, __last, 12329: __gnu_cxx::__ops::__negate(__pred), 12329: std::__iterator_category(__first)); 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: 12329: _InputIterator 12329: __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred) 12329: { 12329: for (; __len; --__len, (void) ++__first) 12329: if (!__pred(__first)) 12329: break; 12329: return __first; 12329: } 12329: # 141 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: _ForwardIterator1 12329: __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 12329: _BinaryPredicate __predicate) 12329: { 12329: 12329: if (__first1 == __last1 || __first2 == __last2) 12329: return __first1; 12329: 12329: 12329: _ForwardIterator2 __p1(__first2); 12329: if (++__p1 == __last2) 12329: return std::__find_if(__first1, __last1, 12329: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 12329: 12329: 12329: _ForwardIterator1 __current = __first1; 12329: 12329: for (;;) 12329: { 12329: __first1 = 12329: std::__find_if(__first1, __last1, 12329: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 12329: 12329: if (__first1 == __last1) 12329: return __last1; 12329: 12329: _ForwardIterator2 __p = __p1; 12329: __current = __first1; 12329: if (++__current == __last1) 12329: return __last1; 12329: 12329: while (__predicate(__current, __p)) 12329: { 12329: if (++__p == __last2) 12329: return __first1; 12329: if (++__current == __last1) 12329: return __last1; 12329: } 12329: ++__first1; 12329: } 12329: return __first1; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __search_n_aux(_ForwardIterator __first, _ForwardIterator __last, 12329: _Integer __count, _UnaryPredicate __unary_pred, 12329: std::forward_iterator_tag) 12329: { 12329: __first = std::__find_if(__first, __last, __unary_pred); 12329: while (__first != __last) 12329: { 12329: typename iterator_traits<_ForwardIterator>::difference_type 12329: __n = __count; 12329: _ForwardIterator __i = __first; 12329: ++__i; 12329: while (__i != __last && __n != 1 && __unary_pred(__i)) 12329: { 12329: ++__i; 12329: --__n; 12329: } 12329: if (__n == 1) 12329: return __first; 12329: if (__i == __last) 12329: return __last; 12329: __first = std::__find_if(++__i, __last, __unary_pred); 12329: } 12329: return __last; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: _RandomAccessIter 12329: __search_n_aux(_RandomAccessIter __first, _RandomAccessIter __last, 12329: _Integer __count, _UnaryPredicate __unary_pred, 12329: std::random_access_iterator_tag) 12329: { 12329: typedef typename std::iterator_traits<_RandomAccessIter>::difference_type 12329: _DistanceType; 12329: 12329: _DistanceType __tailSize = __last - __first; 12329: _DistanceType __remainder = __count; 12329: 12329: while (__remainder <= __tailSize) 12329: { 12329: __first += __remainder; 12329: __tailSize -= __remainder; 12329: 12329: 12329: _RandomAccessIter __backTrack = __first; 12329: while (__unary_pred(--__backTrack)) 12329: { 12329: if (--__remainder == 0) 12329: return (__first - __count); 12329: } 12329: __remainder = __count + 1 - (__first - __backTrack); 12329: } 12329: return __last; 12329: } 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __search_n(_ForwardIterator __first, _ForwardIterator __last, 12329: _Integer __count, 12329: _UnaryPredicate __unary_pred) 12329: { 12329: if (__count <= 0) 12329: return __first; 12329: 12329: if (__count == 1) 12329: return std::__find_if(__first, __last, __unary_pred); 12329: 12329: return std::__search_n_aux(__first, __last, __count, __unary_pred, 12329: std::__iterator_category(__first)); 12329: } 12329: 12329: 12329: template 12329: 12329: _ForwardIterator1 12329: __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 12329: forward_iterator_tag, forward_iterator_tag, 12329: _BinaryPredicate __comp) 12329: { 12329: if (__first2 == __last2) 12329: return __last1; 12329: 12329: _ForwardIterator1 __result = __last1; 12329: while (1) 12329: { 12329: _ForwardIterator1 __new_result 12329: = std::__search(__first1, __last1, __first2, __last2, __comp); 12329: if (__new_result == __last1) 12329: return __result; 12329: else 12329: { 12329: __result = __new_result; 12329: __first1 = __new_result; 12329: ++__first1; 12329: } 12329: } 12329: } 12329: 12329: 12329: template 12329: 12329: _BidirectionalIterator1 12329: __find_end(_BidirectionalIterator1 __first1, 12329: _BidirectionalIterator1 __last1, 12329: _BidirectionalIterator2 __first2, 12329: _BidirectionalIterator2 __last2, 12329: bidirectional_iterator_tag, bidirectional_iterator_tag, 12329: _BinaryPredicate __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; 12329: typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; 12329: 12329: _RevIterator1 __rlast1(__first1); 12329: _RevIterator2 __rlast2(__first2); 12329: _RevIterator1 __rresult = std::__search(_RevIterator1(__last1), __rlast1, 12329: _RevIterator2(__last2), __rlast2, 12329: __comp); 12329: 12329: if (__rresult == __rlast1) 12329: return __last1; 12329: else 12329: { 12329: _BidirectionalIterator1 __result = __rresult.base(); 12329: std::advance(__result, -std::distance(__first2, __last2)); 12329: return __result; 12329: } 12329: } 12329: # 367 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator1 12329: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__find_end(__first1, __last1, __first2, __last2, 12329: std::__iterator_category(__first1), 12329: std::__iterator_category(__first2), 12329: __gnu_cxx::__ops::__iter_equal_to_iter()); 12329: } 12329: # 416 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator1 12329: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 12329: _BinaryPredicate __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__find_end(__first1, __last1, __first2, __last2, 12329: std::__iterator_category(__first1), 12329: std::__iterator_category(__first2), 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: # 452 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 12329: { return __last == std::find_if_not(__first, __last, __pred); } 12329: # 470 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 12329: { return __last == std::find_if(__first, __last, __pred); } 12329: # 489 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 12329: { return !std::none_of(__first, __last, __pred); } 12329: # 505 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _InputIterator 12329: find_if_not(_InputIterator __first, _InputIterator __last, 12329: _Predicate __pred) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: return std::__find_if_not(__first, __last, 12329: __gnu_cxx::__ops::__pred_iter(__pred)); 12329: } 12329: # 530 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: is_partitioned(_InputIterator __first, _InputIterator __last, 12329: _Predicate __pred) 12329: { 12329: __first = std::find_if_not(__first, __last, __pred); 12329: if (__first == __last) 12329: return true; 12329: ++__first; 12329: return std::none_of(__first, __last, __pred); 12329: } 12329: # 552 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: _ForwardIterator 12329: partition_point(_ForwardIterator __first, _ForwardIterator __last, 12329: _Predicate __pred) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: typedef typename iterator_traits<_ForwardIterator>::difference_type 12329: _DistanceType; 12329: 12329: _DistanceType __len = std::distance(__first, __last); 12329: 12329: while (__len > 0) 12329: { 12329: _DistanceType __half = __len >> 1; 12329: _ForwardIterator __middle = __first; 12329: std::advance(__middle, __half); 12329: if (__pred(*__middle)) 12329: { 12329: __first = __middle; 12329: ++__first; 12329: __len = __len - __half - 1; 12329: } 12329: else 12329: __len = __half; 12329: } 12329: return __first; 12329: } 12329: 12329: 12329: template 12329: 12329: _OutputIterator 12329: __remove_copy_if(_InputIterator __first, _InputIterator __last, 12329: _OutputIterator __result, _Predicate __pred) 12329: { 12329: for (; __first != __last; ++__first) 12329: if (!__pred(__first)) 12329: { 12329: *__result = *__first; 12329: ++__result; 12329: } 12329: return __result; 12329: } 12329: # 619 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: remove_copy(_InputIterator __first, _InputIterator __last, 12329: _OutputIterator __result, const _Tp& __value) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__remove_copy_if(__first, __last, __result, 12329: __gnu_cxx::__ops::__iter_equals_val(__value)); 12329: } 12329: # 652 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: remove_copy_if(_InputIterator __first, _InputIterator __last, 12329: _OutputIterator __result, _Predicate __pred) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__remove_copy_if(__first, __last, __result, 12329: __gnu_cxx::__ops::__pred_iter(__pred)); 12329: } 12329: # 687 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: _OutputIterator 12329: copy_if(_InputIterator __first, _InputIterator __last, 12329: _OutputIterator __result, _Predicate __pred) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: for (; __first != __last; ++__first) 12329: if (__pred(*__first)) 12329: { 12329: *__result = *__first; 12329: ++__result; 12329: } 12329: return __result; 12329: } 12329: 12329: template 12329: 12329: _OutputIterator 12329: __copy_n(_InputIterator __first, _Size __n, 12329: _OutputIterator __result, input_iterator_tag) 12329: { 12329: return std::__niter_wrap(__result, 12329: __copy_n_a(__first, __n, 12329: std::__niter_base(__result), true)); 12329: } 12329: 12329: template 12329: 12329: inline _OutputIterator 12329: __copy_n(_RandomAccessIterator __first, _Size __n, 12329: _OutputIterator __result, random_access_iterator_tag) 12329: { return std::copy(__first, __first + __n, __result); } 12329: # 743 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: copy_n(_InputIterator __first, _Size __n, _OutputIterator __result) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: const auto __n2 = std::__size_to_integer(__n); 12329: if (__n2 <= 0) 12329: return __result; 12329: 12329: ; 12329: ; 12329: 12329: return std::__copy_n(__first, __n2, __result, 12329: std::__iterator_category(__first)); 12329: } 12329: # 779 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: pair<_OutputIterator1, _OutputIterator2> 12329: partition_copy(_InputIterator __first, _InputIterator __last, 12329: _OutputIterator1 __out_true, _OutputIterator2 __out_false, 12329: _Predicate __pred) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: for (; __first != __last; ++__first) 12329: if (__pred(*__first)) 12329: { 12329: *__out_true = *__first; 12329: ++__out_true; 12329: } 12329: else 12329: { 12329: *__out_false = *__first; 12329: ++__out_false; 12329: } 12329: 12329: return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); 12329: } 12329: # 830 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: remove(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __value) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__remove_if(__first, __last, 12329: __gnu_cxx::__ops::__iter_equals_val(__value)); 12329: } 12329: # 864 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: remove_if(_ForwardIterator __first, _ForwardIterator __last, 12329: _Predicate __pred) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__remove_if(__first, __last, 12329: __gnu_cxx::__ops::__pred_iter(__pred)); 12329: } 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 12329: _BinaryPredicate __binary_pred) 12329: { 12329: if (__first == __last) 12329: return __last; 12329: _ForwardIterator __next = __first; 12329: while (++__next != __last) 12329: { 12329: if (__binary_pred(__first, __next)) 12329: return __first; 12329: __first = __next; 12329: } 12329: return __last; 12329: } 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __unique(_ForwardIterator __first, _ForwardIterator __last, 12329: _BinaryPredicate __binary_pred) 12329: { 12329: 12329: __first = std::__adjacent_find(__first, __last, __binary_pred); 12329: if (__first == __last) 12329: return __last; 12329: 12329: 12329: _ForwardIterator __dest = __first; 12329: ++__first; 12329: while (++__first != __last) 12329: if (!__binary_pred(__dest, __first)) 12329: *++__dest = std::move(*__first); 12329: return ++__dest; 12329: } 12329: # 933 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: unique(_ForwardIterator __first, _ForwardIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__unique(__first, __last, 12329: __gnu_cxx::__ops::__iter_equal_to_iter()); 12329: } 12329: # 964 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: unique(_ForwardIterator __first, _ForwardIterator __last, 12329: _BinaryPredicate __binary_pred) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__unique(__first, __last, 12329: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: _OutputIterator 12329: __unique_copy(_ForwardIterator __first, _ForwardIterator __last, 12329: _OutputIterator __result, _BinaryPredicate __binary_pred, 12329: forward_iterator_tag, output_iterator_tag) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: _ForwardIterator __next = __first; 12329: *__result = *__first; 12329: while (++__next != __last) 12329: if (!__binary_pred(__first, __next)) 12329: { 12329: __first = __next; 12329: *++__result = *__first; 12329: } 12329: return ++__result; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: _OutputIterator 12329: __unique_copy(_InputIterator __first, _InputIterator __last, 12329: _OutputIterator __result, _BinaryPredicate __binary_pred, 12329: input_iterator_tag, output_iterator_tag) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: typename iterator_traits<_InputIterator>::value_type __value = *__first; 12329: __decltype(__gnu_cxx::__ops::__iter_comp_val(__binary_pred)) 12329: __rebound_pred 12329: = __gnu_cxx::__ops::__iter_comp_val(__binary_pred); 12329: *__result = __value; 12329: while (++__first != __last) 12329: if (!__rebound_pred(__first, __value)) 12329: { 12329: __value = *__first; 12329: *++__result = __value; 12329: } 12329: return ++__result; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __unique_copy(_InputIterator __first, _InputIterator __last, 12329: _ForwardIterator __result, _BinaryPredicate __binary_pred, 12329: input_iterator_tag, forward_iterator_tag) 12329: { 12329: 12329: 12329: 12329: 12329: *__result = *__first; 12329: while (++__first != __last) 12329: if (!__binary_pred(__result, __first)) 12329: *++__result = *__first; 12329: return ++__result; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: void 12329: __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, 12329: bidirectional_iterator_tag) 12329: { 12329: while (true) 12329: if (__first == __last || __first == --__last) 12329: return; 12329: else 12329: { 12329: std::iter_swap(__first, __last); 12329: ++__first; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: void 12329: __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: random_access_iterator_tag) 12329: { 12329: if (__first == __last) 12329: return; 12329: --__last; 12329: while (__first < __last) 12329: { 12329: std::iter_swap(__first, __last); 12329: ++__first; 12329: --__last; 12329: } 12329: } 12329: # 1125 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline void 12329: reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) 12329: { 12329: 12329: 12329: 12329: ; 12329: std::__reverse(__first, __last, std::__iterator_category(__first)); 12329: } 12329: # 1153 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: _OutputIterator 12329: reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, 12329: _OutputIterator __result) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: while (__first != __last) 12329: { 12329: --__last; 12329: *__result = *__last; 12329: ++__result; 12329: } 12329: return __result; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: _EuclideanRingElement 12329: __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) 12329: { 12329: while (__n != 0) 12329: { 12329: _EuclideanRingElement __t = __m % __n; 12329: __m = __n; 12329: __n = __t; 12329: } 12329: return __m; 12329: } 12329: 12329: inline namespace _V2 12329: { 12329: 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __rotate(_ForwardIterator __first, 12329: _ForwardIterator __middle, 12329: _ForwardIterator __last, 12329: forward_iterator_tag) 12329: { 12329: if (__first == __middle) 12329: return __last; 12329: else if (__last == __middle) 12329: return __first; 12329: 12329: _ForwardIterator __first2 = __middle; 12329: do 12329: { 12329: std::iter_swap(__first, __first2); 12329: ++__first; 12329: ++__first2; 12329: if (__first == __middle) 12329: __middle = __first2; 12329: } 12329: while (__first2 != __last); 12329: 12329: _ForwardIterator __ret = __first; 12329: 12329: __first2 = __middle; 12329: 12329: while (__first2 != __last) 12329: { 12329: std::iter_swap(__first, __first2); 12329: ++__first; 12329: ++__first2; 12329: if (__first == __middle) 12329: __middle = __first2; 12329: else if (__first2 == __last) 12329: __first2 = __middle; 12329: } 12329: return __ret; 12329: } 12329: 12329: 12329: template 12329: 12329: _BidirectionalIterator 12329: __rotate(_BidirectionalIterator __first, 12329: _BidirectionalIterator __middle, 12329: _BidirectionalIterator __last, 12329: bidirectional_iterator_tag) 12329: { 12329: 12329: 12329: 12329: 12329: if (__first == __middle) 12329: return __last; 12329: else if (__last == __middle) 12329: return __first; 12329: 12329: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 12329: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 12329: 12329: while (__first != __middle && __middle != __last) 12329: { 12329: std::iter_swap(__first, --__last); 12329: ++__first; 12329: } 12329: 12329: if (__first == __middle) 12329: { 12329: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 12329: return __last; 12329: } 12329: else 12329: { 12329: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 12329: return __first; 12329: } 12329: } 12329: 12329: 12329: template 12329: 12329: _RandomAccessIterator 12329: __rotate(_RandomAccessIterator __first, 12329: _RandomAccessIterator __middle, 12329: _RandomAccessIterator __last, 12329: random_access_iterator_tag) 12329: { 12329: 12329: 12329: 12329: 12329: if (__first == __middle) 12329: return __last; 12329: else if (__last == __middle) 12329: return __first; 12329: 12329: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 12329: _Distance; 12329: typedef typename iterator_traits<_RandomAccessIterator>::value_type 12329: _ValueType; 12329: 12329: _Distance __n = __last - __first; 12329: _Distance __k = __middle - __first; 12329: 12329: if (__k == __n - __k) 12329: { 12329: std::swap_ranges(__first, __middle, __middle); 12329: return __middle; 12329: } 12329: 12329: _RandomAccessIterator __p = __first; 12329: _RandomAccessIterator __ret = __first + (__last - __middle); 12329: 12329: for (;;) 12329: { 12329: if (__k < __n - __k) 12329: { 12329: if (__is_pod(_ValueType) && __k == 1) 12329: { 12329: _ValueType __t = std::move(*__p); 12329: std::move(__p + 1, __p + __n, __p); 12329: *(__p + __n - 1) = std::move(__t); 12329: return __ret; 12329: } 12329: _RandomAccessIterator __q = __p + __k; 12329: for (_Distance __i = 0; __i < __n - __k; ++ __i) 12329: { 12329: std::iter_swap(__p, __q); 12329: ++__p; 12329: ++__q; 12329: } 12329: __n %= __k; 12329: if (__n == 0) 12329: return __ret; 12329: std::swap(__n, __k); 12329: __k = __n - __k; 12329: } 12329: else 12329: { 12329: __k = __n - __k; 12329: if (__is_pod(_ValueType) && __k == 1) 12329: { 12329: _ValueType __t = std::move(*(__p + __n - 1)); 12329: std::move_backward(__p, __p + __n - 1, __p + __n); 12329: *__p = std::move(__t); 12329: return __ret; 12329: } 12329: _RandomAccessIterator __q = __p + __n; 12329: __p = __q - __k; 12329: for (_Distance __i = 0; __i < __n - __k; ++ __i) 12329: { 12329: --__p; 12329: --__q; 12329: std::iter_swap(__p, __q); 12329: } 12329: __n %= __k; 12329: if (__n == 0) 12329: return __ret; 12329: std::swap(__n, __k); 12329: } 12329: } 12329: } 12329: # 1385 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: rotate(_ForwardIterator __first, _ForwardIterator __middle, 12329: _ForwardIterator __last) 12329: { 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__rotate(__first, __middle, __last, 12329: std::__iterator_category(__first)); 12329: } 12329: 12329: } 12329: # 1423 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, 12329: _ForwardIterator __last, _OutputIterator __result) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::copy(__first, __middle, 12329: std::copy(__middle, __last, __result)); 12329: } 12329: 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __partition(_ForwardIterator __first, _ForwardIterator __last, 12329: _Predicate __pred, forward_iterator_tag) 12329: { 12329: if (__first == __last) 12329: return __first; 12329: 12329: while (__pred(*__first)) 12329: if (++__first == __last) 12329: return __first; 12329: 12329: _ForwardIterator __next = __first; 12329: 12329: while (++__next != __last) 12329: if (__pred(*__next)) 12329: { 12329: std::iter_swap(__first, __next); 12329: ++__first; 12329: } 12329: 12329: return __first; 12329: } 12329: 12329: 12329: template 12329: 12329: _BidirectionalIterator 12329: __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, 12329: _Predicate __pred, bidirectional_iterator_tag) 12329: { 12329: while (true) 12329: { 12329: while (true) 12329: if (__first == __last) 12329: return __first; 12329: else if (__pred(*__first)) 12329: ++__first; 12329: else 12329: break; 12329: --__last; 12329: while (true) 12329: if (__first == __last) 12329: return __first; 12329: else if (!bool(__pred(*__last))) 12329: --__last; 12329: else 12329: break; 12329: std::iter_swap(__first, __last); 12329: ++__first; 12329: } 12329: } 12329: # 1503 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: _ForwardIterator 12329: __stable_partition_adaptive(_ForwardIterator __first, 12329: _ForwardIterator __last, 12329: _Predicate __pred, _Distance __len, 12329: _Pointer __buffer, 12329: _Distance __buffer_size) 12329: { 12329: if (__len == 1) 12329: return __first; 12329: 12329: if (__len <= __buffer_size) 12329: { 12329: _ForwardIterator __result1 = __first; 12329: _Pointer __result2 = __buffer; 12329: 12329: 12329: 12329: 12329: *__result2 = std::move(*__first); 12329: ++__result2; 12329: ++__first; 12329: for (; __first != __last; ++__first) 12329: if (__pred(__first)) 12329: { 12329: *__result1 = std::move(*__first); 12329: ++__result1; 12329: } 12329: else 12329: { 12329: *__result2 = std::move(*__first); 12329: ++__result2; 12329: } 12329: 12329: std::move(__buffer, __result2, __result1); 12329: return __result1; 12329: } 12329: 12329: _ForwardIterator __middle = __first; 12329: std::advance(__middle, __len / 2); 12329: _ForwardIterator __left_split = 12329: std::__stable_partition_adaptive(__first, __middle, __pred, 12329: __len / 2, __buffer, 12329: __buffer_size); 12329: 12329: 12329: 12329: _Distance __right_len = __len - __len / 2; 12329: _ForwardIterator __right_split = 12329: std::__find_if_not_n(__middle, __right_len, __pred); 12329: 12329: if (__right_len) 12329: __right_split = 12329: std::__stable_partition_adaptive(__right_split, __last, __pred, 12329: __right_len, 12329: __buffer, __buffer_size); 12329: 12329: return std::rotate(__left_split, __middle, __right_split); 12329: } 12329: 12329: template 12329: _ForwardIterator 12329: __stable_partition(_ForwardIterator __first, _ForwardIterator __last, 12329: _Predicate __pred) 12329: { 12329: __first = std::__find_if_not(__first, __last, __pred); 12329: 12329: if (__first == __last) 12329: return __first; 12329: 12329: typedef typename iterator_traits<_ForwardIterator>::value_type 12329: _ValueType; 12329: typedef typename iterator_traits<_ForwardIterator>::difference_type 12329: _DistanceType; 12329: 12329: _Temporary_buffer<_ForwardIterator, _ValueType> 12329: __buf(__first, std::distance(__first, __last)); 12329: return 12329: std::__stable_partition_adaptive(__first, __last, __pred, 12329: _DistanceType(__buf.requested_size()), 12329: __buf.begin(), 12329: _DistanceType(__buf.size())); 12329: } 12329: # 1605 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: inline _ForwardIterator 12329: stable_partition(_ForwardIterator __first, _ForwardIterator __last, 12329: _Predicate __pred) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__stable_partition(__first, __last, 12329: __gnu_cxx::__ops::__pred_iter(__pred)); 12329: } 12329: 12329: 12329: template 12329: 12329: void 12329: __heap_select(_RandomAccessIterator __first, 12329: _RandomAccessIterator __middle, 12329: _RandomAccessIterator __last, _Compare __comp) 12329: { 12329: std::__make_heap(__first, __middle, __comp); 12329: for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) 12329: if (__comp(__i, __first)) 12329: std::__pop_heap(__first, __middle, __i, __comp); 12329: } 12329: 12329: 12329: 12329: template 12329: 12329: _RandomAccessIterator 12329: __partial_sort_copy(_InputIterator __first, _InputIterator __last, 12329: _RandomAccessIterator __result_first, 12329: _RandomAccessIterator __result_last, 12329: _Compare __comp) 12329: { 12329: typedef typename iterator_traits<_InputIterator>::value_type 12329: _InputValueType; 12329: typedef iterator_traits<_RandomAccessIterator> _RItTraits; 12329: typedef typename _RItTraits::difference_type _DistanceType; 12329: 12329: if (__result_first == __result_last) 12329: return __result_last; 12329: _RandomAccessIterator __result_real_last = __result_first; 12329: while (__first != __last && __result_real_last != __result_last) 12329: { 12329: *__result_real_last = *__first; 12329: ++__result_real_last; 12329: ++__first; 12329: } 12329: 12329: std::__make_heap(__result_first, __result_real_last, __comp); 12329: while (__first != __last) 12329: { 12329: if (__comp(__first, __result_first)) 12329: std::__adjust_heap(__result_first, _DistanceType(0), 12329: _DistanceType(__result_real_last 12329: - __result_first), 12329: _InputValueType(*__first), __comp); 12329: ++__first; 12329: } 12329: std::__sort_heap(__result_first, __result_real_last, __comp); 12329: return __result_real_last; 12329: } 12329: # 1693 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _RandomAccessIterator 12329: partial_sort_copy(_InputIterator __first, _InputIterator __last, 12329: _RandomAccessIterator __result_first, 12329: _RandomAccessIterator __result_last) 12329: { 12329: # 1708 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__partial_sort_copy(__first, __last, 12329: __result_first, __result_last, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 1743 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _RandomAccessIterator 12329: partial_sort_copy(_InputIterator __first, _InputIterator __last, 12329: _RandomAccessIterator __result_first, 12329: _RandomAccessIterator __result_last, 12329: _Compare __comp) 12329: { 12329: # 1760 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__partial_sort_copy(__first, __last, 12329: __result_first, __result_last, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: 12329: template 12329: 12329: void 12329: __unguarded_linear_insert(_RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: typename iterator_traits<_RandomAccessIterator>::value_type 12329: __val = std::move(*__last); 12329: _RandomAccessIterator __next = __last; 12329: --__next; 12329: while (__comp(__val, __next)) 12329: { 12329: *__last = std::move(*__next); 12329: __last = __next; 12329: --__next; 12329: } 12329: *__last = std::move(__val); 12329: } 12329: 12329: 12329: template 12329: 12329: void 12329: __insertion_sort(_RandomAccessIterator __first, 12329: _RandomAccessIterator __last, _Compare __comp) 12329: { 12329: if (__first == __last) return; 12329: 12329: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 12329: { 12329: if (__comp(__i, __first)) 12329: { 12329: typename iterator_traits<_RandomAccessIterator>::value_type 12329: __val = std::move(*__i); 12329: std::move_backward(__first, __i, __i + 1); 12329: *__first = std::move(__val); 12329: } 12329: else 12329: std::__unguarded_linear_insert(__i, 12329: __gnu_cxx::__ops::__val_comp_iter(__comp)); 12329: } 12329: } 12329: 12329: 12329: template 12329: 12329: inline void 12329: __unguarded_insertion_sort(_RandomAccessIterator __first, 12329: _RandomAccessIterator __last, _Compare __comp) 12329: { 12329: for (_RandomAccessIterator __i = __first; __i != __last; ++__i) 12329: std::__unguarded_linear_insert(__i, 12329: __gnu_cxx::__ops::__val_comp_iter(__comp)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: enum { _S_threshold = 16 }; 12329: 12329: 12329: template 12329: 12329: void 12329: __final_insertion_sort(_RandomAccessIterator __first, 12329: _RandomAccessIterator __last, _Compare __comp) 12329: { 12329: if (__last - __first > int(_S_threshold)) 12329: { 12329: std::__insertion_sort(__first, __first + int(_S_threshold), __comp); 12329: std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, 12329: __comp); 12329: } 12329: else 12329: std::__insertion_sort(__first, __last, __comp); 12329: } 12329: 12329: 12329: template 12329: 12329: _RandomAccessIterator 12329: __unguarded_partition(_RandomAccessIterator __first, 12329: _RandomAccessIterator __last, 12329: _RandomAccessIterator __pivot, _Compare __comp) 12329: { 12329: while (true) 12329: { 12329: while (__comp(__first, __pivot)) 12329: ++__first; 12329: --__last; 12329: while (__comp(__pivot, __last)) 12329: --__last; 12329: if (!(__first < __last)) 12329: return __first; 12329: std::iter_swap(__first, __last); 12329: ++__first; 12329: } 12329: } 12329: 12329: 12329: template 12329: 12329: inline _RandomAccessIterator 12329: __unguarded_partition_pivot(_RandomAccessIterator __first, 12329: _RandomAccessIterator __last, _Compare __comp) 12329: { 12329: _RandomAccessIterator __mid = __first + (__last - __first) / 2; 12329: std::__move_median_to_first(__first, __first + 1, __mid, __last - 1, 12329: __comp); 12329: return std::__unguarded_partition(__first + 1, __last, __first, __comp); 12329: } 12329: 12329: template 12329: 12329: inline void 12329: __partial_sort(_RandomAccessIterator __first, 12329: _RandomAccessIterator __middle, 12329: _RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: std::__heap_select(__first, __middle, __last, __comp); 12329: std::__sort_heap(__first, __middle, __comp); 12329: } 12329: 12329: 12329: template 12329: 12329: void 12329: __introsort_loop(_RandomAccessIterator __first, 12329: _RandomAccessIterator __last, 12329: _Size __depth_limit, _Compare __comp) 12329: { 12329: while (__last - __first > int(_S_threshold)) 12329: { 12329: if (__depth_limit == 0) 12329: { 12329: std::__partial_sort(__first, __last, __last, __comp); 12329: return; 12329: } 12329: --__depth_limit; 12329: _RandomAccessIterator __cut = 12329: std::__unguarded_partition_pivot(__first, __last, __comp); 12329: std::__introsort_loop(__cut, __last, __depth_limit, __comp); 12329: __last = __cut; 12329: } 12329: } 12329: 12329: 12329: 12329: template 12329: 12329: inline void 12329: __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: if (__first != __last) 12329: { 12329: std::__introsort_loop(__first, __last, 12329: std::__lg(__last - __first) * 2, 12329: __comp); 12329: std::__final_insertion_sort(__first, __last, __comp); 12329: } 12329: } 12329: 12329: template 12329: 12329: void 12329: __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, 12329: _RandomAccessIterator __last, _Size __depth_limit, 12329: _Compare __comp) 12329: { 12329: while (__last - __first > 3) 12329: { 12329: if (__depth_limit == 0) 12329: { 12329: std::__heap_select(__first, __nth + 1, __last, __comp); 12329: 12329: std::iter_swap(__first, __nth); 12329: return; 12329: } 12329: --__depth_limit; 12329: _RandomAccessIterator __cut = 12329: std::__unguarded_partition_pivot(__first, __last, __comp); 12329: if (__cut <= __nth) 12329: __first = __cut; 12329: else 12329: __last = __cut; 12329: } 12329: std::__insertion_sort(__first, __last, __comp); 12329: } 12329: # 1991 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __val, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__lower_bound(__first, __last, __val, 12329: __gnu_cxx::__ops::__iter_comp_val(__comp)); 12329: } 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __upper_bound(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __val, _Compare __comp) 12329: { 12329: typedef typename iterator_traits<_ForwardIterator>::difference_type 12329: _DistanceType; 12329: 12329: _DistanceType __len = std::distance(__first, __last); 12329: 12329: while (__len > 0) 12329: { 12329: _DistanceType __half = __len >> 1; 12329: _ForwardIterator __middle = __first; 12329: std::advance(__middle, __half); 12329: if (__comp(__val, __middle)) 12329: __len = __half; 12329: else 12329: { 12329: __first = __middle; 12329: ++__first; 12329: __len = __len - __half - 1; 12329: } 12329: } 12329: return __first; 12329: } 12329: # 2047 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __val) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__upper_bound(__first, __last, __val, 12329: __gnu_cxx::__ops::__val_less_iter()); 12329: } 12329: # 2078 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __val, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__upper_bound(__first, __last, __val, 12329: __gnu_cxx::__ops::__val_comp_iter(__comp)); 12329: } 12329: 12329: template 12329: 12329: pair<_ForwardIterator, _ForwardIterator> 12329: __equal_range(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __val, 12329: _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it) 12329: { 12329: typedef typename iterator_traits<_ForwardIterator>::difference_type 12329: _DistanceType; 12329: 12329: _DistanceType __len = std::distance(__first, __last); 12329: 12329: while (__len > 0) 12329: { 12329: _DistanceType __half = __len >> 1; 12329: _ForwardIterator __middle = __first; 12329: std::advance(__middle, __half); 12329: if (__comp_it_val(__middle, __val)) 12329: { 12329: __first = __middle; 12329: ++__first; 12329: __len = __len - __half - 1; 12329: } 12329: else if (__comp_val_it(__val, __middle)) 12329: __len = __half; 12329: else 12329: { 12329: _ForwardIterator __left 12329: = std::__lower_bound(__first, __middle, __val, __comp_it_val); 12329: std::advance(__first, __len); 12329: _ForwardIterator __right 12329: = std::__upper_bound(++__middle, __first, __val, __comp_val_it); 12329: return pair<_ForwardIterator, _ForwardIterator>(__left, __right); 12329: } 12329: } 12329: return pair<_ForwardIterator, _ForwardIterator>(__first, __first); 12329: } 12329: # 2151 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline pair<_ForwardIterator, _ForwardIterator> 12329: equal_range(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __val) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__equal_range(__first, __last, __val, 12329: __gnu_cxx::__ops::__iter_less_val(), 12329: __gnu_cxx::__ops::__val_less_iter()); 12329: } 12329: # 2188 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline pair<_ForwardIterator, _ForwardIterator> 12329: equal_range(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __val, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: ; 12329: 12329: return std::__equal_range(__first, __last, __val, 12329: __gnu_cxx::__ops::__iter_comp_val(__comp), 12329: __gnu_cxx::__ops::__val_comp_iter(__comp)); 12329: } 12329: # 2222 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: bool 12329: binary_search(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __val) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: _ForwardIterator __i 12329: = std::__lower_bound(__first, __last, __val, 12329: __gnu_cxx::__ops::__iter_less_val()); 12329: return __i != __last && !(__val < *__i); 12329: } 12329: # 2256 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: bool 12329: binary_search(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __val, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: ; 12329: 12329: _ForwardIterator __i 12329: = std::__lower_bound(__first, __last, __val, 12329: __gnu_cxx::__ops::__iter_comp_val(__comp)); 12329: return __i != __last && !bool(__comp(__val, *__i)); 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result, _Compare __comp) 12329: { 12329: while (__first1 != __last1 && __first2 != __last2) 12329: { 12329: if (__comp(__first2, __first1)) 12329: { 12329: *__result = std::move(*__first2); 12329: ++__first2; 12329: } 12329: else 12329: { 12329: *__result = std::move(*__first1); 12329: ++__first1; 12329: } 12329: ++__result; 12329: } 12329: if (__first1 != __last1) 12329: std::move(__first1, __last1, __result); 12329: } 12329: 12329: 12329: template 12329: void 12329: __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, 12329: _BidirectionalIterator1 __last1, 12329: _BidirectionalIterator2 __first2, 12329: _BidirectionalIterator2 __last2, 12329: _BidirectionalIterator3 __result, 12329: _Compare __comp) 12329: { 12329: if (__first1 == __last1) 12329: { 12329: std::move_backward(__first2, __last2, __result); 12329: return; 12329: } 12329: else if (__first2 == __last2) 12329: return; 12329: 12329: --__last1; 12329: --__last2; 12329: while (true) 12329: { 12329: if (__comp(__last2, __last1)) 12329: { 12329: *--__result = std::move(*__last1); 12329: if (__first1 == __last1) 12329: { 12329: std::move_backward(__first2, ++__last2, __result); 12329: return; 12329: } 12329: --__last1; 12329: } 12329: else 12329: { 12329: *--__result = std::move(*__last2); 12329: if (__first2 == __last2) 12329: return; 12329: --__last2; 12329: } 12329: } 12329: } 12329: 12329: 12329: template 12329: _BidirectionalIterator1 12329: __rotate_adaptive(_BidirectionalIterator1 __first, 12329: _BidirectionalIterator1 __middle, 12329: _BidirectionalIterator1 __last, 12329: _Distance __len1, _Distance __len2, 12329: _BidirectionalIterator2 __buffer, 12329: _Distance __buffer_size) 12329: { 12329: _BidirectionalIterator2 __buffer_end; 12329: if (__len1 > __len2 && __len2 <= __buffer_size) 12329: { 12329: if (__len2) 12329: { 12329: __buffer_end = std::move(__middle, __last, __buffer); 12329: std::move_backward(__first, __middle, __last); 12329: return std::move(__buffer, __buffer_end, __first); 12329: } 12329: else 12329: return __first; 12329: } 12329: else if (__len1 <= __buffer_size) 12329: { 12329: if (__len1) 12329: { 12329: __buffer_end = std::move(__first, __middle, __buffer); 12329: std::move(__middle, __last, __first); 12329: return std::move_backward(__buffer, __buffer_end, __last); 12329: } 12329: else 12329: return __last; 12329: } 12329: else 12329: return std::rotate(__first, __middle, __last); 12329: } 12329: 12329: 12329: template 12329: void 12329: __merge_adaptive(_BidirectionalIterator __first, 12329: _BidirectionalIterator __middle, 12329: _BidirectionalIterator __last, 12329: _Distance __len1, _Distance __len2, 12329: _Pointer __buffer, _Distance __buffer_size, 12329: _Compare __comp) 12329: { 12329: if (__len1 <= __len2 && __len1 <= __buffer_size) 12329: { 12329: _Pointer __buffer_end = std::move(__first, __middle, __buffer); 12329: std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, 12329: __first, __comp); 12329: } 12329: else if (__len2 <= __buffer_size) 12329: { 12329: _Pointer __buffer_end = std::move(__middle, __last, __buffer); 12329: std::__move_merge_adaptive_backward(__first, __middle, __buffer, 12329: __buffer_end, __last, __comp); 12329: } 12329: else 12329: { 12329: _BidirectionalIterator __first_cut = __first; 12329: _BidirectionalIterator __second_cut = __middle; 12329: _Distance __len11 = 0; 12329: _Distance __len22 = 0; 12329: if (__len1 > __len2) 12329: { 12329: __len11 = __len1 / 2; 12329: std::advance(__first_cut, __len11); 12329: __second_cut 12329: = std::__lower_bound(__middle, __last, *__first_cut, 12329: __gnu_cxx::__ops::__iter_comp_val(__comp)); 12329: __len22 = std::distance(__middle, __second_cut); 12329: } 12329: else 12329: { 12329: __len22 = __len2 / 2; 12329: std::advance(__second_cut, __len22); 12329: __first_cut 12329: = std::__upper_bound(__first, __middle, *__second_cut, 12329: __gnu_cxx::__ops::__val_comp_iter(__comp)); 12329: __len11 = std::distance(__first, __first_cut); 12329: } 12329: 12329: _BidirectionalIterator __new_middle 12329: = std::__rotate_adaptive(__first_cut, __middle, __second_cut, 12329: __len1 - __len11, __len22, __buffer, 12329: __buffer_size); 12329: std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, 12329: __len22, __buffer, __buffer_size, __comp); 12329: std::__merge_adaptive(__new_middle, __second_cut, __last, 12329: __len1 - __len11, 12329: __len2 - __len22, __buffer, 12329: __buffer_size, __comp); 12329: } 12329: } 12329: 12329: 12329: template 12329: void 12329: __merge_without_buffer(_BidirectionalIterator __first, 12329: _BidirectionalIterator __middle, 12329: _BidirectionalIterator __last, 12329: _Distance __len1, _Distance __len2, 12329: _Compare __comp) 12329: { 12329: if (__len1 == 0 || __len2 == 0) 12329: return; 12329: 12329: if (__len1 + __len2 == 2) 12329: { 12329: if (__comp(__middle, __first)) 12329: std::iter_swap(__first, __middle); 12329: return; 12329: } 12329: 12329: _BidirectionalIterator __first_cut = __first; 12329: _BidirectionalIterator __second_cut = __middle; 12329: _Distance __len11 = 0; 12329: _Distance __len22 = 0; 12329: if (__len1 > __len2) 12329: { 12329: __len11 = __len1 / 2; 12329: std::advance(__first_cut, __len11); 12329: __second_cut 12329: = std::__lower_bound(__middle, __last, *__first_cut, 12329: __gnu_cxx::__ops::__iter_comp_val(__comp)); 12329: __len22 = std::distance(__middle, __second_cut); 12329: } 12329: else 12329: { 12329: __len22 = __len2 / 2; 12329: std::advance(__second_cut, __len22); 12329: __first_cut 12329: = std::__upper_bound(__first, __middle, *__second_cut, 12329: __gnu_cxx::__ops::__val_comp_iter(__comp)); 12329: __len11 = std::distance(__first, __first_cut); 12329: } 12329: 12329: _BidirectionalIterator __new_middle 12329: = std::rotate(__first_cut, __middle, __second_cut); 12329: std::__merge_without_buffer(__first, __first_cut, __new_middle, 12329: __len11, __len22, __comp); 12329: std::__merge_without_buffer(__new_middle, __second_cut, __last, 12329: __len1 - __len11, __len2 - __len22, __comp); 12329: } 12329: 12329: template 12329: void 12329: __inplace_merge(_BidirectionalIterator __first, 12329: _BidirectionalIterator __middle, 12329: _BidirectionalIterator __last, 12329: _Compare __comp) 12329: { 12329: typedef typename iterator_traits<_BidirectionalIterator>::value_type 12329: _ValueType; 12329: typedef typename iterator_traits<_BidirectionalIterator>::difference_type 12329: _DistanceType; 12329: typedef _Temporary_buffer<_BidirectionalIterator, _ValueType> _TmpBuf; 12329: 12329: if (__first == __middle || __middle == __last) 12329: return; 12329: 12329: const _DistanceType __len1 = std::distance(__first, __middle); 12329: const _DistanceType __len2 = std::distance(__middle, __last); 12329: 12329: 12329: 12329: _TmpBuf __buf(__first, std::min(__len1, __len2)); 12329: 12329: if (__buf.begin() == 0) 12329: std::__merge_without_buffer 12329: (__first, __middle, __last, __len1, __len2, __comp); 12329: else 12329: std::__merge_adaptive 12329: (__first, __middle, __last, __len1, __len2, __buf.begin(), 12329: _DistanceType(__buf.size()), __comp); 12329: } 12329: # 2548 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: inline void 12329: inplace_merge(_BidirectionalIterator __first, 12329: _BidirectionalIterator __middle, 12329: _BidirectionalIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: 12329: std::__inplace_merge(__first, __middle, __last, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 2589 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: inline void 12329: inplace_merge(_BidirectionalIterator __first, 12329: _BidirectionalIterator __middle, 12329: _BidirectionalIterator __last, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: 12329: std::__inplace_merge(__first, __middle, __last, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: 12329: 12329: template 12329: _OutputIterator 12329: __move_merge(_InputIterator __first1, _InputIterator __last1, 12329: _InputIterator __first2, _InputIterator __last2, 12329: _OutputIterator __result, _Compare __comp) 12329: { 12329: while (__first1 != __last1 && __first2 != __last2) 12329: { 12329: if (__comp(__first2, __first1)) 12329: { 12329: *__result = std::move(*__first2); 12329: ++__first2; 12329: } 12329: else 12329: { 12329: *__result = std::move(*__first1); 12329: ++__first1; 12329: } 12329: ++__result; 12329: } 12329: return std::move(__first2, __last2, std::move(__first1, __last1, __result)) 12329: 12329: ; 12329: } 12329: 12329: template 12329: void 12329: __merge_sort_loop(_RandomAccessIterator1 __first, 12329: _RandomAccessIterator1 __last, 12329: _RandomAccessIterator2 __result, _Distance __step_size, 12329: _Compare __comp) 12329: { 12329: const _Distance __two_step = 2 * __step_size; 12329: 12329: while (__last - __first >= __two_step) 12329: { 12329: __result = std::__move_merge(__first, __first + __step_size, 12329: __first + __step_size, 12329: __first + __two_step, 12329: __result, __comp); 12329: __first += __two_step; 12329: } 12329: __step_size = std::min(_Distance(__last - __first), __step_size); 12329: 12329: std::__move_merge(__first, __first + __step_size, 12329: __first + __step_size, __last, __result, __comp); 12329: } 12329: 12329: template 12329: 12329: void 12329: __chunk_insertion_sort(_RandomAccessIterator __first, 12329: _RandomAccessIterator __last, 12329: _Distance __chunk_size, _Compare __comp) 12329: { 12329: while (__last - __first >= __chunk_size) 12329: { 12329: std::__insertion_sort(__first, __first + __chunk_size, __comp); 12329: __first += __chunk_size; 12329: } 12329: std::__insertion_sort(__first, __last, __comp); 12329: } 12329: 12329: enum { _S_chunk_size = 7 }; 12329: 12329: template 12329: void 12329: __merge_sort_with_buffer(_RandomAccessIterator __first, 12329: _RandomAccessIterator __last, 12329: _Pointer __buffer, _Compare __comp) 12329: { 12329: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 12329: _Distance; 12329: 12329: const _Distance __len = __last - __first; 12329: const _Pointer __buffer_last = __buffer + __len; 12329: 12329: _Distance __step_size = _S_chunk_size; 12329: std::__chunk_insertion_sort(__first, __last, __step_size, __comp); 12329: 12329: while (__step_size < __len) 12329: { 12329: std::__merge_sort_loop(__first, __last, __buffer, 12329: __step_size, __comp); 12329: __step_size *= 2; 12329: std::__merge_sort_loop(__buffer, __buffer_last, __first, 12329: __step_size, __comp); 12329: __step_size *= 2; 12329: } 12329: } 12329: 12329: template 12329: void 12329: __stable_sort_adaptive(_RandomAccessIterator __first, 12329: _RandomAccessIterator __last, 12329: _Pointer __buffer, _Distance __buffer_size, 12329: _Compare __comp) 12329: { 12329: const _Distance __len = (__last - __first + 1) / 2; 12329: const _RandomAccessIterator __middle = __first + __len; 12329: if (__len > __buffer_size) 12329: { 12329: std::__stable_sort_adaptive(__first, __middle, __buffer, 12329: __buffer_size, __comp); 12329: std::__stable_sort_adaptive(__middle, __last, __buffer, 12329: __buffer_size, __comp); 12329: } 12329: else 12329: { 12329: std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); 12329: std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); 12329: } 12329: 12329: std::__merge_adaptive(__first, __middle, __last, 12329: _Distance(__middle - __first), 12329: _Distance(__last - __middle), 12329: __buffer, __buffer_size, 12329: __comp); 12329: } 12329: 12329: 12329: template 12329: void 12329: __inplace_stable_sort(_RandomAccessIterator __first, 12329: _RandomAccessIterator __last, _Compare __comp) 12329: { 12329: if (__last - __first < 15) 12329: { 12329: std::__insertion_sort(__first, __last, __comp); 12329: return; 12329: } 12329: _RandomAccessIterator __middle = __first + (__last - __first) / 2; 12329: std::__inplace_stable_sort(__first, __middle, __comp); 12329: std::__inplace_stable_sort(__middle, __last, __comp); 12329: std::__merge_without_buffer(__first, __middle, __last, 12329: __middle - __first, 12329: __last - __middle, 12329: __comp); 12329: } 12329: # 2763 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: bool 12329: __includes(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _Compare __comp) 12329: { 12329: while (__first1 != __last1 && __first2 != __last2) 12329: { 12329: if (__comp(__first2, __first1)) 12329: return false; 12329: if (!__comp(__first1, __first2)) 12329: ++__first2; 12329: ++__first1; 12329: } 12329: 12329: return __first2 == __last2; 12329: } 12329: # 2801 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: includes(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__includes(__first1, __last1, __first2, __last2, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 2846 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: includes(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__includes(__first1, __last1, __first2, __last2, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: # 2882 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: bool 12329: __next_permutation(_BidirectionalIterator __first, 12329: _BidirectionalIterator __last, _Compare __comp) 12329: { 12329: if (__first == __last) 12329: return false; 12329: _BidirectionalIterator __i = __first; 12329: ++__i; 12329: if (__i == __last) 12329: return false; 12329: __i = __last; 12329: --__i; 12329: 12329: for(;;) 12329: { 12329: _BidirectionalIterator __ii = __i; 12329: --__i; 12329: if (__comp(__i, __ii)) 12329: { 12329: _BidirectionalIterator __j = __last; 12329: while (!__comp(__i, --__j)) 12329: {} 12329: std::iter_swap(__i, __j); 12329: std::__reverse(__ii, __last, 12329: std::__iterator_category(__first)); 12329: return true; 12329: } 12329: if (__i == __first) 12329: { 12329: std::__reverse(__first, __last, 12329: std::__iterator_category(__first)); 12329: return false; 12329: } 12329: } 12329: } 12329: # 2932 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: next_permutation(_BidirectionalIterator __first, 12329: _BidirectionalIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__next_permutation 12329: (__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 2965 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: next_permutation(_BidirectionalIterator __first, 12329: _BidirectionalIterator __last, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__next_permutation 12329: (__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: template 12329: 12329: bool 12329: __prev_permutation(_BidirectionalIterator __first, 12329: _BidirectionalIterator __last, _Compare __comp) 12329: { 12329: if (__first == __last) 12329: return false; 12329: _BidirectionalIterator __i = __first; 12329: ++__i; 12329: if (__i == __last) 12329: return false; 12329: __i = __last; 12329: --__i; 12329: 12329: for(;;) 12329: { 12329: _BidirectionalIterator __ii = __i; 12329: --__i; 12329: if (__comp(__ii, __i)) 12329: { 12329: _BidirectionalIterator __j = __last; 12329: while (!__comp(--__j, __i)) 12329: {} 12329: std::iter_swap(__i, __j); 12329: std::__reverse(__ii, __last, 12329: std::__iterator_category(__first)); 12329: return true; 12329: } 12329: if (__i == __first) 12329: { 12329: std::__reverse(__first, __last, 12329: std::__iterator_category(__first)); 12329: return false; 12329: } 12329: } 12329: } 12329: # 3035 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: prev_permutation(_BidirectionalIterator __first, 12329: _BidirectionalIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__prev_permutation(__first, __last, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 3068 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: prev_permutation(_BidirectionalIterator __first, 12329: _BidirectionalIterator __last, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__prev_permutation(__first, __last, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: 12329: _OutputIterator 12329: __replace_copy_if(_InputIterator __first, _InputIterator __last, 12329: _OutputIterator __result, 12329: _Predicate __pred, const _Tp& __new_value) 12329: { 12329: for (; __first != __last; ++__first, (void)++__result) 12329: if (__pred(__first)) 12329: *__result = __new_value; 12329: else 12329: *__result = *__first; 12329: return __result; 12329: } 12329: # 3120 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: replace_copy(_InputIterator __first, _InputIterator __last, 12329: _OutputIterator __result, 12329: const _Tp& __old_value, const _Tp& __new_value) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__replace_copy_if(__first, __last, __result, 12329: __gnu_cxx::__ops::__iter_equals_val(__old_value), 12329: __new_value); 12329: } 12329: # 3155 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: replace_copy_if(_InputIterator __first, _InputIterator __last, 12329: _OutputIterator __result, 12329: _Predicate __pred, const _Tp& __new_value) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__replace_copy_if(__first, __last, __result, 12329: __gnu_cxx::__ops::__pred_iter(__pred), 12329: __new_value); 12329: } 12329: # 3184 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: is_sorted(_ForwardIterator __first, _ForwardIterator __last) 12329: { return std::is_sorted_until(__first, __last) == __last; } 12329: # 3199 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: is_sorted(_ForwardIterator __first, _ForwardIterator __last, 12329: _Compare __comp) 12329: { return std::is_sorted_until(__first, __last, __comp) == __last; } 12329: 12329: template 12329: 12329: _ForwardIterator 12329: __is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 12329: _Compare __comp) 12329: { 12329: if (__first == __last) 12329: return __last; 12329: 12329: _ForwardIterator __next = __first; 12329: for (++__next; __next != __last; __first = __next, (void)++__next) 12329: if (__comp(__next, __first)) 12329: return __next; 12329: return __next; 12329: } 12329: # 3230 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__is_sorted_until(__first, __last, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 3255 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__is_sorted_until(__first, __last, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: # 3281 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: constexpr 12329: inline pair 12329: minmax(const _Tp& __a, const _Tp& __b) 12329: { 12329: 12329: 12329: 12329: return __b < __a ? pair(__b, __a) 12329: : pair(__a, __b); 12329: } 12329: # 3302 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: constexpr 12329: inline pair 12329: minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) 12329: { 12329: return __comp(__b, __a) ? pair(__b, __a) 12329: : pair(__a, __b); 12329: } 12329: 12329: template 12329: constexpr 12329: pair<_ForwardIterator, _ForwardIterator> 12329: __minmax_element(_ForwardIterator __first, _ForwardIterator __last, 12329: _Compare __comp) 12329: { 12329: _ForwardIterator __next = __first; 12329: if (__first == __last 12329: || ++__next == __last) 12329: return std::make_pair(__first, __first); 12329: 12329: _ForwardIterator __min{}, __max{}; 12329: if (__comp(__next, __first)) 12329: { 12329: __min = __next; 12329: __max = __first; 12329: } 12329: else 12329: { 12329: __min = __first; 12329: __max = __next; 12329: } 12329: 12329: __first = __next; 12329: ++__first; 12329: 12329: while (__first != __last) 12329: { 12329: __next = __first; 12329: if (++__next == __last) 12329: { 12329: if (__comp(__first, __min)) 12329: __min = __first; 12329: else if (!__comp(__first, __max)) 12329: __max = __first; 12329: break; 12329: } 12329: 12329: if (__comp(__next, __first)) 12329: { 12329: if (__comp(__next, __min)) 12329: __min = __next; 12329: if (!__comp(__first, __max)) 12329: __max = __first; 12329: } 12329: else 12329: { 12329: if (__comp(__first, __min)) 12329: __min = __first; 12329: if (!__comp(__next, __max)) 12329: __max = __next; 12329: } 12329: 12329: __first = __next; 12329: ++__first; 12329: } 12329: 12329: return std::make_pair(__min, __max); 12329: } 12329: # 3382 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: constexpr 12329: inline pair<_ForwardIterator, _ForwardIterator> 12329: minmax_element(_ForwardIterator __first, _ForwardIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__minmax_element(__first, __last, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 3410 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: constexpr 12329: inline pair<_ForwardIterator, _ForwardIterator> 12329: minmax_element(_ForwardIterator __first, _ForwardIterator __last, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__minmax_element(__first, __last, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: template 12329: constexpr 12329: inline pair<_Tp, _Tp> 12329: minmax(initializer_list<_Tp> __l) 12329: { 12329: ; 12329: pair __p = 12329: std::__minmax_element(__l.begin(), __l.end(), 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: return std::make_pair(*__p.first, *__p.second); 12329: } 12329: 12329: template 12329: constexpr 12329: inline pair<_Tp, _Tp> 12329: minmax(initializer_list<_Tp> __l, _Compare __comp) 12329: { 12329: ; 12329: pair __p = 12329: std::__minmax_element(__l.begin(), __l.end(), 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: return std::make_pair(*__p.first, *__p.second); 12329: } 12329: # 3466 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2, _BinaryPredicate __pred) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__is_permutation(__first1, __last1, __first2, 12329: __gnu_cxx::__ops::__iter_comp_iter(__pred)); 12329: } 12329: 12329: 12329: template 12329: 12329: bool 12329: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 12329: _BinaryPredicate __pred) 12329: { 12329: using _Cat1 12329: = typename iterator_traits<_ForwardIterator1>::iterator_category; 12329: using _Cat2 12329: = typename iterator_traits<_ForwardIterator2>::iterator_category; 12329: using _It1_is_RA = is_same<_Cat1, random_access_iterator_tag>; 12329: using _It2_is_RA = is_same<_Cat2, random_access_iterator_tag>; 12329: constexpr bool __ra_iters = _It1_is_RA() && _It2_is_RA(); 12329: if (__ra_iters) 12329: { 12329: auto __d1 = std::distance(__first1, __last1); 12329: auto __d2 = std::distance(__first2, __last2); 12329: if (__d1 != __d2) 12329: return false; 12329: } 12329: 12329: 12329: 12329: for (; __first1 != __last1 && __first2 != __last2; 12329: ++__first1, (void)++__first2) 12329: if (!__pred(__first1, __first2)) 12329: break; 12329: 12329: if (__ra_iters) 12329: { 12329: if (__first1 == __last1) 12329: return true; 12329: } 12329: else 12329: { 12329: auto __d1 = std::distance(__first1, __last1); 12329: auto __d2 = std::distance(__first2, __last2); 12329: if (__d1 == 0 && __d2 == 0) 12329: return true; 12329: if (__d1 != __d2) 12329: return false; 12329: } 12329: 12329: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 12329: { 12329: if (__scan != std::__find_if(__first1, __scan, 12329: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 12329: continue; 12329: 12329: auto __matches = std::__count_if(__first2, __last2, 12329: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 12329: if (0 == __matches 12329: || std::__count_if(__scan, __last1, 12329: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 12329: != __matches) 12329: return false; 12329: } 12329: return true; 12329: } 12329: # 3561 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 12329: { 12329: ; 12329: ; 12329: 12329: return 12329: std::__is_permutation(__first1, __last1, __first2, __last2, 12329: __gnu_cxx::__ops::__iter_equal_to_iter()); 12329: } 12329: # 3589 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline bool 12329: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 12329: _BinaryPredicate __pred) 12329: { 12329: ; 12329: ; 12329: 12329: return std::__is_permutation(__first1, __last1, __first2, __last2, 12329: __gnu_cxx::__ops::__iter_comp_iter(__pred)); 12329: } 12329: # 3671 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: pair<_IntType, _IntType> 12329: __gen_two_uniform_ints(_IntType __b0, _IntType __b1, 12329: _UniformRandomBitGenerator&& __g) 12329: { 12329: _IntType __x 12329: = uniform_int_distribution<_IntType>{0, (__b0 * __b1) - 1}(__g); 12329: return std::make_pair(__x / __b1, __x % __b1); 12329: } 12329: # 3693 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: void 12329: shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _UniformRandomNumberGenerator&& __g) 12329: { 12329: 12329: 12329: 12329: ; 12329: 12329: if (__first == __last) 12329: return; 12329: 12329: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 12329: _DistanceType; 12329: 12329: typedef typename std::make_unsigned<_DistanceType>::type __ud_type; 12329: typedef typename std::uniform_int_distribution<__ud_type> __distr_type; 12329: typedef typename __distr_type::param_type __p_type; 12329: 12329: typedef typename remove_reference<_UniformRandomNumberGenerator>::type 12329: _Gen; 12329: typedef typename common_type::type 12329: __uc_type; 12329: 12329: const __uc_type __urngrange = __g.max() - __g.min(); 12329: const __uc_type __urange = __uc_type(__last - __first); 12329: 12329: if (__urngrange / __urange >= __urange) 12329: 12329: { 12329: _RandomAccessIterator __i = __first + 1; 12329: 12329: 12329: 12329: 12329: 12329: if ((__urange % 2) == 0) 12329: { 12329: __distr_type __d{0, 1}; 12329: std::iter_swap(__i++, __first + __d(__g)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: while (__i != __last) 12329: { 12329: const __uc_type __swap_range = __uc_type(__i - __first) + 1; 12329: 12329: const pair<__uc_type, __uc_type> __pospos = 12329: __gen_two_uniform_ints(__swap_range, __swap_range + 1, __g); 12329: 12329: std::iter_swap(__i++, __first + __pospos.first); 12329: std::iter_swap(__i++, __first + __pospos.second); 12329: } 12329: 12329: return; 12329: } 12329: 12329: __distr_type __d; 12329: 12329: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 12329: std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first))); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: # 3778 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: _Function 12329: for_each(_InputIterator __first, _InputIterator __last, _Function __f) 12329: { 12329: 12329: 12329: ; 12329: for (; __first != __last; ++__first) 12329: __f(*__first); 12329: return __f; 12329: } 12329: # 3840 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _InputIterator 12329: find(_InputIterator __first, _InputIterator __last, 12329: const _Tp& __val) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: return std::__find_if(__first, __last, 12329: __gnu_cxx::__ops::__iter_equals_val(__val)); 12329: } 12329: # 3865 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _InputIterator 12329: find_if(_InputIterator __first, _InputIterator __last, 12329: _Predicate __pred) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__find_if(__first, __last, 12329: __gnu_cxx::__ops::__pred_iter(__pred)); 12329: } 12329: # 3897 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: _InputIterator 12329: find_first_of(_InputIterator __first1, _InputIterator __last1, 12329: _ForwardIterator __first2, _ForwardIterator __last2) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: for (; __first1 != __last1; ++__first1) 12329: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 12329: if (*__first1 == *__iter) 12329: return __first1; 12329: return __last1; 12329: } 12329: # 3938 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: _InputIterator 12329: find_first_of(_InputIterator __first1, _InputIterator __last1, 12329: _ForwardIterator __first2, _ForwardIterator __last2, 12329: _BinaryPredicate __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: for (; __first1 != __last1; ++__first1) 12329: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 12329: if (__comp(*__first1, *__iter)) 12329: return __first1; 12329: return __last1; 12329: } 12329: # 3971 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: adjacent_find(_ForwardIterator __first, _ForwardIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__adjacent_find(__first, __last, 12329: __gnu_cxx::__ops::__iter_equal_to_iter()); 12329: } 12329: # 3997 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 12329: _BinaryPredicate __binary_pred) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__adjacent_find(__first, __last, 12329: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 12329: } 12329: # 4023 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline typename iterator_traits<_InputIterator>::difference_type 12329: count(_InputIterator __first, _InputIterator __last, const _Tp& __value) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__count_if(__first, __last, 12329: __gnu_cxx::__ops::__iter_equals_val(__value)); 12329: } 12329: # 4047 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline typename iterator_traits<_InputIterator>::difference_type 12329: count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__count_if(__first, __last, 12329: __gnu_cxx::__ops::__pred_iter(__pred)); 12329: } 12329: # 4088 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator1 12329: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__search(__first1, __last1, __first2, __last2, 12329: __gnu_cxx::__ops::__iter_equal_to_iter()); 12329: } 12329: # 4128 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator1 12329: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 12329: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 12329: _BinaryPredicate __predicate) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__search(__first1, __last1, __first2, __last2, 12329: __gnu_cxx::__ops::__iter_comp_iter(__predicate)); 12329: } 12329: # 4164 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: search_n(_ForwardIterator __first, _ForwardIterator __last, 12329: _Integer __count, const _Tp& __val) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__search_n(__first, __last, __count, 12329: __gnu_cxx::__ops::__iter_equals_val(__val)); 12329: } 12329: # 4198 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: search_n(_ForwardIterator __first, _ForwardIterator __last, 12329: _Integer __count, const _Tp& __val, 12329: _BinaryPredicate __binary_pred) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__search_n(__first, __last, __count, 12329: __gnu_cxx::__ops::__iter_comp_val(__binary_pred, __val)); 12329: } 12329: # 4248 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: _OutputIterator 12329: transform(_InputIterator __first, _InputIterator __last, 12329: _OutputIterator __result, _UnaryOperation __unary_op) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: for (; __first != __last; ++__first, (void)++__result) 12329: *__result = __unary_op(*__first); 12329: return __result; 12329: } 12329: # 4286 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: _OutputIterator 12329: transform(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _OutputIterator __result, 12329: _BinaryOperation __binary_op) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: for (; __first1 != __last1; ++__first1, (void)++__first2, ++__result) 12329: *__result = __binary_op(*__first1, *__first2); 12329: return __result; 12329: } 12329: # 4320 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: void 12329: replace(_ForwardIterator __first, _ForwardIterator __last, 12329: const _Tp& __old_value, const _Tp& __new_value) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: for (; __first != __last; ++__first) 12329: if (*__first == __old_value) 12329: *__first = __new_value; 12329: } 12329: # 4353 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: void 12329: replace_if(_ForwardIterator __first, _ForwardIterator __last, 12329: _Predicate __pred, const _Tp& __new_value) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: for (; __first != __last; ++__first) 12329: if (__pred(*__first)) 12329: *__first = __new_value; 12329: } 12329: # 4386 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: void 12329: generate(_ForwardIterator __first, _ForwardIterator __last, 12329: _Generator __gen) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: for (; __first != __last; ++__first) 12329: *__first = __gen(); 12329: } 12329: # 4420 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: _OutputIterator 12329: generate_n(_OutputIterator __first, _Size __n, _Generator __gen) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: typedef __decltype(std::__size_to_integer(__n)) _IntSize; 12329: for (_IntSize __niter = std::__size_to_integer(__n); 12329: __niter > 0; --__niter, (void) ++__first) 12329: *__first = __gen(); 12329: return __first; 12329: } 12329: # 4458 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: unique_copy(_InputIterator __first, _InputIterator __last, 12329: _OutputIterator __result) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: if (__first == __last) 12329: return __result; 12329: return std::__unique_copy(__first, __last, __result, 12329: __gnu_cxx::__ops::__iter_equal_to_iter(), 12329: std::__iterator_category(__first), 12329: std::__iterator_category(__result)); 12329: } 12329: # 4499 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: unique_copy(_InputIterator __first, _InputIterator __last, 12329: _OutputIterator __result, 12329: _BinaryPredicate __binary_pred) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: if (__first == __last) 12329: return __result; 12329: return std::__unique_copy(__first, __last, __result, 12329: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred), 12329: std::__iterator_category(__first), 12329: std::__iterator_category(__result)); 12329: } 12329: # 4538 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::shuffle" "' instead"))) 12329: inline void 12329: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) 12329: { 12329: 12329: 12329: 12329: ; 12329: 12329: if (__first != __last) 12329: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 12329: { 12329: 12329: _RandomAccessIterator __j = __first 12329: + std::rand() % ((__i - __first) + 1); 12329: if (__i != __j) 12329: std::iter_swap(__i, __j); 12329: } 12329: } 12329: # 4578 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: __attribute__ ((__deprecated__ ("use '" "std::shuffle" "' instead"))) 12329: void 12329: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: 12329: _RandomNumberGenerator&& __rand) 12329: 12329: 12329: 12329: { 12329: 12329: 12329: 12329: ; 12329: 12329: if (__first == __last) 12329: return; 12329: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 12329: { 12329: _RandomAccessIterator __j = __first + __rand((__i - __first) + 1); 12329: if (__i != __j) 12329: std::iter_swap(__i, __j); 12329: } 12329: } 12329: # 4619 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _ForwardIterator 12329: partition(_ForwardIterator __first, _ForwardIterator __last, 12329: _Predicate __pred) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: return std::__partition(__first, __last, __pred, 12329: std::__iterator_category(__first)); 12329: } 12329: # 4653 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline void 12329: partial_sort(_RandomAccessIterator __first, 12329: _RandomAccessIterator __middle, 12329: _RandomAccessIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: 12329: std::__partial_sort(__first, __middle, __last, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 4692 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline void 12329: partial_sort(_RandomAccessIterator __first, 12329: _RandomAccessIterator __middle, 12329: _RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: 12329: std::__partial_sort(__first, __middle, __last, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: # 4729 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline void 12329: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 12329: _RandomAccessIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: 12329: if (__first == __last || __nth == __last) 12329: return; 12329: 12329: std::__introselect(__first, __nth, __last, 12329: std::__lg(__last - __first) * 2, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 4769 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline void 12329: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 12329: _RandomAccessIterator __last, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: 12329: if (__first == __last || __nth == __last) 12329: return; 12329: 12329: std::__introselect(__first, __nth, __last, 12329: std::__lg(__last - __first) * 2, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: # 4807 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline void 12329: sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 4838 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline void 12329: sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: template 12329: 12329: _OutputIterator 12329: __merge(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result, _Compare __comp) 12329: { 12329: while (__first1 != __last1 && __first2 != __last2) 12329: { 12329: if (__comp(__first2, __first1)) 12329: { 12329: *__result = *__first2; 12329: ++__first2; 12329: } 12329: else 12329: { 12329: *__result = *__first1; 12329: ++__first1; 12329: } 12329: ++__result; 12329: } 12329: return std::copy(__first2, __last2, 12329: std::copy(__first1, __last1, __result)); 12329: } 12329: # 4901 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: merge(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__merge(__first1, __last1, 12329: __first2, __last2, __result, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 4952 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: merge(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__merge(__first1, __last1, 12329: __first2, __last2, __result, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: template 12329: inline void 12329: __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: typedef typename iterator_traits<_RandomAccessIterator>::value_type 12329: _ValueType; 12329: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 12329: _DistanceType; 12329: typedef _Temporary_buffer<_RandomAccessIterator, _ValueType> _TmpBuf; 12329: 12329: if (__first == __last) 12329: return; 12329: 12329: 12329: 12329: _TmpBuf __buf(__first, (__last - __first + 1) / 2); 12329: 12329: if (__buf.begin() == 0) 12329: std::__inplace_stable_sort(__first, __last, __comp); 12329: else 12329: std::__stable_sort_adaptive(__first, __last, __buf.begin(), 12329: _DistanceType(__buf.size()), __comp); 12329: } 12329: # 5022 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: inline void 12329: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: std::__stable_sort(__first, __last, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 5056 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: inline void 12329: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: std::__stable_sort(__first, __last, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: template 12329: 12329: _OutputIterator 12329: __set_union(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result, _Compare __comp) 12329: { 12329: while (__first1 != __last1 && __first2 != __last2) 12329: { 12329: if (__comp(__first1, __first2)) 12329: { 12329: *__result = *__first1; 12329: ++__first1; 12329: } 12329: else if (__comp(__first2, __first1)) 12329: { 12329: *__result = *__first2; 12329: ++__first2; 12329: } 12329: else 12329: { 12329: *__result = *__first1; 12329: ++__first1; 12329: ++__first2; 12329: } 12329: ++__result; 12329: } 12329: return std::copy(__first2, __last2, 12329: std::copy(__first1, __last1, __result)); 12329: } 12329: # 5126 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__set_union(__first1, __last1, 12329: __first2, __last2, __result, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 5177 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__set_union(__first1, __last1, 12329: __first2, __last2, __result, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: template 12329: 12329: _OutputIterator 12329: __set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result, _Compare __comp) 12329: { 12329: while (__first1 != __last1 && __first2 != __last2) 12329: if (__comp(__first1, __first2)) 12329: ++__first1; 12329: else if (__comp(__first2, __first1)) 12329: ++__first2; 12329: else 12329: { 12329: *__result = *__first1; 12329: ++__first1; 12329: ++__first2; 12329: ++__result; 12329: } 12329: return __result; 12329: } 12329: # 5250 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__set_intersection(__first1, __last1, 12329: __first2, __last2, __result, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 5300 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__set_intersection(__first1, __last1, 12329: __first2, __last2, __result, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: template 12329: 12329: _OutputIterator 12329: __set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result, _Compare __comp) 12329: { 12329: while (__first1 != __last1 && __first2 != __last2) 12329: if (__comp(__first1, __first2)) 12329: { 12329: *__result = *__first1; 12329: ++__first1; 12329: ++__result; 12329: } 12329: else if (__comp(__first2, __first1)) 12329: ++__first2; 12329: else 12329: { 12329: ++__first1; 12329: ++__first2; 12329: } 12329: return std::copy(__first1, __last1, __result); 12329: } 12329: # 5375 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__set_difference(__first1, __last1, 12329: __first2, __last2, __result, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 5427 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result, _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__set_difference(__first1, __last1, 12329: __first2, __last2, __result, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: template 12329: 12329: _OutputIterator 12329: __set_symmetric_difference(_InputIterator1 __first1, 12329: _InputIterator1 __last1, 12329: _InputIterator2 __first2, 12329: _InputIterator2 __last2, 12329: _OutputIterator __result, 12329: _Compare __comp) 12329: { 12329: while (__first1 != __last1 && __first2 != __last2) 12329: if (__comp(__first1, __first2)) 12329: { 12329: *__result = *__first1; 12329: ++__first1; 12329: ++__result; 12329: } 12329: else if (__comp(__first2, __first1)) 12329: { 12329: *__result = *__first2; 12329: ++__first2; 12329: ++__result; 12329: } 12329: else 12329: { 12329: ++__first1; 12329: ++__first2; 12329: } 12329: return std::copy(__first2, __last2, 12329: std::copy(__first1, __last1, __result)); 12329: } 12329: # 5508 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__set_symmetric_difference(__first1, __last1, 12329: __first2, __last2, __result, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 5560 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: 12329: inline _OutputIterator 12329: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 12329: _InputIterator2 __first2, _InputIterator2 __last2, 12329: _OutputIterator __result, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: ; 12329: ; 12329: 12329: return std::__set_symmetric_difference(__first1, __last1, 12329: __first2, __last2, __result, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: template 12329: constexpr 12329: _ForwardIterator 12329: __min_element(_ForwardIterator __first, _ForwardIterator __last, 12329: _Compare __comp) 12329: { 12329: if (__first == __last) 12329: return __first; 12329: _ForwardIterator __result = __first; 12329: while (++__first != __last) 12329: if (__comp(__first, __result)) 12329: __result = __first; 12329: return __result; 12329: } 12329: # 5614 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: constexpr 12329: _ForwardIterator 12329: inline min_element(_ForwardIterator __first, _ForwardIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__min_element(__first, __last, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 5639 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: constexpr 12329: inline _ForwardIterator 12329: min_element(_ForwardIterator __first, _ForwardIterator __last, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__min_element(__first, __last, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: template 12329: constexpr 12329: _ForwardIterator 12329: __max_element(_ForwardIterator __first, _ForwardIterator __last, 12329: _Compare __comp) 12329: { 12329: if (__first == __last) return __first; 12329: _ForwardIterator __result = __first; 12329: while (++__first != __last) 12329: if (__comp(__result, __first)) 12329: __result = __first; 12329: return __result; 12329: } 12329: # 5678 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: constexpr 12329: inline _ForwardIterator 12329: max_element(_ForwardIterator __first, _ForwardIterator __last) 12329: { 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__max_element(__first, __last, 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: # 5703 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: template 12329: constexpr 12329: inline _ForwardIterator 12329: max_element(_ForwardIterator __first, _ForwardIterator __last, 12329: _Compare __comp) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: ; 12329: 12329: return std::__max_element(__first, __last, 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: 12329: 12329: template 12329: constexpr 12329: inline _Tp 12329: min(initializer_list<_Tp> __l) 12329: { 12329: ; 12329: return *std::__min_element(__l.begin(), __l.end(), 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: 12329: template 12329: constexpr 12329: inline _Tp 12329: min(initializer_list<_Tp> __l, _Compare __comp) 12329: { 12329: ; 12329: return *std::__min_element(__l.begin(), __l.end(), 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: template 12329: constexpr 12329: inline _Tp 12329: max(initializer_list<_Tp> __l) 12329: { 12329: ; 12329: return *std::__max_element(__l.begin(), __l.end(), 12329: __gnu_cxx::__ops::__iter_less_iter()); 12329: } 12329: 12329: template 12329: constexpr 12329: inline _Tp 12329: max(initializer_list<_Tp> __l, _Compare __comp) 12329: { 12329: ; 12329: return *std::__max_element(__l.begin(), __l.end(), 12329: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: _RandomAccessIterator 12329: __sample(_InputIterator __first, _InputIterator __last, input_iterator_tag, 12329: _RandomAccessIterator __out, random_access_iterator_tag, 12329: _Size __n, _UniformRandomBitGenerator&& __g) 12329: { 12329: using __distrib_type = uniform_int_distribution<_Size>; 12329: using __param_type = typename __distrib_type::param_type; 12329: __distrib_type __d{}; 12329: _Size __sample_sz = 0; 12329: while (__first != __last && __sample_sz != __n) 12329: { 12329: __out[__sample_sz++] = *__first; 12329: ++__first; 12329: } 12329: for (auto __pop_sz = __sample_sz; __first != __last; 12329: ++__first, (void) ++__pop_sz) 12329: { 12329: const auto __k = __d(__g, __param_type{0, __pop_sz}); 12329: if (__k < __n) 12329: __out[__k] = *__first; 12329: } 12329: return __out + __sample_sz; 12329: } 12329: 12329: 12329: template 12329: _OutputIterator 12329: __sample(_ForwardIterator __first, _ForwardIterator __last, 12329: forward_iterator_tag, 12329: _OutputIterator __out, _Cat, 12329: _Size __n, _UniformRandomBitGenerator&& __g) 12329: { 12329: using __distrib_type = uniform_int_distribution<_Size>; 12329: using __param_type = typename __distrib_type::param_type; 12329: using _USize = make_unsigned_t<_Size>; 12329: using _Gen = remove_reference_t<_UniformRandomBitGenerator>; 12329: using __uc_type = common_type_t; 12329: 12329: if (__first == __last) 12329: return __out; 12329: 12329: __distrib_type __d{}; 12329: _Size __unsampled_sz = std::distance(__first, __last); 12329: __n = std::min(__n, __unsampled_sz); 12329: 12329: 12329: 12329: 12329: const __uc_type __urngrange = __g.max() - __g.min(); 12329: if (__urngrange / __uc_type(__unsampled_sz) >= __uc_type(__unsampled_sz)) 12329: 12329: 12329: { 12329: while (__n != 0 && __unsampled_sz >= 2) 12329: { 12329: const pair<_Size, _Size> __p = 12329: __gen_two_uniform_ints(__unsampled_sz, __unsampled_sz - 1, __g); 12329: 12329: --__unsampled_sz; 12329: if (__p.first < __n) 12329: { 12329: *__out++ = *__first; 12329: --__n; 12329: } 12329: 12329: ++__first; 12329: 12329: if (__n == 0) break; 12329: 12329: --__unsampled_sz; 12329: if (__p.second < __n) 12329: { 12329: *__out++ = *__first; 12329: --__n; 12329: } 12329: 12329: ++__first; 12329: } 12329: } 12329: 12329: 12329: 12329: for (; __n != 0; ++__first) 12329: if (__d(__g, __param_type{0, --__unsampled_sz}) < __n) 12329: { 12329: *__out++ = *__first; 12329: --__n; 12329: } 12329: return __out; 12329: } 12329: # 5892 "/usr/include/c++/12/bits/stl_algo.h" 3 12329: 12329: 12329: } 12329: # 62 "/usr/include/c++/12/algorithm" 2 3 12329: # 14 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4 12329: # 1 "/usr/include/boost/config/no_tr1/functional.hpp" 1 3 4 12329: # 21 "/usr/include/boost/config/no_tr1/functional.hpp" 3 4 12329: # 1 "/usr/include/c++/12/functional" 1 3 4 12329: # 46 "/usr/include/c++/12/functional" 3 4 12329: 12329: # 47 "/usr/include/c++/12/functional" 3 12329: # 59 "/usr/include/c++/12/functional" 3 12329: # 1 "/usr/include/c++/12/bits/std_function.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/std_function.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/std_function.h" 3 12329: # 45 "/usr/include/c++/12/bits/std_function.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: class bad_function_call : public std::exception 12329: { 12329: public: 12329: virtual ~bad_function_call() noexcept; 12329: 12329: const char* what() const noexcept; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct __is_location_invariant 12329: : is_trivially_copyable<_Tp>::type 12329: { }; 12329: 12329: class _Undefined_class; 12329: 12329: union _Nocopy_types 12329: { 12329: void* _M_object; 12329: const void* _M_const_object; 12329: void (*_M_function_pointer)(); 12329: void (_Undefined_class::*_M_member_pointer)(); 12329: }; 12329: 12329: union [[gnu::may_alias]] _Any_data 12329: { 12329: void* _M_access() noexcept { return &_M_pod_data[0]; } 12329: const void* _M_access() const noexcept { return &_M_pod_data[0]; } 12329: 12329: template 12329: _Tp& 12329: _M_access() noexcept 12329: { return *static_cast<_Tp*>(_M_access()); } 12329: 12329: template 12329: const _Tp& 12329: _M_access() const noexcept 12329: { return *static_cast(_M_access()); } 12329: 12329: _Nocopy_types _M_unused; 12329: char _M_pod_data[sizeof(_Nocopy_types)]; 12329: }; 12329: 12329: enum _Manager_operation 12329: { 12329: __get_type_info, 12329: __get_functor_ptr, 12329: __clone_functor, 12329: __destroy_functor 12329: }; 12329: 12329: template 12329: class function; 12329: 12329: 12329: class _Function_base 12329: { 12329: public: 12329: static const size_t _M_max_size = sizeof(_Nocopy_types); 12329: static const size_t _M_max_align = __alignof__(_Nocopy_types); 12329: 12329: template 12329: class _Base_manager 12329: { 12329: protected: 12329: static const bool __stored_locally = 12329: (__is_location_invariant<_Functor>::value 12329: && sizeof(_Functor) <= _M_max_size 12329: && __alignof__(_Functor) <= _M_max_align 12329: && (_M_max_align % __alignof__(_Functor) == 0)); 12329: 12329: using _Local_storage = integral_constant; 12329: 12329: 12329: static _Functor* 12329: _M_get_pointer(const _Any_data& __source) noexcept 12329: { 12329: if (__stored_locally) 12329: { 12329: const _Functor& __f = __source._M_access<_Functor>(); 12329: return const_cast<_Functor*>(std::__addressof(__f)); 12329: } 12329: else 12329: return __source._M_access<_Functor*>(); 12329: } 12329: 12329: private: 12329: 12329: 12329: template 12329: static void 12329: _M_create(_Any_data& __dest, _Fn&& __f, true_type) 12329: { 12329: ::new (__dest._M_access()) _Functor(std::forward<_Fn>(__f)); 12329: } 12329: 12329: 12329: template 12329: static void 12329: _M_create(_Any_data& __dest, _Fn&& __f, false_type) 12329: { 12329: __dest._M_access<_Functor*>() 12329: = new _Functor(std::forward<_Fn>(__f)); 12329: } 12329: 12329: 12329: static void 12329: _M_destroy(_Any_data& __victim, true_type) 12329: { 12329: __victim._M_access<_Functor>().~_Functor(); 12329: } 12329: 12329: 12329: static void 12329: _M_destroy(_Any_data& __victim, false_type) 12329: { 12329: delete __victim._M_access<_Functor*>(); 12329: } 12329: 12329: public: 12329: static bool 12329: _M_manager(_Any_data& __dest, const _Any_data& __source, 12329: _Manager_operation __op) 12329: { 12329: switch (__op) 12329: { 12329: case __get_type_info: 12329: 12329: __dest._M_access() = &typeid(_Functor); 12329: 12329: 12329: 12329: break; 12329: 12329: case __get_functor_ptr: 12329: __dest._M_access<_Functor*>() = _M_get_pointer(__source); 12329: break; 12329: 12329: case __clone_functor: 12329: _M_init_functor(__dest, 12329: *const_cast(_M_get_pointer(__source))); 12329: break; 12329: 12329: case __destroy_functor: 12329: _M_destroy(__dest, _Local_storage()); 12329: break; 12329: } 12329: return false; 12329: } 12329: 12329: template 12329: static void 12329: _M_init_functor(_Any_data& __functor, _Fn&& __f) 12329: noexcept(__and_<_Local_storage, 12329: is_nothrow_constructible<_Functor, _Fn>>::value) 12329: { 12329: _M_create(__functor, std::forward<_Fn>(__f), _Local_storage()); 12329: } 12329: 12329: template 12329: static bool 12329: _M_not_empty_function(const function<_Signature>& __f) noexcept 12329: { return static_cast(__f); } 12329: 12329: template 12329: static bool 12329: _M_not_empty_function(_Tp* __fp) noexcept 12329: { return __fp != nullptr; } 12329: 12329: template 12329: static bool 12329: _M_not_empty_function(_Tp _Class::* __mp) noexcept 12329: { return __mp != nullptr; } 12329: 12329: template 12329: static bool 12329: _M_not_empty_function(const _Tp&) noexcept 12329: { return true; } 12329: }; 12329: 12329: _Function_base() = default; 12329: 12329: ~_Function_base() 12329: { 12329: if (_M_manager) 12329: _M_manager(_M_functor, _M_functor, __destroy_functor); 12329: } 12329: 12329: bool _M_empty() const { return !_M_manager; } 12329: 12329: using _Manager_type 12329: = bool (*)(_Any_data&, const _Any_data&, _Manager_operation); 12329: 12329: _Any_data _M_functor{}; 12329: _Manager_type _M_manager{}; 12329: }; 12329: 12329: template 12329: class _Function_handler; 12329: 12329: template 12329: class _Function_handler<_Res(_ArgTypes...), _Functor> 12329: : public _Function_base::_Base_manager<_Functor> 12329: { 12329: using _Base = _Function_base::_Base_manager<_Functor>; 12329: 12329: public: 12329: static bool 12329: _M_manager(_Any_data& __dest, const _Any_data& __source, 12329: _Manager_operation __op) 12329: { 12329: switch (__op) 12329: { 12329: 12329: case __get_type_info: 12329: __dest._M_access() = &typeid(_Functor); 12329: break; 12329: 12329: case __get_functor_ptr: 12329: __dest._M_access<_Functor*>() = _Base::_M_get_pointer(__source); 12329: break; 12329: 12329: default: 12329: _Base::_M_manager(__dest, __source, __op); 12329: } 12329: return false; 12329: } 12329: 12329: static _Res 12329: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 12329: { 12329: return std::__invoke_r<_Res>(*_Base::_M_get_pointer(__functor), 12329: std::forward<_ArgTypes>(__args)...); 12329: } 12329: 12329: template 12329: static constexpr bool 12329: _S_nothrow_init() noexcept 12329: { 12329: return __and_>::value; 12329: } 12329: }; 12329: 12329: 12329: template<> 12329: class _Function_handler 12329: { 12329: public: 12329: static bool 12329: _M_manager(_Any_data&, const _Any_data&, _Manager_operation) 12329: { return false; } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template::value> 12329: struct _Target_handler 12329: : _Function_handler<_Signature, typename remove_cv<_Functor>::type> 12329: { }; 12329: 12329: template 12329: struct _Target_handler<_Signature, _Functor, false> 12329: : _Function_handler 12329: { }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class function<_Res(_ArgTypes...)> 12329: : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>, 12329: private _Function_base 12329: { 12329: 12329: 12329: template, function>::value> 12329: using _Decay_t 12329: = typename __enable_if_t>::type; 12329: 12329: template, 12329: typename _Res2 = __invoke_result<_DFunc&, _ArgTypes...>> 12329: struct _Callable 12329: : __is_invocable_impl<_Res2, _Res>::type 12329: { }; 12329: 12329: template 12329: using _Requires = __enable_if_t<_Cond::value, _Tp>; 12329: 12329: template 12329: using _Handler 12329: = _Function_handler<_Res(_ArgTypes...), __decay_t<_Functor>>; 12329: 12329: public: 12329: typedef _Res result_type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: function() noexcept 12329: : _Function_base() { } 12329: 12329: 12329: 12329: 12329: 12329: function(nullptr_t) noexcept 12329: : _Function_base() { } 12329: # 386 "/usr/include/c++/12/bits/std_function.h" 3 12329: function(const function& __x) 12329: : _Function_base() 12329: { 12329: if (static_cast(__x)) 12329: { 12329: __x._M_manager(_M_functor, __x._M_functor, __clone_functor); 12329: _M_invoker = __x._M_invoker; 12329: _M_manager = __x._M_manager; 12329: } 12329: } 12329: # 404 "/usr/include/c++/12/bits/std_function.h" 3 12329: function(function&& __x) noexcept 12329: : _Function_base(), _M_invoker(__x._M_invoker) 12329: { 12329: if (static_cast(__x)) 12329: { 12329: _M_functor = __x._M_functor; 12329: _M_manager = __x._M_manager; 12329: __x._M_manager = nullptr; 12329: __x._M_invoker = nullptr; 12329: } 12329: } 12329: # 433 "/usr/include/c++/12/bits/std_function.h" 3 12329: template>> 12329: function(_Functor&& __f) 12329: noexcept(_Handler<_Functor>::template _S_nothrow_init<_Functor>()) 12329: : _Function_base() 12329: { 12329: static_assert(is_copy_constructible<__decay_t<_Functor>>::value, 12329: "std::function target must be copy-constructible"); 12329: static_assert(is_constructible<__decay_t<_Functor>, _Functor>::value, 12329: "std::function target must be constructible from the " 12329: "constructor argument"); 12329: 12329: using _My_handler = _Handler<_Functor>; 12329: 12329: if (_My_handler::_M_not_empty_function(__f)) 12329: { 12329: _My_handler::_M_init_functor(_M_functor, 12329: std::forward<_Functor>(__f)); 12329: _M_invoker = &_My_handler::_M_invoke; 12329: _M_manager = &_My_handler::_M_manager; 12329: } 12329: } 12329: # 468 "/usr/include/c++/12/bits/std_function.h" 3 12329: function& 12329: operator=(const function& __x) 12329: { 12329: function(__x).swap(*this); 12329: return *this; 12329: } 12329: # 486 "/usr/include/c++/12/bits/std_function.h" 3 12329: function& 12329: operator=(function&& __x) noexcept 12329: { 12329: function(std::move(__x)).swap(*this); 12329: return *this; 12329: } 12329: # 500 "/usr/include/c++/12/bits/std_function.h" 3 12329: function& 12329: operator=(nullptr_t) noexcept 12329: { 12329: if (_M_manager) 12329: { 12329: _M_manager(_M_functor, _M_functor, __destroy_functor); 12329: _M_manager = nullptr; 12329: _M_invoker = nullptr; 12329: } 12329: return *this; 12329: } 12329: # 529 "/usr/include/c++/12/bits/std_function.h" 3 12329: template 12329: _Requires<_Callable<_Functor>, function&> 12329: operator=(_Functor&& __f) 12329: noexcept(_Handler<_Functor>::template _S_nothrow_init<_Functor>()) 12329: { 12329: function(std::forward<_Functor>(__f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: function& 12329: operator=(reference_wrapper<_Functor> __f) noexcept 12329: { 12329: function(__f).swap(*this); 12329: return *this; 12329: } 12329: # 556 "/usr/include/c++/12/bits/std_function.h" 3 12329: void swap(function& __x) noexcept 12329: { 12329: std::swap(_M_functor, __x._M_functor); 12329: std::swap(_M_manager, __x._M_manager); 12329: std::swap(_M_invoker, __x._M_invoker); 12329: } 12329: # 573 "/usr/include/c++/12/bits/std_function.h" 3 12329: explicit operator bool() const noexcept 12329: { return !_M_empty(); } 12329: # 586 "/usr/include/c++/12/bits/std_function.h" 3 12329: _Res 12329: operator()(_ArgTypes... __args) const 12329: { 12329: if (_M_empty()) 12329: __throw_bad_function_call(); 12329: return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...); 12329: } 12329: # 605 "/usr/include/c++/12/bits/std_function.h" 3 12329: const type_info& 12329: target_type() const noexcept 12329: { 12329: if (_M_manager) 12329: { 12329: _Any_data __typeinfo_result; 12329: _M_manager(__typeinfo_result, _M_functor, __get_type_info); 12329: if (auto __ti = __typeinfo_result._M_access()) 12329: return *__ti; 12329: } 12329: return typeid(void); 12329: } 12329: # 630 "/usr/include/c++/12/bits/std_function.h" 3 12329: template 12329: _Functor* 12329: target() noexcept 12329: { 12329: const function* __const_this = this; 12329: const _Functor* __func = __const_this->template target<_Functor>(); 12329: 12329: 12329: return *const_cast<_Functor**>(&__func); 12329: } 12329: 12329: template 12329: const _Functor* 12329: target() const noexcept 12329: { 12329: if (is_object<_Functor>::value) 12329: { 12329: 12329: 12329: using _Handler = _Target_handler<_Res(_ArgTypes...), _Functor>; 12329: 12329: if (_M_manager == &_Handler::_M_manager 12329: 12329: || (_M_manager && typeid(_Functor) == target_type()) 12329: 12329: ) 12329: { 12329: _Any_data __ptr; 12329: _M_manager(__ptr, _M_functor, __get_functor_ptr); 12329: return __ptr._M_access(); 12329: } 12329: } 12329: return nullptr; 12329: } 12329: 12329: 12329: private: 12329: using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...); 12329: _Invoker_type _M_invoker = nullptr; 12329: }; 12329: # 716 "/usr/include/c++/12/bits/std_function.h" 3 12329: template 12329: inline bool 12329: operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 12329: { return !static_cast(__f); } 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 12329: { return !static_cast(__f); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 12329: { return static_cast(__f); } 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 12329: { return static_cast(__f); } 12329: # 755 "/usr/include/c++/12/bits/std_function.h" 3 12329: template 12329: inline void 12329: swap(function<_Res(_Args...)>& __x, function<_Res(_Args...)>& __y) noexcept 12329: { __x.swap(__y); } 12329: # 774 "/usr/include/c++/12/bits/std_function.h" 3 12329: 12329: } 12329: # 60 "/usr/include/c++/12/functional" 2 3 12329: # 76 "/usr/include/c++/12/functional" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template struct _Placeholder { }; 12329: # 138 "/usr/include/c++/12/functional" 3 12329: template::value> 12329: class _Mem_fn_base 12329: : public _Mem_fn_traits<_MemFunPtr>::__maybe_type 12329: { 12329: using _Traits = _Mem_fn_traits<_MemFunPtr>; 12329: 12329: using _Arity = typename _Traits::__arity; 12329: using _Varargs = typename _Traits::__vararg; 12329: 12329: template 12329: friend struct _Bind_check_arity; 12329: 12329: _MemFunPtr _M_pmf; 12329: 12329: public: 12329: 12329: using result_type = typename _Traits::__result_type; 12329: 12329: explicit constexpr 12329: _Mem_fn_base(_MemFunPtr __pmf) noexcept : _M_pmf(__pmf) { } 12329: 12329: template 12329: 12329: auto 12329: operator()(_Args&&... __args) const 12329: noexcept(noexcept( 12329: std::__invoke(_M_pmf, std::forward<_Args>(__args)...))) 12329: -> decltype(std::__invoke(_M_pmf, std::forward<_Args>(__args)...)) 12329: { return std::__invoke(_M_pmf, std::forward<_Args>(__args)...); } 12329: }; 12329: 12329: 12329: template 12329: class _Mem_fn_base<_MemObjPtr, false> 12329: { 12329: using _Arity = integral_constant; 12329: using _Varargs = false_type; 12329: 12329: template 12329: friend struct _Bind_check_arity; 12329: 12329: _MemObjPtr _M_pm; 12329: 12329: public: 12329: explicit constexpr 12329: _Mem_fn_base(_MemObjPtr __pm) noexcept : _M_pm(__pm) { } 12329: 12329: template 12329: 12329: auto 12329: operator()(_Tp&& __obj) const 12329: noexcept(noexcept(std::__invoke(_M_pm, std::forward<_Tp>(__obj)))) 12329: -> decltype(std::__invoke(_M_pm, std::forward<_Tp>(__obj))) 12329: { return std::__invoke(_M_pm, std::forward<_Tp>(__obj)); } 12329: }; 12329: 12329: template 12329: struct _Mem_fn; 12329: 12329: template 12329: struct _Mem_fn<_Res _Class::*> 12329: : _Mem_fn_base<_Res _Class::*> 12329: { 12329: using _Mem_fn_base<_Res _Class::*>::_Mem_fn_base; 12329: }; 12329: # 231 "/usr/include/c++/12/functional" 3 12329: template 12329: 12329: inline _Mem_fn<_Tp _Class::*> 12329: mem_fn(_Tp _Class::* __pm) noexcept 12329: { 12329: return _Mem_fn<_Tp _Class::*>(__pm); 12329: } 12329: # 250 "/usr/include/c++/12/functional" 3 12329: template 12329: struct is_bind_expression 12329: : public false_type { }; 12329: # 262 "/usr/include/c++/12/functional" 3 12329: template 12329: struct is_placeholder 12329: : public integral_constant 12329: { }; 12329: # 279 "/usr/include/c++/12/functional" 3 12329: namespace placeholders 12329: { 12329: 12329: 12329: 12329: 12329: extern const _Placeholder<1> _1; 12329: extern const _Placeholder<2> _2; 12329: extern const _Placeholder<3> _3; 12329: extern const _Placeholder<4> _4; 12329: extern const _Placeholder<5> _5; 12329: extern const _Placeholder<6> _6; 12329: extern const _Placeholder<7> _7; 12329: extern const _Placeholder<8> _8; 12329: extern const _Placeholder<9> _9; 12329: extern const _Placeholder<10> _10; 12329: extern const _Placeholder<11> _11; 12329: extern const _Placeholder<12> _12; 12329: extern const _Placeholder<13> _13; 12329: extern const _Placeholder<14> _14; 12329: extern const _Placeholder<15> _15; 12329: extern const _Placeholder<16> _16; 12329: extern const _Placeholder<17> _17; 12329: extern const _Placeholder<18> _18; 12329: extern const _Placeholder<19> _19; 12329: extern const _Placeholder<20> _20; 12329: extern const _Placeholder<21> _21; 12329: extern const _Placeholder<22> _22; 12329: extern const _Placeholder<23> _23; 12329: extern const _Placeholder<24> _24; 12329: extern const _Placeholder<25> _25; 12329: extern const _Placeholder<26> _26; 12329: extern const _Placeholder<27> _27; 12329: extern const _Placeholder<28> _28; 12329: extern const _Placeholder<29> _29; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_placeholder<_Placeholder<_Num> > 12329: : public integral_constant 12329: { }; 12329: 12329: template 12329: struct is_placeholder > 12329: : public integral_constant 12329: { }; 12329: 12329: 12329: 12329: 12329: template 12329: using _Safe_tuple_element_t 12329: = typename enable_if<(__i < tuple_size<_Tuple>::value), 12329: tuple_element<__i, _Tuple>>::type::type; 12329: # 351 "/usr/include/c++/12/functional" 3 12329: template::value, 12329: bool _IsPlaceholder = (is_placeholder<_Arg>::value > 0)> 12329: class _Mu; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class _Mu, false, false> 12329: { 12329: public: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: _Tp& 12329: operator()(_CVRef& __arg, _Tuple&) const volatile 12329: { return __arg.get(); } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class _Mu<_Arg, true, false> 12329: { 12329: public: 12329: template 12329: 12329: auto 12329: operator()(_CVArg& __arg, 12329: tuple<_Args...>& __tuple) const volatile 12329: -> decltype(__arg(declval<_Args>()...)) 12329: { 12329: 12329: typedef typename _Build_index_tuple::__type 12329: _Indexes; 12329: return this->__call(__arg, __tuple, _Indexes()); 12329: } 12329: 12329: private: 12329: 12329: 12329: template 12329: 12329: auto 12329: __call(_CVArg& __arg, tuple<_Args...>& __tuple, 12329: const _Index_tuple<_Indexes...>&) const volatile 12329: -> decltype(__arg(declval<_Args>()...)) 12329: { 12329: return __arg(std::get<_Indexes>(std::move(__tuple))...); 12329: } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class _Mu<_Arg, false, true> 12329: { 12329: public: 12329: template 12329: 12329: _Safe_tuple_element_t<(is_placeholder<_Arg>::value - 1), _Tuple>&& 12329: operator()(const volatile _Arg&, _Tuple& __tuple) const volatile 12329: { 12329: return 12329: ::std::get<(is_placeholder<_Arg>::value - 1)>(std::move(__tuple)); 12329: } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class _Mu<_Arg, false, false> 12329: { 12329: public: 12329: template 12329: 12329: _CVArg&& 12329: operator()(_CVArg&& __arg, _Tuple&) const volatile 12329: { return std::forward<_CVArg>(__arg); } 12329: }; 12329: 12329: 12329: template 12329: inline auto 12329: __volget(volatile tuple<_Tp...>& __tuple) 12329: -> __tuple_element_t<_Ind, tuple<_Tp...>> volatile& 12329: { return std::get<_Ind>(const_cast&>(__tuple)); } 12329: 12329: 12329: template 12329: inline auto 12329: __volget(const volatile tuple<_Tp...>& __tuple) 12329: -> __tuple_element_t<_Ind, tuple<_Tp...>> const volatile& 12329: { return std::get<_Ind>(const_cast&>(__tuple)); } 12329: 12329: 12329: 12329: 12329: template 12329: class _Bind; 12329: 12329: template 12329: class _Bind<_Functor(_Bound_args...)> 12329: : public _Weak_result_type<_Functor> 12329: { 12329: typedef typename _Build_index_tuple::__type 12329: _Bound_indexes; 12329: 12329: _Functor _M_f; 12329: tuple<_Bound_args...> _M_bound_args; 12329: 12329: 12329: template 12329: 12329: _Result 12329: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 12329: { 12329: return std::__invoke(_M_f, 12329: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 12329: ); 12329: } 12329: 12329: 12329: template 12329: 12329: _Result 12329: __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 12329: { 12329: return std::__invoke(_M_f, 12329: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 12329: ); 12329: } 12329: 12329: 12329: template 12329: _Result 12329: __call_v(tuple<_Args...>&& __args, 12329: _Index_tuple<_Indexes...>) volatile 12329: { 12329: return std::__invoke(_M_f, 12329: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 12329: ); 12329: } 12329: 12329: 12329: template 12329: _Result 12329: __call_c_v(tuple<_Args...>&& __args, 12329: _Index_tuple<_Indexes...>) const volatile 12329: { 12329: return std::__invoke(_M_f, 12329: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 12329: ); 12329: } 12329: 12329: template 12329: using _Mu_type = decltype( 12329: _Mu::type>()( 12329: std::declval<_BoundArg&>(), std::declval<_CallArgs&>()) ); 12329: 12329: template 12329: using _Res_type_impl 12329: = typename result_of< _Fn&(_Mu_type<_BArgs, _CallArgs>&&...) >::type; 12329: 12329: template 12329: using _Res_type = _Res_type_impl<_Functor, _CallArgs, _Bound_args...>; 12329: 12329: template 12329: using __dependent = typename 12329: enable_if::value+1), _Functor>::type; 12329: 12329: template class __cv_quals> 12329: using _Res_type_cv = _Res_type_impl< 12329: typename __cv_quals<__dependent<_CallArgs>>::type, 12329: _CallArgs, 12329: typename __cv_quals<_Bound_args>::type...>; 12329: 12329: public: 12329: template 12329: explicit 12329: _Bind(const _Functor& __f, _Args&&... __args) 12329: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 12329: { } 12329: 12329: template 12329: explicit 12329: _Bind(_Functor&& __f, _Args&&... __args) 12329: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 12329: { } 12329: 12329: _Bind(const _Bind&) = default; 12329: _Bind(_Bind&&) = default; 12329: 12329: 12329: template>> 12329: 12329: _Result 12329: operator()(_Args&&... __args) 12329: { 12329: return this->__call<_Result>( 12329: std::forward_as_tuple(std::forward<_Args>(__args)...), 12329: _Bound_indexes()); 12329: } 12329: 12329: 12329: template, add_const>> 12329: 12329: _Result 12329: operator()(_Args&&... __args) const 12329: { 12329: return this->__call_c<_Result>( 12329: std::forward_as_tuple(std::forward<_Args>(__args)...), 12329: _Bound_indexes()); 12329: } 12329: # 591 "/usr/include/c++/12/functional" 3 12329: template, add_volatile>> 12329: 12329: _Result 12329: operator()(_Args&&... __args) volatile 12329: { 12329: return this->__call_v<_Result>( 12329: std::forward_as_tuple(std::forward<_Args>(__args)...), 12329: _Bound_indexes()); 12329: } 12329: 12329: 12329: template, add_cv>> 12329: 12329: _Result 12329: operator()(_Args&&... __args) const volatile 12329: { 12329: return this->__call_c_v<_Result>( 12329: std::forward_as_tuple(std::forward<_Args>(__args)...), 12329: _Bound_indexes()); 12329: } 12329: }; 12329: 12329: 12329: template 12329: class _Bind_result; 12329: 12329: template 12329: class _Bind_result<_Result, _Functor(_Bound_args...)> 12329: { 12329: typedef typename _Build_index_tuple::__type 12329: _Bound_indexes; 12329: 12329: _Functor _M_f; 12329: tuple<_Bound_args...> _M_bound_args; 12329: 12329: 12329: template 12329: 12329: _Res 12329: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 12329: { 12329: return std::__invoke_r<_Res>(_M_f, _Mu<_Bound_args>() 12329: (std::get<_Indexes>(_M_bound_args), __args)...); 12329: } 12329: 12329: 12329: template 12329: 12329: _Res 12329: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 12329: { 12329: return std::__invoke_r<_Res>(_M_f, _Mu<_Bound_args>() 12329: (std::get<_Indexes>(_M_bound_args), __args)...); 12329: } 12329: 12329: 12329: template 12329: 12329: _Res 12329: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 12329: { 12329: return std::__invoke_r<_Res>(_M_f, _Mu<_Bound_args>() 12329: (__volget<_Indexes>(_M_bound_args), __args)...); 12329: } 12329: 12329: 12329: template 12329: 12329: _Res 12329: __call(tuple<_Args...>&& __args, 12329: _Index_tuple<_Indexes...>) const volatile 12329: { 12329: return std::__invoke_r<_Res>(_M_f, _Mu<_Bound_args>() 12329: (__volget<_Indexes>(_M_bound_args), __args)...); 12329: } 12329: 12329: public: 12329: typedef _Result result_type; 12329: 12329: template 12329: explicit 12329: _Bind_result(const _Functor& __f, _Args&&... __args) 12329: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 12329: { } 12329: 12329: template 12329: explicit 12329: _Bind_result(_Functor&& __f, _Args&&... __args) 12329: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 12329: { } 12329: 12329: _Bind_result(const _Bind_result&) = default; 12329: _Bind_result(_Bind_result&&) = default; 12329: 12329: 12329: template 12329: 12329: result_type 12329: operator()(_Args&&... __args) 12329: { 12329: return this->__call<_Result>( 12329: std::forward_as_tuple(std::forward<_Args>(__args)...), 12329: _Bound_indexes()); 12329: } 12329: 12329: 12329: template 12329: 12329: result_type 12329: operator()(_Args&&... __args) const 12329: { 12329: return this->__call<_Result>( 12329: std::forward_as_tuple(std::forward<_Args>(__args)...), 12329: _Bound_indexes()); 12329: } 12329: 12329: 12329: template 12329: 12329: result_type 12329: operator()(_Args&&... __args) volatile 12329: { 12329: return this->__call<_Result>( 12329: std::forward_as_tuple(std::forward<_Args>(__args)...), 12329: _Bound_indexes()); 12329: } 12329: 12329: 12329: template 12329: 12329: result_type 12329: operator()(_Args&&... __args) const volatile 12329: { 12329: return this->__call<_Result>( 12329: std::forward_as_tuple(std::forward<_Args>(__args)...), 12329: _Bound_indexes()); 12329: } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_bind_expression<_Bind<_Signature> > 12329: : public true_type { }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_bind_expression > 12329: : public true_type { }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_bind_expression > 12329: : public true_type { }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_bind_expression> 12329: : public true_type { }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_bind_expression<_Bind_result<_Result, _Signature>> 12329: : public true_type { }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_bind_expression> 12329: : public true_type { }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_bind_expression> 12329: : public true_type { }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_bind_expression> 12329: : public true_type { }; 12329: 12329: template 12329: struct _Bind_check_arity { }; 12329: 12329: template 12329: struct _Bind_check_arity<_Ret (*)(_Args...), _BoundArgs...> 12329: { 12329: static_assert(sizeof...(_BoundArgs) == sizeof...(_Args), 12329: "Wrong number of arguments for function"); 12329: }; 12329: 12329: template 12329: struct _Bind_check_arity<_Ret (*)(_Args......), _BoundArgs...> 12329: { 12329: static_assert(sizeof...(_BoundArgs) >= sizeof...(_Args), 12329: "Wrong number of arguments for function"); 12329: }; 12329: 12329: template 12329: struct _Bind_check_arity<_Tp _Class::*, _BoundArgs...> 12329: { 12329: using _Arity = typename _Mem_fn<_Tp _Class::*>::_Arity; 12329: using _Varargs = typename _Mem_fn<_Tp _Class::*>::_Varargs; 12329: static_assert(_Varargs::value 12329: ? sizeof...(_BoundArgs) >= _Arity::value + 1 12329: : sizeof...(_BoundArgs) == _Arity::value + 1, 12329: "Wrong number of arguments for pointer-to-member"); 12329: }; 12329: 12329: 12329: 12329: 12329: template::type> 12329: using __is_socketlike = __or_, is_enum<_Tp2>>; 12329: 12329: template 12329: struct _Bind_helper 12329: : _Bind_check_arity::type, _BoundArgs...> 12329: { 12329: typedef typename decay<_Func>::type __func_type; 12329: typedef _Bind<__func_type(typename decay<_BoundArgs>::type...)> type; 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: struct _Bind_helper 12329: { }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline typename 12329: _Bind_helper<__is_socketlike<_Func>::value, _Func, _BoundArgs...>::type 12329: bind(_Func&& __f, _BoundArgs&&... __args) 12329: { 12329: typedef _Bind_helper __helper_type; 12329: return typename __helper_type::type(std::forward<_Func>(__f), 12329: std::forward<_BoundArgs>(__args)...); 12329: } 12329: 12329: template 12329: struct _Bindres_helper 12329: : _Bind_check_arity::type, _BoundArgs...> 12329: { 12329: typedef typename decay<_Func>::type __functor_type; 12329: typedef _Bind_result<_Result, 12329: __functor_type(typename decay<_BoundArgs>::type...)> 12329: type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline 12329: typename _Bindres_helper<_Result, _Func, _BoundArgs...>::type 12329: bind(_Func&& __f, _BoundArgs&&... __args) 12329: { 12329: typedef _Bindres_helper<_Result, _Func, _BoundArgs...> __helper_type; 12329: return typename __helper_type::type(std::forward<_Func>(__f), 12329: std::forward<_BoundArgs>(__args)...); 12329: } 12329: # 997 "/usr/include/c++/12/functional" 3 12329: template 12329: class _Not_fn 12329: { 12329: template 12329: using __inv_res_t = typename __invoke_result<_Fn2, _Args...>::type; 12329: 12329: template 12329: static decltype(!std::declval<_Tp>()) 12329: _S_not() noexcept(noexcept(!std::declval<_Tp>())); 12329: 12329: public: 12329: template 12329: constexpr 12329: _Not_fn(_Fn2&& __fn, int) 12329: : _M_fn(std::forward<_Fn2>(__fn)) { } 12329: 12329: _Not_fn(const _Not_fn& __fn) = default; 12329: _Not_fn(_Not_fn&& __fn) = default; 12329: ~_Not_fn() = default; 12329: # 1031 "/usr/include/c++/12/functional" 3 12329: template decltype(_S_not<__inv_res_t<_Fn &, _Args...>>()) operator()(_Args&&... __args) & noexcept(__is_nothrow_invocable<_Fn &, _Args...>::value && noexcept(_S_not<__inv_res_t<_Fn &, _Args...>>())) { return !std::__invoke(std::forward< _Fn & >(_M_fn), std::forward<_Args>(__args)...); } 12329: template decltype(_S_not<__inv_res_t<_Fn const &, _Args...>>()) operator()(_Args&&... __args) const & noexcept(__is_nothrow_invocable<_Fn const &, _Args...>::value && noexcept(_S_not<__inv_res_t<_Fn const &, _Args...>>())) { return !std::__invoke(std::forward< _Fn const & >(_M_fn), std::forward<_Args>(__args)...); } 12329: template decltype(_S_not<__inv_res_t<_Fn &&, _Args...>>()) operator()(_Args&&... __args) && noexcept(__is_nothrow_invocable<_Fn &&, _Args...>::value && noexcept(_S_not<__inv_res_t<_Fn &&, _Args...>>())) { return !std::__invoke(std::forward< _Fn && >(_M_fn), std::forward<_Args>(__args)...); } 12329: template decltype(_S_not<__inv_res_t<_Fn const &&, _Args...>>()) operator()(_Args&&... __args) const && noexcept(__is_nothrow_invocable<_Fn const &&, _Args...>::value && noexcept(_S_not<__inv_res_t<_Fn const &&, _Args...>>())) { return !std::__invoke(std::forward< _Fn const && >(_M_fn), std::forward<_Args>(__args)...); } 12329: 12329: 12329: private: 12329: _Fn _M_fn; 12329: }; 12329: 12329: template 12329: struct __is_byte_like : false_type { }; 12329: 12329: template 12329: struct __is_byte_like<_Tp, equal_to<_Tp>> 12329: : __bool_constant::value> { }; 12329: 12329: template 12329: struct __is_byte_like<_Tp, equal_to> 12329: : __bool_constant::value> { }; 12329: # 1367 "/usr/include/c++/12/functional" 3 12329: 12329: } 12329: # 22 "/usr/include/boost/config/no_tr1/functional.hpp" 2 3 4 12329: # 15 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/function/function_base.hpp" 1 3 4 12329: # 16 "/usr/include/boost/function/function_base.hpp" 3 4 12329: # 1 "/usr/include/c++/12/memory" 1 3 4 12329: # 47 "/usr/include/c++/12/memory" 3 4 12329: 12329: # 48 "/usr/include/c++/12/memory" 3 12329: # 68 "/usr/include/c++/12/memory" 3 12329: # 1 "/usr/include/c++/12/bits/stl_raw_storage_iter.h" 1 3 12329: # 59 "/usr/include/c++/12/bits/stl_raw_storage_iter.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class raw_storage_iterator 12329: : public iterator 12329: { 12329: protected: 12329: _OutputIterator _M_iter; 12329: 12329: public: 12329: explicit 12329: raw_storage_iterator(_OutputIterator __x) 12329: : _M_iter(__x) {} 12329: 12329: raw_storage_iterator& 12329: operator*() { return *this; } 12329: 12329: raw_storage_iterator& 12329: operator=(const _Tp& __element) 12329: { 12329: std::_Construct(std::__addressof(*_M_iter), __element); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: raw_storage_iterator& 12329: operator=(_Tp&& __element) 12329: { 12329: std::_Construct(std::__addressof(*_M_iter), std::move(__element)); 12329: return *this; 12329: } 12329: 12329: 12329: raw_storage_iterator& 12329: operator++() 12329: { 12329: ++_M_iter; 12329: return *this; 12329: } 12329: 12329: raw_storage_iterator 12329: operator++(int) 12329: { 12329: raw_storage_iterator __tmp = *this; 12329: ++_M_iter; 12329: return __tmp; 12329: } 12329: 12329: 12329: 12329: _OutputIterator base() const { return _M_iter; } 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: } 12329: # 69 "/usr/include/c++/12/memory" 2 3 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/align.h" 1 3 12329: # 35 "/usr/include/c++/12/bits/align.h" 3 12329: # 1 "/usr/include/c++/12/bit" 1 3 12329: # 32 "/usr/include/c++/12/bit" 3 12329: 12329: # 33 "/usr/include/c++/12/bit" 3 12329: # 55 "/usr/include/c++/12/bit" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 149 "/usr/include/c++/12/bit" 3 12329: template 12329: constexpr _Tp 12329: __rotl(_Tp __x, int __s) noexcept 12329: { 12329: constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; 12329: if ((_Nd & (_Nd - 1)) == 0) 12329: { 12329: 12329: 12329: constexpr unsigned __uNd = _Nd; 12329: const unsigned __r = __s; 12329: return (__x << (__r % __uNd)) | (__x >> ((-__r) % __uNd)); 12329: } 12329: const int __r = __s % _Nd; 12329: if (__r == 0) 12329: return __x; 12329: else if (__r > 0) 12329: return (__x << __r) | (__x >> ((_Nd - __r) % _Nd)); 12329: else 12329: return (__x >> -__r) | (__x << ((_Nd + __r) % _Nd)); 12329: } 12329: 12329: template 12329: constexpr _Tp 12329: __rotr(_Tp __x, int __s) noexcept 12329: { 12329: constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; 12329: if ((_Nd & (_Nd - 1)) == 0) 12329: { 12329: 12329: 12329: constexpr unsigned __uNd = _Nd; 12329: const unsigned __r = __s; 12329: return (__x >> (__r % __uNd)) | (__x << ((-__r) % __uNd)); 12329: } 12329: const int __r = __s % _Nd; 12329: if (__r == 0) 12329: return __x; 12329: else if (__r > 0) 12329: return (__x >> __r) | (__x << ((_Nd - __r) % _Nd)); 12329: else 12329: return (__x << -__r) | (__x >> ((_Nd + __r) % _Nd)); 12329: } 12329: 12329: template 12329: constexpr int 12329: __countl_zero(_Tp __x) noexcept 12329: { 12329: using __gnu_cxx::__int_traits; 12329: constexpr auto _Nd = __int_traits<_Tp>::__digits; 12329: 12329: if (__x == 0) 12329: return _Nd; 12329: 12329: constexpr auto _Nd_ull = __int_traits::__digits; 12329: constexpr auto _Nd_ul = __int_traits::__digits; 12329: constexpr auto _Nd_u = __int_traits::__digits; 12329: 12329: if (_Nd <= _Nd_u) 12329: { 12329: constexpr int __diff = _Nd_u - _Nd; 12329: return __builtin_clz(__x) - __diff; 12329: } 12329: else if (_Nd <= _Nd_ul) 12329: { 12329: constexpr int __diff = _Nd_ul - _Nd; 12329: return __builtin_clzl(__x) - __diff; 12329: } 12329: else if (_Nd <= _Nd_ull) 12329: { 12329: constexpr int __diff = _Nd_ull - _Nd; 12329: return __builtin_clzll(__x) - __diff; 12329: } 12329: else 12329: { 12329: static_assert(_Nd <= (2 * _Nd_ull), 12329: "Maximum supported integer size is 128-bit"); 12329: 12329: unsigned long long __high = __x >> _Nd_ull; 12329: if (__high != 0) 12329: { 12329: constexpr int __diff = (2 * _Nd_ull) - _Nd; 12329: return __builtin_clzll(__high) - __diff; 12329: } 12329: constexpr auto __max_ull = __int_traits::__max; 12329: unsigned long long __low = __x & __max_ull; 12329: return (_Nd - _Nd_ull) + __builtin_clzll(__low); 12329: } 12329: } 12329: 12329: template 12329: constexpr int 12329: __countl_one(_Tp __x) noexcept 12329: { 12329: return std::__countl_zero<_Tp>((_Tp)~__x); 12329: } 12329: 12329: template 12329: constexpr int 12329: __countr_zero(_Tp __x) noexcept 12329: { 12329: using __gnu_cxx::__int_traits; 12329: constexpr auto _Nd = __int_traits<_Tp>::__digits; 12329: 12329: if (__x == 0) 12329: return _Nd; 12329: 12329: constexpr auto _Nd_ull = __int_traits::__digits; 12329: constexpr auto _Nd_ul = __int_traits::__digits; 12329: constexpr auto _Nd_u = __int_traits::__digits; 12329: 12329: if (_Nd <= _Nd_u) 12329: return __builtin_ctz(__x); 12329: else if (_Nd <= _Nd_ul) 12329: return __builtin_ctzl(__x); 12329: else if (_Nd <= _Nd_ull) 12329: return __builtin_ctzll(__x); 12329: else 12329: { 12329: static_assert(_Nd <= (2 * _Nd_ull), 12329: "Maximum supported integer size is 128-bit"); 12329: 12329: constexpr auto __max_ull = __int_traits::__max; 12329: unsigned long long __low = __x & __max_ull; 12329: if (__low != 0) 12329: return __builtin_ctzll(__low); 12329: unsigned long long __high = __x >> _Nd_ull; 12329: return __builtin_ctzll(__high) + _Nd_ull; 12329: } 12329: } 12329: 12329: template 12329: constexpr int 12329: __countr_one(_Tp __x) noexcept 12329: { 12329: return std::__countr_zero((_Tp)~__x); 12329: } 12329: 12329: template 12329: constexpr int 12329: __popcount(_Tp __x) noexcept 12329: { 12329: using __gnu_cxx::__int_traits; 12329: constexpr auto _Nd = __int_traits<_Tp>::__digits; 12329: 12329: constexpr auto _Nd_ull = __int_traits::__digits; 12329: constexpr auto _Nd_ul = __int_traits::__digits; 12329: constexpr auto _Nd_u = __int_traits::__digits; 12329: 12329: if (_Nd <= _Nd_u) 12329: return __builtin_popcount(__x); 12329: else if (_Nd <= _Nd_ul) 12329: return __builtin_popcountl(__x); 12329: else if (_Nd <= _Nd_ull) 12329: return __builtin_popcountll(__x); 12329: else 12329: { 12329: static_assert(_Nd <= (2 * _Nd_ull), 12329: "Maximum supported integer size is 128-bit"); 12329: 12329: constexpr auto __max_ull = __int_traits::__max; 12329: unsigned long long __low = __x & __max_ull; 12329: unsigned long long __high = __x >> _Nd_ull; 12329: return __builtin_popcountll(__low) + __builtin_popcountll(__high); 12329: } 12329: } 12329: 12329: template 12329: constexpr bool 12329: __has_single_bit(_Tp __x) noexcept 12329: { return std::__popcount(__x) == 1; } 12329: 12329: template 12329: constexpr _Tp 12329: __bit_ceil(_Tp __x) noexcept 12329: { 12329: using __gnu_cxx::__int_traits; 12329: constexpr auto _Nd = __int_traits<_Tp>::__digits; 12329: if (__x == 0 || __x == 1) 12329: return 1; 12329: auto __shift_exponent = _Nd - std::__countl_zero((_Tp)(__x - 1u)); 12329: 12329: 12329: 12329: 12329: if (!std::__is_constant_evaluated()) 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__shift_exponent != __int_traits<_Tp>::__digits)) __builtin_unreachable(); } while (false); 12329: } 12329: 12329: using __promoted_type = decltype(__x << 1); 12329: if (!is_same<__promoted_type, _Tp>::value) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: const int __extra_exp = sizeof(__promoted_type) / sizeof(_Tp) / 2; 12329: __shift_exponent |= (__shift_exponent & _Nd) << __extra_exp; 12329: } 12329: return (_Tp)1u << __shift_exponent; 12329: } 12329: 12329: template 12329: constexpr _Tp 12329: __bit_floor(_Tp __x) noexcept 12329: { 12329: constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; 12329: if (__x == 0) 12329: return 0; 12329: return (_Tp)1u << (_Nd - std::__countl_zero((_Tp)(__x >> 1))); 12329: } 12329: 12329: template 12329: constexpr _Tp 12329: __bit_width(_Tp __x) noexcept 12329: { 12329: constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; 12329: return _Nd - std::__countl_zero(__x); 12329: } 12329: # 476 "/usr/include/c++/12/bit" 3 12329: 12329: } 12329: # 36 "/usr/include/c++/12/bits/align.h" 2 3 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 61 "/usr/include/c++/12/bits/align.h" 3 12329: inline void* 12329: align(size_t __align, size_t __size, void*& __ptr, size_t& __space) noexcept 12329: { 12329: if (__space < __size) 12329: return nullptr; 12329: const auto __intptr = reinterpret_cast(__ptr); 12329: const auto __aligned = (__intptr - 1u + __align) & -__align; 12329: const auto __diff = __aligned - __intptr; 12329: if (__diff > (__space - __size)) 12329: return nullptr; 12329: else 12329: { 12329: __space -= __diff; 12329: return __ptr = reinterpret_cast(__aligned); 12329: } 12329: } 12329: # 108 "/usr/include/c++/12/bits/align.h" 3 12329: 12329: } 12329: # 73 "/usr/include/c++/12/memory" 2 3 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/unique_ptr.h" 1 3 12329: # 52 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: template class auto_ptr; 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: 12329: 12329: template 12329: struct default_delete 12329: { 12329: 12329: constexpr default_delete() noexcept = default; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template>> 12329: 12329: default_delete(const default_delete<_Up>&) noexcept { } 12329: 12329: 12329: 12329: void 12329: operator()(_Tp* __ptr) const 12329: { 12329: static_assert(!is_void<_Tp>::value, 12329: "can't delete pointer to incomplete type"); 12329: static_assert(sizeof(_Tp)>0, 12329: "can't delete pointer to incomplete type"); 12329: delete __ptr; 12329: } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct default_delete<_Tp[]> 12329: { 12329: public: 12329: 12329: constexpr default_delete() noexcept = default; 12329: # 119 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template>> 12329: 12329: default_delete(const default_delete<_Up[]>&) noexcept { } 12329: 12329: 12329: template 12329: 12329: typename enable_if::value>::type 12329: operator()(_Up* __ptr) const 12329: { 12329: static_assert(sizeof(_Tp)>0, 12329: "can't delete pointer to incomplete type"); 12329: delete [] __ptr; 12329: } 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: class __uniq_ptr_impl 12329: { 12329: template 12329: struct _Ptr 12329: { 12329: using type = _Up*; 12329: }; 12329: 12329: template 12329: struct 12329: _Ptr<_Up, _Ep, __void_t::type::pointer>> 12329: { 12329: using type = typename remove_reference<_Ep>::type::pointer; 12329: }; 12329: 12329: public: 12329: using _DeleterConstraint = enable_if< 12329: __and_<__not_>, 12329: is_default_constructible<_Dp>>::value>; 12329: 12329: using pointer = typename _Ptr<_Tp, _Dp>::type; 12329: 12329: static_assert( !is_rvalue_reference<_Dp>::value, 12329: "unique_ptr's deleter type must be a function object type" 12329: " or an lvalue reference type" ); 12329: 12329: __uniq_ptr_impl() = default; 12329: 12329: __uniq_ptr_impl(pointer __p) : _M_t() { _M_ptr() = __p; } 12329: 12329: template 12329: 12329: __uniq_ptr_impl(pointer __p, _Del&& __d) 12329: : _M_t(__p, std::forward<_Del>(__d)) { } 12329: 12329: 12329: __uniq_ptr_impl(__uniq_ptr_impl&& __u) noexcept 12329: : _M_t(std::move(__u._M_t)) 12329: { __u._M_ptr() = nullptr; } 12329: 12329: 12329: __uniq_ptr_impl& operator=(__uniq_ptr_impl&& __u) noexcept 12329: { 12329: reset(__u.release()); 12329: _M_deleter() = std::forward<_Dp>(__u._M_deleter()); 12329: return *this; 12329: } 12329: 12329: 12329: pointer& _M_ptr() noexcept { return std::get<0>(_M_t); } 12329: 12329: pointer _M_ptr() const noexcept { return std::get<0>(_M_t); } 12329: 12329: _Dp& _M_deleter() noexcept { return std::get<1>(_M_t); } 12329: 12329: const _Dp& _M_deleter() const noexcept { return std::get<1>(_M_t); } 12329: 12329: 12329: void reset(pointer __p) noexcept 12329: { 12329: const pointer __old_p = _M_ptr(); 12329: _M_ptr() = __p; 12329: if (__old_p) 12329: _M_deleter()(__old_p); 12329: } 12329: 12329: 12329: pointer release() noexcept 12329: { 12329: pointer __p = _M_ptr(); 12329: _M_ptr() = nullptr; 12329: return __p; 12329: } 12329: 12329: 12329: void 12329: swap(__uniq_ptr_impl& __rhs) noexcept 12329: { 12329: using std::swap; 12329: swap(this->_M_ptr(), __rhs._M_ptr()); 12329: swap(this->_M_deleter(), __rhs._M_deleter()); 12329: } 12329: 12329: private: 12329: tuple _M_t; 12329: }; 12329: 12329: 12329: template ::value, 12329: bool = is_move_assignable<_Dp>::value> 12329: struct __uniq_ptr_data : __uniq_ptr_impl<_Tp, _Dp> 12329: { 12329: using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl; 12329: __uniq_ptr_data(__uniq_ptr_data&&) = default; 12329: __uniq_ptr_data& operator=(__uniq_ptr_data&&) = default; 12329: }; 12329: 12329: template 12329: struct __uniq_ptr_data<_Tp, _Dp, true, false> : __uniq_ptr_impl<_Tp, _Dp> 12329: { 12329: using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl; 12329: __uniq_ptr_data(__uniq_ptr_data&&) = default; 12329: __uniq_ptr_data& operator=(__uniq_ptr_data&&) = delete; 12329: }; 12329: 12329: template 12329: struct __uniq_ptr_data<_Tp, _Dp, false, true> : __uniq_ptr_impl<_Tp, _Dp> 12329: { 12329: using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl; 12329: __uniq_ptr_data(__uniq_ptr_data&&) = delete; 12329: __uniq_ptr_data& operator=(__uniq_ptr_data&&) = default; 12329: }; 12329: 12329: template 12329: struct __uniq_ptr_data<_Tp, _Dp, false, false> : __uniq_ptr_impl<_Tp, _Dp> 12329: { 12329: using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl; 12329: __uniq_ptr_data(__uniq_ptr_data&&) = delete; 12329: __uniq_ptr_data& operator=(__uniq_ptr_data&&) = delete; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template > 12329: class unique_ptr 12329: { 12329: template 12329: using _DeleterConstraint = 12329: typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 12329: 12329: __uniq_ptr_data<_Tp, _Dp> _M_t; 12329: 12329: public: 12329: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 12329: using element_type = _Tp; 12329: using deleter_type = _Dp; 12329: 12329: private: 12329: 12329: 12329: template 12329: using __safe_conversion_up = __and_< 12329: is_convertible::pointer, pointer>, 12329: __not_> 12329: >; 12329: 12329: public: 12329: 12329: 12329: 12329: template> 12329: constexpr unique_ptr() noexcept 12329: : _M_t() 12329: { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template> 12329: 12329: explicit 12329: unique_ptr(pointer __p) noexcept 12329: : _M_t(__p) 12329: { } 12329: # 320 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template>> 12329: 12329: unique_ptr(pointer __p, const deleter_type& __d) noexcept 12329: : _M_t(__p, __d) { } 12329: # 333 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template>> 12329: 12329: unique_ptr(pointer __p, 12329: __enable_if_t::value, 12329: _Del&&> __d) noexcept 12329: : _M_t(__p, std::move(__d)) 12329: { } 12329: 12329: template::type> 12329: 12329: unique_ptr(pointer, 12329: __enable_if_t::value, 12329: _DelUnref&&>) = delete; 12329: 12329: 12329: template> 12329: constexpr unique_ptr(nullptr_t) noexcept 12329: : _M_t() 12329: { } 12329: 12329: 12329: 12329: 12329: unique_ptr(unique_ptr&&) = default; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template, 12329: __conditional_t::value, 12329: is_same<_Ep, _Dp>, 12329: is_convertible<_Ep, _Dp>>>> 12329: 12329: unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 12329: : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) 12329: { } 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: template, is_same<_Dp, default_delete<_Tp>>>> 12329: unique_ptr(auto_ptr<_Up>&& __u) noexcept; 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: 12329: 12329: 12329: 12329: ~unique_ptr() noexcept 12329: { 12329: static_assert(__is_invocable::value, 12329: "unique_ptr's deleter must be invocable with a pointer"); 12329: auto& __ptr = _M_t._M_ptr(); 12329: if (__ptr != nullptr) 12329: get_deleter()(std::move(__ptr)); 12329: __ptr = pointer(); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: unique_ptr& operator=(unique_ptr&&) = default; 12329: # 415 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template 12329: 12329: typename enable_if< __and_< 12329: __safe_conversion_up<_Up, _Ep>, 12329: is_assignable 12329: >::value, 12329: unique_ptr&>::type 12329: operator=(unique_ptr<_Up, _Ep>&& __u) noexcept 12329: { 12329: reset(__u.release()); 12329: get_deleter() = std::forward<_Ep>(__u.get_deleter()); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: unique_ptr& 12329: operator=(nullptr_t) noexcept 12329: { 12329: reset(); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: typename add_lvalue_reference::type 12329: operator*() const noexcept(noexcept(*std::declval())) 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(get() != pointer())) __builtin_unreachable(); } while (false); 12329: return *get(); 12329: } 12329: 12329: 12329: 12329: pointer 12329: operator->() const noexcept 12329: { 12329: ; 12329: return get(); 12329: } 12329: 12329: 12329: 12329: pointer 12329: get() const noexcept 12329: { return _M_t._M_ptr(); } 12329: 12329: 12329: 12329: deleter_type& 12329: get_deleter() noexcept 12329: { return _M_t._M_deleter(); } 12329: 12329: 12329: 12329: const deleter_type& 12329: get_deleter() const noexcept 12329: { return _M_t._M_deleter(); } 12329: 12329: 12329: 12329: explicit operator bool() const noexcept 12329: { return get() == pointer() ? false : true; } 12329: 12329: 12329: 12329: 12329: 12329: pointer 12329: release() noexcept 12329: { return _M_t.release(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: reset(pointer __p = pointer()) noexcept 12329: { 12329: static_assert(__is_invocable::value, 12329: "unique_ptr's deleter must be invocable with a pointer"); 12329: _M_t.reset(std::move(__p)); 12329: } 12329: 12329: 12329: 12329: void 12329: swap(unique_ptr& __u) noexcept 12329: { 12329: static_assert(__is_swappable<_Dp>::value, "deleter must be swappable"); 12329: _M_t.swap(__u._M_t); 12329: } 12329: 12329: 12329: unique_ptr(const unique_ptr&) = delete; 12329: unique_ptr& operator=(const unique_ptr&) = delete; 12329: }; 12329: # 526 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template 12329: class unique_ptr<_Tp[], _Dp> 12329: { 12329: template 12329: using _DeleterConstraint = 12329: typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 12329: 12329: __uniq_ptr_data<_Tp, _Dp> _M_t; 12329: 12329: template 12329: using __remove_cv = typename remove_cv<_Up>::type; 12329: 12329: 12329: template 12329: using __is_derived_Tp 12329: = __and_< is_base_of<_Tp, _Up>, 12329: __not_, __remove_cv<_Up>>> >; 12329: 12329: public: 12329: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 12329: using element_type = _Tp; 12329: using deleter_type = _Dp; 12329: 12329: 12329: 12329: template, 12329: typename _UP_pointer = typename _UPtr::pointer, 12329: typename _UP_element_type = typename _UPtr::element_type> 12329: using __safe_conversion_up = __and_< 12329: is_array<_Up>, 12329: is_same, 12329: is_same<_UP_pointer, _UP_element_type*>, 12329: is_convertible<_UP_element_type(*)[], element_type(*)[]> 12329: >; 12329: 12329: 12329: template 12329: using __safe_conversion_raw = __and_< 12329: __or_<__or_, 12329: is_same<_Up, nullptr_t>>, 12329: __and_, 12329: is_same, 12329: is_convertible< 12329: typename remove_pointer<_Up>::type(*)[], 12329: element_type(*)[]> 12329: > 12329: > 12329: >; 12329: 12329: 12329: 12329: 12329: template> 12329: constexpr unique_ptr() noexcept 12329: : _M_t() 12329: { } 12329: # 591 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template, 12329: typename = typename enable_if< 12329: __safe_conversion_raw<_Up>::value, bool>::type> 12329: 12329: explicit 12329: unique_ptr(_Up __p) noexcept 12329: : _M_t(__p) 12329: { } 12329: # 610 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template, 12329: is_copy_constructible<_Del>>> 12329: 12329: unique_ptr(_Up __p, const deleter_type& __d) noexcept 12329: : _M_t(__p, __d) { } 12329: # 625 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template, 12329: is_move_constructible<_Del>>> 12329: 12329: unique_ptr(_Up __p, 12329: __enable_if_t::value, 12329: _Del&&> __d) noexcept 12329: : _M_t(std::move(__p), std::move(__d)) 12329: { } 12329: 12329: template::type, 12329: typename = _Require<__safe_conversion_raw<_Up>>> 12329: unique_ptr(_Up, 12329: __enable_if_t::value, 12329: _DelUnref&&>) = delete; 12329: 12329: 12329: unique_ptr(unique_ptr&&) = default; 12329: 12329: 12329: template> 12329: constexpr unique_ptr(nullptr_t) noexcept 12329: : _M_t() 12329: { } 12329: 12329: template, 12329: __conditional_t::value, 12329: is_same<_Ep, _Dp>, 12329: is_convertible<_Ep, _Dp>>>> 12329: 12329: unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 12329: : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) 12329: { } 12329: 12329: 12329: 12329: 12329: 12329: ~unique_ptr() 12329: { 12329: auto& __ptr = _M_t._M_ptr(); 12329: if (__ptr != nullptr) 12329: get_deleter()(__ptr); 12329: __ptr = pointer(); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: unique_ptr& 12329: operator=(unique_ptr&&) = default; 12329: # 689 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template 12329: 12329: typename 12329: enable_if<__and_<__safe_conversion_up<_Up, _Ep>, 12329: is_assignable 12329: >::value, 12329: unique_ptr&>::type 12329: operator=(unique_ptr<_Up, _Ep>&& __u) noexcept 12329: { 12329: reset(__u.release()); 12329: get_deleter() = std::forward<_Ep>(__u.get_deleter()); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: unique_ptr& 12329: operator=(nullptr_t) noexcept 12329: { 12329: reset(); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: typename std::add_lvalue_reference::type 12329: operator[](size_t __i) const 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(get() != pointer())) __builtin_unreachable(); } while (false); 12329: return get()[__i]; 12329: } 12329: 12329: 12329: 12329: pointer 12329: get() const noexcept 12329: { return _M_t._M_ptr(); } 12329: 12329: 12329: 12329: deleter_type& 12329: get_deleter() noexcept 12329: { return _M_t._M_deleter(); } 12329: 12329: 12329: 12329: const deleter_type& 12329: get_deleter() const noexcept 12329: { return _M_t._M_deleter(); } 12329: 12329: 12329: 12329: explicit operator bool() const noexcept 12329: { return get() == pointer() ? false : true; } 12329: 12329: 12329: 12329: 12329: 12329: pointer 12329: release() noexcept 12329: { return _M_t.release(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template , 12329: __and_, 12329: is_pointer<_Up>, 12329: is_convertible< 12329: typename remove_pointer<_Up>::type(*)[], 12329: element_type(*)[] 12329: > 12329: > 12329: > 12329: >> 12329: 12329: void 12329: reset(_Up __p) noexcept 12329: { _M_t.reset(std::move(__p)); } 12329: 12329: 12329: void reset(nullptr_t = nullptr) noexcept 12329: { reset(pointer()); } 12329: 12329: 12329: 12329: void 12329: swap(unique_ptr& __u) noexcept 12329: { 12329: static_assert(__is_swappable<_Dp>::value, "deleter must be swappable"); 12329: _M_t.swap(__u._M_t); 12329: } 12329: 12329: 12329: unique_ptr(const unique_ptr&) = delete; 12329: unique_ptr& operator=(const unique_ptr&) = delete; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline 12329: 12329: 12329: 12329: 12329: 12329: void 12329: 12329: swap(unique_ptr<_Tp, _Dp>& __x, 12329: unique_ptr<_Tp, _Dp>& __y) noexcept 12329: { __x.swap(__y); } 12329: # 820 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template 12329: 12329: inline bool 12329: operator==(const unique_ptr<_Tp, _Dp>& __x, 12329: const unique_ptr<_Up, _Ep>& __y) 12329: { return __x.get() == __y.get(); } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept 12329: { return !__x; } 12329: 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator==(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept 12329: { return !__x; } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator!=(const unique_ptr<_Tp, _Dp>& __x, 12329: const unique_ptr<_Up, _Ep>& __y) 12329: { return __x.get() != __y.get(); } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator!=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept 12329: { return (bool)__x; } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator!=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept 12329: { return (bool)__x; } 12329: 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator<(const unique_ptr<_Tp, _Dp>& __x, 12329: const unique_ptr<_Up, _Ep>& __y) 12329: { 12329: typedef typename 12329: std::common_type::pointer, 12329: typename unique_ptr<_Up, _Ep>::pointer>::type _CT; 12329: return std::less<_CT>()(__x.get(), __y.get()); 12329: } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator<(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 12329: { 12329: return std::less::pointer>()(__x.get(), 12329: nullptr); 12329: } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator<(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 12329: { 12329: return std::less::pointer>()(nullptr, 12329: __x.get()); 12329: } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator<=(const unique_ptr<_Tp, _Dp>& __x, 12329: const unique_ptr<_Up, _Ep>& __y) 12329: { return !(__y < __x); } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator<=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 12329: { return !(nullptr < __x); } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator<=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 12329: { return !(__x < nullptr); } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator>(const unique_ptr<_Tp, _Dp>& __x, 12329: const unique_ptr<_Up, _Ep>& __y) 12329: { return (__y < __x); } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator>(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 12329: { 12329: return std::less::pointer>()(nullptr, 12329: __x.get()); 12329: } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator>(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 12329: { 12329: return std::less::pointer>()(__x.get(), 12329: nullptr); 12329: } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator>=(const unique_ptr<_Tp, _Dp>& __x, 12329: const unique_ptr<_Up, _Ep>& __y) 12329: { return !(__x < __y); } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator>=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 12329: { return !(__x < nullptr); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 12329: { return !(nullptr < __x); } 12329: # 1001 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template::__enable_hash_call> 12329: struct __uniq_ptr_hash 12329: 12329: : private __poison_hash<_Ptr> 12329: 12329: { 12329: size_t 12329: operator()(const _Up& __u) const 12329: noexcept(noexcept(std::declval>()(std::declval<_Ptr>()))) 12329: { return hash<_Ptr>()(__u.get()); } 12329: }; 12329: 12329: template 12329: struct __uniq_ptr_hash<_Up, _Ptr, false> 12329: : private __poison_hash<_Ptr> 12329: { }; 12329: 12329: 12329: 12329: template 12329: struct hash> 12329: : public __hash_base>, 12329: public __uniq_ptr_hash> 12329: { }; 12329: 12329: 12329: 12329: 12329: 12329: namespace __detail 12329: { 12329: template 12329: struct _MakeUniq 12329: { typedef unique_ptr<_Tp> __single_object; }; 12329: 12329: template 12329: struct _MakeUniq<_Tp[]> 12329: { typedef unique_ptr<_Tp[]> __array; }; 12329: 12329: template 12329: struct _MakeUniq<_Tp[_Bound]> 12329: { struct __invalid_type { }; }; 12329: 12329: template 12329: using __unique_ptr_t = typename _MakeUniq<_Tp>::__single_object; 12329: template 12329: using __unique_ptr_array_t = typename _MakeUniq<_Tp>::__array; 12329: template 12329: using __invalid_make_unique_t = typename _MakeUniq<_Tp>::__invalid_type; 12329: } 12329: # 1061 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template 12329: 12329: inline __detail::__unique_ptr_t<_Tp> 12329: make_unique(_Args&&... __args) 12329: { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); } 12329: # 1076 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: template 12329: 12329: inline __detail::__unique_ptr_array_t<_Tp> 12329: make_unique(size_t __num) 12329: { return unique_ptr<_Tp>(new remove_extent_t<_Tp>[__num]()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: __detail::__invalid_make_unique_t<_Tp> 12329: make_unique(_Args&&...) = delete; 12329: # 1162 "/usr/include/c++/12/bits/unique_ptr.h" 3 12329: 12329: } 12329: # 77 "/usr/include/c++/12/memory" 2 3 12329: # 1 "/usr/include/c++/12/bits/shared_ptr.h" 1 3 12329: # 53 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: # 1 "/usr/include/c++/12/bits/shared_ptr_base.h" 1 3 12329: # 53 "/usr/include/c++/12/bits/shared_ptr_base.h" 3 12329: # 1 "/usr/include/c++/12/bits/allocated_ptr.h" 1 3 12329: # 40 "/usr/include/c++/12/bits/allocated_ptr.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: template 12329: struct __allocated_ptr 12329: { 12329: using pointer = typename allocator_traits<_Alloc>::pointer; 12329: using value_type = typename allocator_traits<_Alloc>::value_type; 12329: 12329: 12329: __allocated_ptr(_Alloc& __a, pointer __ptr) noexcept 12329: : _M_alloc(std::__addressof(__a)), _M_ptr(__ptr) 12329: { } 12329: 12329: 12329: template>> 12329: __allocated_ptr(_Alloc& __a, _Ptr __ptr) 12329: : _M_alloc(std::__addressof(__a)), 12329: _M_ptr(pointer_traits::pointer_to(*__ptr)) 12329: { } 12329: 12329: 12329: __allocated_ptr(__allocated_ptr&& __gd) noexcept 12329: : _M_alloc(__gd._M_alloc), _M_ptr(__gd._M_ptr) 12329: { __gd._M_ptr = nullptr; } 12329: 12329: 12329: ~__allocated_ptr() 12329: { 12329: if (_M_ptr != nullptr) 12329: std::allocator_traits<_Alloc>::deallocate(*_M_alloc, _M_ptr, 1); 12329: } 12329: 12329: 12329: __allocated_ptr& 12329: operator=(std::nullptr_t) noexcept 12329: { 12329: _M_ptr = nullptr; 12329: return *this; 12329: } 12329: 12329: 12329: value_type* get() { return std::__to_address(_M_ptr); } 12329: 12329: private: 12329: _Alloc* _M_alloc; 12329: pointer _M_ptr; 12329: }; 12329: 12329: 12329: template 12329: __allocated_ptr<_Alloc> 12329: __allocate_guarded(_Alloc& __a) 12329: { 12329: return { __a, std::allocator_traits<_Alloc>::allocate(__a, 1) }; 12329: } 12329: 12329: 12329: 12329: } 12329: # 54 "/usr/include/c++/12/bits/shared_ptr_base.h" 2 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/ext/atomicity.h" 1 3 12329: # 32 "/usr/include/c++/12/ext/atomicity.h" 3 12329: 12329: # 33 "/usr/include/c++/12/ext/atomicity.h" 3 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr.h" 1 3 12329: # 30 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr.h" 3 12329: #pragma GCC visibility push(default) 12329: # 148 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr.h" 3 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr-default.h" 1 3 12329: # 35 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr-default.h" 3 12329: # 1 "/usr/include/pthread.h" 1 3 4 12329: # 22 "/usr/include/pthread.h" 3 4 12329: # 1 "/usr/include/sched.h" 1 3 4 12329: # 29 "/usr/include/sched.h" 3 4 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 30 "/usr/include/sched.h" 2 3 4 12329: # 43 "/usr/include/sched.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/sched.h" 1 3 4 12329: # 80 "/usr/include/aarch64-linux-gnu/bits/sched.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_sched_param.h" 1 3 4 12329: # 23 "/usr/include/aarch64-linux-gnu/bits/types/struct_sched_param.h" 3 4 12329: struct sched_param 12329: { 12329: int sched_priority; 12329: }; 12329: # 81 "/usr/include/aarch64-linux-gnu/bits/sched.h" 2 3 4 12329: 12329: extern "C" { 12329: 12329: 12329: 12329: extern int clone (int (*__fn) (void *__arg), void *__child_stack, 12329: int __flags, void *__arg, ...) noexcept (true); 12329: 12329: 12329: extern int unshare (int __flags) noexcept (true); 12329: 12329: 12329: extern int sched_getcpu (void) noexcept (true); 12329: 12329: 12329: extern int getcpu (unsigned int *, unsigned int *) noexcept (true); 12329: 12329: 12329: extern int setns (int __fd, int __nstype) noexcept (true); 12329: 12329: 12329: } 12329: # 44 "/usr/include/sched.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/cpu-set.h" 1 3 4 12329: # 32 "/usr/include/aarch64-linux-gnu/bits/cpu-set.h" 3 4 12329: typedef unsigned long int __cpu_mask; 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef struct 12329: { 12329: __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; 12329: } cpu_set_t; 12329: # 115 "/usr/include/aarch64-linux-gnu/bits/cpu-set.h" 3 4 12329: extern "C" { 12329: 12329: extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) 12329: noexcept (true); 12329: extern cpu_set_t *__sched_cpualloc (size_t __count) noexcept (true) __attribute__ ((__warn_unused_result__)); 12329: extern void __sched_cpufree (cpu_set_t *__set) noexcept (true); 12329: 12329: } 12329: # 45 "/usr/include/sched.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern "C" { 12329: 12329: 12329: extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) 12329: noexcept (true); 12329: 12329: 12329: extern int sched_getparam (__pid_t __pid, struct sched_param *__param) noexcept (true); 12329: 12329: 12329: extern int sched_setscheduler (__pid_t __pid, int __policy, 12329: const struct sched_param *__param) noexcept (true); 12329: 12329: 12329: extern int sched_getscheduler (__pid_t __pid) noexcept (true); 12329: 12329: 12329: extern int sched_yield (void) noexcept (true); 12329: 12329: 12329: extern int sched_get_priority_max (int __algorithm) noexcept (true); 12329: 12329: 12329: extern int sched_get_priority_min (int __algorithm) noexcept (true); 12329: 12329: 12329: 12329: extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) noexcept (true); 12329: # 130 "/usr/include/sched.h" 3 4 12329: extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, 12329: const cpu_set_t *__cpuset) noexcept (true); 12329: 12329: 12329: extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, 12329: cpu_set_t *__cpuset) noexcept (true); 12329: 12329: 12329: } 12329: # 23 "/usr/include/pthread.h" 2 3 4 12329: # 1 "/usr/include/time.h" 1 3 4 12329: # 29 "/usr/include/time.h" 3 4 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 30 "/usr/include/time.h" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/time.h" 1 3 4 12329: # 73 "/usr/include/aarch64-linux-gnu/bits/time.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/timex.h" 1 3 4 12329: # 26 "/usr/include/aarch64-linux-gnu/bits/timex.h" 3 4 12329: struct timex 12329: { 12329: # 58 "/usr/include/aarch64-linux-gnu/bits/timex.h" 3 4 12329: unsigned int modes; 12329: __syscall_slong_t offset; 12329: __syscall_slong_t freq; 12329: __syscall_slong_t maxerror; 12329: __syscall_slong_t esterror; 12329: int status; 12329: __syscall_slong_t constant; 12329: __syscall_slong_t precision; 12329: __syscall_slong_t tolerance; 12329: struct timeval time; 12329: __syscall_slong_t tick; 12329: __syscall_slong_t ppsfreq; 12329: __syscall_slong_t jitter; 12329: int shift; 12329: __syscall_slong_t stabil; 12329: __syscall_slong_t jitcnt; 12329: __syscall_slong_t calcnt; 12329: __syscall_slong_t errcnt; 12329: __syscall_slong_t stbcnt; 12329: 12329: int tai; 12329: 12329: 12329: int :32; int :32; int :32; int :32; 12329: int :32; int :32; int :32; int :32; 12329: int :32; int :32; int :32; 12329: 12329: }; 12329: # 74 "/usr/include/aarch64-linux-gnu/bits/time.h" 2 3 4 12329: 12329: extern "C" { 12329: 12329: 12329: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: # 90 "/usr/include/aarch64-linux-gnu/bits/time.h" 3 4 12329: } 12329: # 34 "/usr/include/time.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_tm.h" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: struct tm 12329: { 12329: int tm_sec; 12329: int tm_min; 12329: int tm_hour; 12329: int tm_mday; 12329: int tm_mon; 12329: int tm_year; 12329: int tm_wday; 12329: int tm_yday; 12329: int tm_isdst; 12329: 12329: 12329: long int tm_gmtoff; 12329: const char *tm_zone; 12329: 12329: 12329: 12329: 12329: }; 12329: # 40 "/usr/include/time.h" 2 3 4 12329: # 48 "/usr/include/time.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: struct itimerspec 12329: { 12329: struct timespec it_interval; 12329: struct timespec it_value; 12329: }; 12329: # 49 "/usr/include/time.h" 2 3 4 12329: struct sigevent; 12329: # 68 "/usr/include/time.h" 3 4 12329: extern "C" { 12329: 12329: 12329: 12329: extern clock_t clock (void) noexcept (true); 12329: 12329: 12329: 12329: extern time_t time (time_t *__timer) noexcept (true); 12329: 12329: 12329: extern double difftime (time_t __time1, time_t __time0) 12329: noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern time_t mktime (struct tm *__tp) noexcept (true); 12329: # 100 "/usr/include/time.h" 3 4 12329: extern size_t strftime (char *__restrict __s, size_t __maxsize, 12329: const char *__restrict __format, 12329: const struct tm *__restrict __tp) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern char *strptime (const char *__restrict __s, 12329: const char *__restrict __fmt, struct tm *__tp) 12329: noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern size_t strftime_l (char *__restrict __s, size_t __maxsize, 12329: const char *__restrict __format, 12329: const struct tm *__restrict __tp, 12329: locale_t __loc) noexcept (true); 12329: 12329: 12329: 12329: extern char *strptime_l (const char *__restrict __s, 12329: const char *__restrict __fmt, struct tm *__tp, 12329: locale_t __loc) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern struct tm *gmtime (const time_t *__timer) noexcept (true); 12329: 12329: 12329: 12329: extern struct tm *localtime (const time_t *__timer) noexcept (true); 12329: # 154 "/usr/include/time.h" 3 4 12329: extern struct tm *gmtime_r (const time_t *__restrict __timer, 12329: struct tm *__restrict __tp) noexcept (true); 12329: 12329: 12329: 12329: extern struct tm *localtime_r (const time_t *__restrict __timer, 12329: struct tm *__restrict __tp) noexcept (true); 12329: # 179 "/usr/include/time.h" 3 4 12329: extern char *asctime (const struct tm *__tp) noexcept (true); 12329: 12329: 12329: 12329: extern char *ctime (const time_t *__timer) noexcept (true); 12329: # 197 "/usr/include/time.h" 3 4 12329: extern char *asctime_r (const struct tm *__restrict __tp, 12329: char *__restrict __buf) noexcept (true); 12329: 12329: 12329: 12329: extern char *ctime_r (const time_t *__restrict __timer, 12329: char *__restrict __buf) noexcept (true); 12329: # 217 "/usr/include/time.h" 3 4 12329: extern char *__tzname[2]; 12329: extern int __daylight; 12329: extern long int __timezone; 12329: 12329: 12329: 12329: 12329: extern char *tzname[2]; 12329: 12329: 12329: 12329: extern void tzset (void) noexcept (true); 12329: 12329: 12329: 12329: extern int daylight; 12329: extern long int timezone; 12329: # 246 "/usr/include/time.h" 3 4 12329: extern time_t timegm (struct tm *__tp) noexcept (true); 12329: # 263 "/usr/include/time.h" 3 4 12329: extern time_t timelocal (struct tm *__tp) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int dysize (int __year) noexcept (true) __attribute__ ((__const__)); 12329: # 281 "/usr/include/time.h" 3 4 12329: extern int nanosleep (const struct timespec *__requested_time, 12329: struct timespec *__remaining); 12329: 12329: 12329: extern int clock_getres (clockid_t __clock_id, struct timespec *__res) noexcept (true); 12329: 12329: 12329: extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: # 323 "/usr/include/time.h" 3 4 12329: extern int clock_nanosleep (clockid_t __clock_id, int __flags, 12329: const struct timespec *__req, 12329: struct timespec *__rem); 12329: # 338 "/usr/include/time.h" 3 4 12329: extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int timer_create (clockid_t __clock_id, 12329: struct sigevent *__restrict __evp, 12329: timer_t *__restrict __timerid) noexcept (true); 12329: 12329: 12329: extern int timer_delete (timer_t __timerid) noexcept (true); 12329: 12329: 12329: 12329: extern int timer_settime (timer_t __timerid, int __flags, 12329: const struct itimerspec *__restrict __value, 12329: struct itimerspec *__restrict __ovalue) noexcept (true); 12329: 12329: 12329: extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) 12329: noexcept (true); 12329: # 376 "/usr/include/time.h" 3 4 12329: extern int timer_getoverrun (timer_t __timerid) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int timespec_get (struct timespec *__ts, int __base) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: # 399 "/usr/include/time.h" 3 4 12329: extern int timespec_getres (struct timespec *__ts, int __base) 12329: noexcept (true); 12329: # 425 "/usr/include/time.h" 3 4 12329: extern int getdate_err; 12329: # 434 "/usr/include/time.h" 3 4 12329: extern struct tm *getdate (const char *__string); 12329: # 448 "/usr/include/time.h" 3 4 12329: extern int getdate_r (const char *__restrict __string, 12329: struct tm *__restrict __resbufp); 12329: 12329: 12329: } 12329: # 24 "/usr/include/pthread.h" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/setjmp.h" 1 3 4 12329: # 30 "/usr/include/aarch64-linux-gnu/bits/setjmp.h" 3 4 12329: __extension__ typedef unsigned long long __jmp_buf [22]; 12329: # 28 "/usr/include/pthread.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4 12329: # 29 "/usr/include/pthread.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/types/struct___jmp_buf_tag.h" 1 3 4 12329: # 26 "/usr/include/aarch64-linux-gnu/bits/types/struct___jmp_buf_tag.h" 3 4 12329: struct __jmp_buf_tag 12329: { 12329: 12329: 12329: 12329: 12329: __jmp_buf __jmpbuf; 12329: int __mask_was_saved; 12329: __sigset_t __saved_mask; 12329: }; 12329: # 32 "/usr/include/pthread.h" 2 3 4 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/pthread_stack_min-dynamic.h" 1 3 4 12329: # 23 "/usr/include/aarch64-linux-gnu/bits/pthread_stack_min-dynamic.h" 3 4 12329: extern "C" { 12329: extern long int __sysconf (int __name) noexcept (true); 12329: } 12329: # 34 "/usr/include/pthread.h" 2 3 4 12329: 12329: 12329: 12329: enum 12329: { 12329: PTHREAD_CREATE_JOINABLE, 12329: 12329: PTHREAD_CREATE_DETACHED 12329: 12329: }; 12329: 12329: 12329: 12329: enum 12329: { 12329: PTHREAD_MUTEX_TIMED_NP, 12329: PTHREAD_MUTEX_RECURSIVE_NP, 12329: PTHREAD_MUTEX_ERRORCHECK_NP, 12329: PTHREAD_MUTEX_ADAPTIVE_NP 12329: 12329: , 12329: PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 12329: PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 12329: PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 12329: PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 12329: 12329: 12329: 12329: , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: enum 12329: { 12329: PTHREAD_MUTEX_STALLED, 12329: PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 12329: PTHREAD_MUTEX_ROBUST, 12329: PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: enum 12329: { 12329: PTHREAD_PRIO_NONE, 12329: PTHREAD_PRIO_INHERIT, 12329: PTHREAD_PRIO_PROTECT 12329: }; 12329: # 104 "/usr/include/pthread.h" 3 4 12329: enum 12329: { 12329: PTHREAD_RWLOCK_PREFER_READER_NP, 12329: PTHREAD_RWLOCK_PREFER_WRITER_NP, 12329: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 12329: PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 12329: }; 12329: # 124 "/usr/include/pthread.h" 3 4 12329: enum 12329: { 12329: PTHREAD_INHERIT_SCHED, 12329: 12329: PTHREAD_EXPLICIT_SCHED 12329: 12329: }; 12329: 12329: 12329: 12329: enum 12329: { 12329: PTHREAD_SCOPE_SYSTEM, 12329: 12329: PTHREAD_SCOPE_PROCESS 12329: 12329: }; 12329: 12329: 12329: 12329: enum 12329: { 12329: PTHREAD_PROCESS_PRIVATE, 12329: 12329: PTHREAD_PROCESS_SHARED 12329: 12329: }; 12329: # 159 "/usr/include/pthread.h" 3 4 12329: struct _pthread_cleanup_buffer 12329: { 12329: void (*__routine) (void *); 12329: void *__arg; 12329: int __canceltype; 12329: struct _pthread_cleanup_buffer *__prev; 12329: }; 12329: 12329: 12329: enum 12329: { 12329: PTHREAD_CANCEL_ENABLE, 12329: 12329: PTHREAD_CANCEL_DISABLE 12329: 12329: }; 12329: enum 12329: { 12329: PTHREAD_CANCEL_DEFERRED, 12329: 12329: PTHREAD_CANCEL_ASYNCHRONOUS 12329: 12329: }; 12329: # 197 "/usr/include/pthread.h" 3 4 12329: extern "C" { 12329: 12329: 12329: 12329: 12329: extern int pthread_create (pthread_t *__restrict __newthread, 12329: const pthread_attr_t *__restrict __attr, 12329: void *(*__start_routine) (void *), 12329: void *__restrict __arg) noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: 12329: 12329: 12329: 12329: 12329: extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_join (pthread_t __th, void **__thread_return); 12329: 12329: 12329: 12329: 12329: extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) noexcept (true); 12329: # 233 "/usr/include/pthread.h" 3 4 12329: extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, 12329: const struct timespec *__abstime); 12329: # 243 "/usr/include/pthread.h" 3 4 12329: extern int pthread_clockjoin_np (pthread_t __th, void **__thread_return, 12329: clockid_t __clockid, 12329: const struct timespec *__abstime); 12329: # 269 "/usr/include/pthread.h" 3 4 12329: extern int pthread_detach (pthread_t __th) noexcept (true); 12329: 12329: 12329: 12329: extern pthread_t pthread_self (void) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) 12329: noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_attr_init (pthread_attr_t *__attr) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_attr_destroy (pthread_attr_t *__attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, 12329: int *__detachstate) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, 12329: int __detachstate) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, 12329: size_t *__guardsize) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_attr_setguardsize (pthread_attr_t *__attr, 12329: size_t __guardsize) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, 12329: struct sched_param *__restrict __param) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, 12329: const struct sched_param *__restrict 12329: __param) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict 12329: __attr, int *__restrict __policy) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict 12329: __attr, int *__restrict __inherit) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, 12329: int __inherit) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, 12329: int *__restrict __scope) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict 12329: __attr, void **__restrict __stackaddr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, 12329: void *__stackaddr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); 12329: 12329: 12329: extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict 12329: __attr, size_t *__restrict __stacksize) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: extern int pthread_attr_setstacksize (pthread_attr_t *__attr, 12329: size_t __stacksize) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, 12329: void **__restrict __stackaddr, 12329: size_t *__restrict __stacksize) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2, 3))); 12329: 12329: 12329: 12329: 12329: extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, 12329: size_t __stacksize) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, 12329: size_t __cpusetsize, 12329: const cpu_set_t *__cpuset) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: 12329: 12329: 12329: extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, 12329: size_t __cpusetsize, 12329: cpu_set_t *__cpuset) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: 12329: 12329: extern int pthread_getattr_default_np (pthread_attr_t *__attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_attr_setsigmask_np (pthread_attr_t *__attr, 12329: const __sigset_t *sigmask); 12329: 12329: 12329: 12329: 12329: extern int pthread_attr_getsigmask_np (const pthread_attr_t *__attr, 12329: __sigset_t *sigmask); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_setattr_default_np (const pthread_attr_t *__attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_setschedparam (pthread_t __target_thread, int __policy, 12329: const struct sched_param *__param) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))); 12329: 12329: 12329: extern int pthread_getschedparam (pthread_t __target_thread, 12329: int *__restrict __policy, 12329: struct sched_param *__restrict __param) 12329: noexcept (true) __attribute__ ((__nonnull__ (2, 3))); 12329: 12329: 12329: extern int pthread_setschedprio (pthread_t __target_thread, int __prio) 12329: noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int pthread_getname_np (pthread_t __target_thread, char *__buf, 12329: size_t __buflen) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: extern int pthread_setname_np (pthread_t __target_thread, const char *__name) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_getconcurrency (void) noexcept (true); 12329: 12329: 12329: extern int pthread_setconcurrency (int __level) noexcept (true); 12329: 12329: 12329: 12329: extern int pthread_yield (void) noexcept (true); 12329: 12329: extern int pthread_yield (void) noexcept (true) __asm__ ("" "sched_yield") 12329: __attribute__ ((__deprecated__ ("pthread_yield is deprecated, use sched_yield instead"))) 12329: ; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, 12329: const cpu_set_t *__cpuset) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))); 12329: 12329: 12329: extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, 12329: cpu_set_t *__cpuset) 12329: noexcept (true) __attribute__ ((__nonnull__ (3))); 12329: # 509 "/usr/include/pthread.h" 3 4 12329: extern int pthread_once (pthread_once_t *__once_control, 12329: void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); 12329: # 521 "/usr/include/pthread.h" 3 4 12329: extern int pthread_setcancelstate (int __state, int *__oldstate); 12329: 12329: 12329: 12329: extern int pthread_setcanceltype (int __type, int *__oldtype); 12329: 12329: 12329: extern int pthread_cancel (pthread_t __th); 12329: 12329: 12329: 12329: 12329: extern void pthread_testcancel (void); 12329: 12329: 12329: 12329: 12329: struct __cancel_jmp_buf_tag 12329: { 12329: __jmp_buf __cancel_jmp_buf; 12329: int __mask_was_saved; 12329: }; 12329: 12329: typedef struct 12329: { 12329: struct __cancel_jmp_buf_tag __cancel_jmp_buf[1]; 12329: void *__pad[4]; 12329: } __pthread_unwind_buf_t __attribute__ ((__aligned__)); 12329: # 557 "/usr/include/pthread.h" 3 4 12329: struct __pthread_cleanup_frame 12329: { 12329: void (*__cancel_routine) (void *); 12329: void *__cancel_arg; 12329: int __do_it; 12329: int __cancel_type; 12329: }; 12329: 12329: 12329: 12329: 12329: class __pthread_cleanup_class 12329: { 12329: void (*__cancel_routine) (void *); 12329: void *__cancel_arg; 12329: int __do_it; 12329: int __cancel_type; 12329: 12329: public: 12329: __pthread_cleanup_class (void (*__fct) (void *), void *__arg) 12329: : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } 12329: ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } 12329: void __setdoit (int __newval) { __do_it = __newval; } 12329: void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, 12329: &__cancel_type); } 12329: void __restore () const { pthread_setcanceltype (__cancel_type, 0); } 12329: }; 12329: # 766 "/usr/include/pthread.h" 3 4 12329: extern int __sigsetjmp_cancel (struct __cancel_jmp_buf_tag __env[1], int __savemask) noexcept (true) __asm__ ("" "__sigsetjmp") 12329: 12329: 12329: __attribute__ ((__returns_twice__)); 12329: # 781 "/usr/include/pthread.h" 3 4 12329: extern int pthread_mutex_init (pthread_mutex_t *__mutex, 12329: const pthread_mutexattr_t *__mutexattr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_mutex_lock (pthread_mutex_t *__mutex) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, 12329: const struct timespec *__restrict 12329: __abstime) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: # 817 "/usr/include/pthread.h" 3 4 12329: extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict __mutex, 12329: clockid_t __clockid, 12329: const struct timespec *__restrict 12329: __abstime) noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: # 835 "/usr/include/pthread.h" 3 4 12329: extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern int pthread_mutex_getprioceiling (const pthread_mutex_t * 12329: __restrict __mutex, 12329: int *__restrict __prioceiling) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, 12329: int __prioceiling, 12329: int *__restrict __old_ceiling) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: 12329: 12329: 12329: 12329: extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_mutex_consistent_np (pthread_mutex_t *) noexcept (true) __asm__ ("" "pthread_mutex_consistent") 12329: __attribute__ ((__nonnull__ (1))) 12329: __attribute__ ((__deprecated__ ("pthread_mutex_consistent_np is deprecated, use pthread_mutex_consistent"))) 12329: ; 12329: # 874 "/usr/include/pthread.h" 3 4 12329: extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * 12329: __restrict __attr, 12329: int *__restrict __pshared) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, 12329: int __pshared) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict 12329: __attr, int *__restrict __kind) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: 12329: extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * 12329: __restrict __attr, 12329: int *__restrict __protocol) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: 12329: extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, 12329: int __protocol) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * 12329: __restrict __attr, 12329: int *__restrict __prioceiling) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, 12329: int __prioceiling) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, 12329: int *__robustness) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_mutexattr_getrobust_np (pthread_mutexattr_t *, int *) noexcept (true) __asm__ ("" "pthread_mutexattr_getrobust") 12329: 12329: __attribute__ ((__nonnull__ (1))) 12329: __attribute__ ((__deprecated__ ("pthread_mutexattr_getrobust_np is deprecated, use pthread_mutexattr_getrobust"))) 12329: ; 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, 12329: int __robustness) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *, int) noexcept (true) __asm__ ("" "pthread_mutexattr_setrobust") 12329: 12329: __attribute__ ((__nonnull__ (1))) 12329: __attribute__ ((__deprecated__ ("pthread_mutexattr_setrobust_np is deprecated, use pthread_mutexattr_setrobust"))) 12329: ; 12329: # 967 "/usr/include/pthread.h" 3 4 12329: extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, 12329: const pthread_rwlockattr_t *__restrict 12329: __attr) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, 12329: const struct timespec *__restrict 12329: __abstime) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: # 1004 "/usr/include/pthread.h" 3 4 12329: extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict __rwlock, 12329: clockid_t __clockid, 12329: const struct timespec *__restrict 12329: __abstime) noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: # 1023 "/usr/include/pthread.h" 3 4 12329: extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, 12329: const struct timespec *__restrict 12329: __abstime) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: # 1051 "/usr/include/pthread.h" 3 4 12329: extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict __rwlock, 12329: clockid_t __clockid, 12329: const struct timespec *__restrict 12329: __abstime) noexcept (true) __attribute__ ((__nonnull__ (1, 3))); 12329: # 1071 "/usr/include/pthread.h" 3 4 12329: extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * 12329: __restrict __attr, 12329: int *__restrict __pshared) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, 12329: int __pshared) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * 12329: __restrict __attr, 12329: int *__restrict __pref) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, 12329: int __pref) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_cond_init (pthread_cond_t *__restrict __cond, 12329: const pthread_condattr_t *__restrict __cond_attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_cond_destroy (pthread_cond_t *__cond) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_cond_signal (pthread_cond_t *__cond) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_cond_broadcast (pthread_cond_t *__cond) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, 12329: pthread_mutex_t *__restrict __mutex) 12329: __attribute__ ((__nonnull__ (1, 2))); 12329: # 1145 "/usr/include/pthread.h" 3 4 12329: extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, 12329: pthread_mutex_t *__restrict __mutex, 12329: const struct timespec *__restrict __abstime) 12329: __attribute__ ((__nonnull__ (1, 2, 3))); 12329: # 1171 "/usr/include/pthread.h" 3 4 12329: extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond, 12329: pthread_mutex_t *__restrict __mutex, 12329: __clockid_t __clock_id, 12329: const struct timespec *__restrict __abstime) 12329: __attribute__ ((__nonnull__ (1, 2, 4))); 12329: # 1194 "/usr/include/pthread.h" 3 4 12329: extern int pthread_condattr_init (pthread_condattr_t *__attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_condattr_destroy (pthread_condattr_t *__attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_condattr_getpshared (const pthread_condattr_t * 12329: __restrict __attr, 12329: int *__restrict __pshared) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, 12329: int __pshared) noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern int pthread_condattr_getclock (const pthread_condattr_t * 12329: __restrict __attr, 12329: __clockid_t *__restrict __clock_id) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_condattr_setclock (pthread_condattr_t *__attr, 12329: __clockid_t __clock_id) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: # 1230 "/usr/include/pthread.h" 3 4 12329: extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_spin_destroy (pthread_spinlock_t *__lock) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_spin_lock (pthread_spinlock_t *__lock) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_spin_trylock (pthread_spinlock_t *__lock) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_spin_unlock (pthread_spinlock_t *__lock) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 12329: const pthread_barrierattr_t *__restrict 12329: __attr, unsigned int __count) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: 12329: extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * 12329: __restrict __attr, 12329: int *__restrict __pshared) 12329: noexcept (true) __attribute__ ((__nonnull__ (1, 2))); 12329: 12329: 12329: extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, 12329: int __pshared) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: # 1297 "/usr/include/pthread.h" 3 4 12329: extern int pthread_key_create (pthread_key_t *__key, 12329: void (*__destr_function) (void *)) 12329: noexcept (true) __attribute__ ((__nonnull__ (1))); 12329: 12329: 12329: extern int pthread_key_delete (pthread_key_t __key) noexcept (true); 12329: 12329: 12329: extern void *pthread_getspecific (pthread_key_t __key) noexcept (true); 12329: 12329: 12329: extern int pthread_setspecific (pthread_key_t __key, 12329: const void *__pointer) 12329: noexcept (true) __attribute__ ((__access__ (__none__, 2))); 12329: 12329: 12329: 12329: 12329: extern int pthread_getcpuclockid (pthread_t __thread_id, 12329: __clockid_t *__clock_id) 12329: noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: # 1332 "/usr/include/pthread.h" 3 4 12329: extern int pthread_atfork (void (*__prepare) (void), 12329: void (*__parent) (void), 12329: void (*__child) (void)) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern __inline __attribute__ ((__gnu_inline__)) int 12329: __attribute__ ((__leaf__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) noexcept (true) 12329: { 12329: return __thread1 == __thread2; 12329: } 12329: 12329: 12329: } 12329: # 36 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr-default.h" 2 3 12329: # 47 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr-default.h" 3 12329: typedef pthread_t __gthread_t; 12329: typedef pthread_key_t __gthread_key_t; 12329: typedef pthread_once_t __gthread_once_t; 12329: typedef pthread_mutex_t __gthread_mutex_t; 12329: typedef pthread_mutex_t __gthread_recursive_mutex_t; 12329: typedef pthread_cond_t __gthread_cond_t; 12329: typedef struct timespec __gthread_time_t; 12329: # 102 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr-default.h" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 299 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr-default.h" 3 12329: static inline int 12329: __gthread_active_p (void) 12329: { 12329: return 1; 12329: } 12329: # 659 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr-default.h" 3 12329: static inline int 12329: __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), 12329: void *__args) 12329: { 12329: return pthread_create (__threadid, __null, __func, __args); 12329: } 12329: 12329: static inline int 12329: __gthread_join (__gthread_t __threadid, void **__value_ptr) 12329: { 12329: return pthread_join (__threadid, __value_ptr); 12329: } 12329: 12329: static inline int 12329: __gthread_detach (__gthread_t __threadid) 12329: { 12329: return pthread_detach (__threadid); 12329: } 12329: 12329: static inline int 12329: __gthread_equal (__gthread_t __t1, __gthread_t __t2) 12329: { 12329: return pthread_equal (__t1, __t2); 12329: } 12329: 12329: static inline __gthread_t 12329: __gthread_self (void) 12329: { 12329: return pthread_self (); 12329: } 12329: 12329: static inline int 12329: __gthread_yield (void) 12329: { 12329: return sched_yield (); 12329: } 12329: 12329: static inline int 12329: __gthread_once (__gthread_once_t *__once, void (*__func) (void)) 12329: { 12329: if (__gthread_active_p ()) 12329: return pthread_once (__once, __func); 12329: else 12329: return -1; 12329: } 12329: 12329: static inline int 12329: __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) 12329: { 12329: return pthread_key_create (__key, __dtor); 12329: } 12329: 12329: static inline int 12329: __gthread_key_delete (__gthread_key_t __key) 12329: { 12329: return pthread_key_delete (__key); 12329: } 12329: 12329: static inline void * 12329: __gthread_getspecific (__gthread_key_t __key) 12329: { 12329: return pthread_getspecific (__key); 12329: } 12329: 12329: static inline int 12329: __gthread_setspecific (__gthread_key_t __key, const void *__ptr) 12329: { 12329: return pthread_setspecific (__key, __ptr); 12329: } 12329: 12329: static inline void 12329: __gthread_mutex_init_function (__gthread_mutex_t *__mutex) 12329: { 12329: if (__gthread_active_p ()) 12329: pthread_mutex_init (__mutex, __null); 12329: } 12329: 12329: static inline int 12329: __gthread_mutex_destroy (__gthread_mutex_t *__mutex) 12329: { 12329: if (__gthread_active_p ()) 12329: return pthread_mutex_destroy (__mutex); 12329: else 12329: return 0; 12329: } 12329: 12329: static inline int 12329: __gthread_mutex_lock (__gthread_mutex_t *__mutex) 12329: { 12329: if (__gthread_active_p ()) 12329: return pthread_mutex_lock (__mutex); 12329: else 12329: return 0; 12329: } 12329: 12329: static inline int 12329: __gthread_mutex_trylock (__gthread_mutex_t *__mutex) 12329: { 12329: if (__gthread_active_p ()) 12329: return pthread_mutex_trylock (__mutex); 12329: else 12329: return 0; 12329: } 12329: 12329: 12329: static inline int 12329: __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, 12329: const __gthread_time_t *__abs_timeout) 12329: { 12329: if (__gthread_active_p ()) 12329: return pthread_mutex_timedlock (__mutex, __abs_timeout); 12329: else 12329: return 0; 12329: } 12329: 12329: 12329: static inline int 12329: __gthread_mutex_unlock (__gthread_mutex_t *__mutex) 12329: { 12329: if (__gthread_active_p ()) 12329: return pthread_mutex_unlock (__mutex); 12329: else 12329: return 0; 12329: } 12329: # 808 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr-default.h" 3 12329: static inline int 12329: __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) 12329: { 12329: return __gthread_mutex_lock (__mutex); 12329: } 12329: 12329: static inline int 12329: __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) 12329: { 12329: return __gthread_mutex_trylock (__mutex); 12329: } 12329: 12329: 12329: static inline int 12329: __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, 12329: const __gthread_time_t *__abs_timeout) 12329: { 12329: return __gthread_mutex_timedlock (__mutex, __abs_timeout); 12329: } 12329: 12329: 12329: static inline int 12329: __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) 12329: { 12329: return __gthread_mutex_unlock (__mutex); 12329: } 12329: 12329: static inline int 12329: __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) 12329: { 12329: return __gthread_mutex_destroy (__mutex); 12329: } 12329: # 850 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr-default.h" 3 12329: static inline int 12329: __gthread_cond_broadcast (__gthread_cond_t *__cond) 12329: { 12329: return pthread_cond_broadcast (__cond); 12329: } 12329: 12329: static inline int 12329: __gthread_cond_signal (__gthread_cond_t *__cond) 12329: { 12329: return pthread_cond_signal (__cond); 12329: } 12329: 12329: static inline int 12329: __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) 12329: { 12329: return pthread_cond_wait (__cond, __mutex); 12329: } 12329: 12329: static inline int 12329: __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, 12329: const __gthread_time_t *__abs_timeout) 12329: { 12329: return pthread_cond_timedwait (__cond, __mutex, __abs_timeout); 12329: } 12329: 12329: static inline int 12329: __gthread_cond_wait_recursive (__gthread_cond_t *__cond, 12329: __gthread_recursive_mutex_t *__mutex) 12329: { 12329: return __gthread_cond_wait (__cond, __mutex); 12329: } 12329: 12329: static inline int 12329: __gthread_cond_destroy (__gthread_cond_t* __cond) 12329: { 12329: return pthread_cond_destroy (__cond); 12329: } 12329: # 149 "/usr/include/aarch64-linux-gnu/c++/12/bits/gthr.h" 2 3 12329: 12329: 12329: #pragma GCC visibility pop 12329: # 36 "/usr/include/c++/12/ext/atomicity.h" 2 3 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/atomic_word.h" 1 3 12329: # 32 "/usr/include/aarch64-linux-gnu/c++/12/bits/atomic_word.h" 3 12329: typedef int _Atomic_word; 12329: # 37 "/usr/include/c++/12/ext/atomicity.h" 2 3 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/sys/single_threaded.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/sys/single_threaded.h" 3 4 12329: extern "C" { 12329: 12329: 12329: 12329: 12329: extern char __libc_single_threaded; 12329: 12329: } 12329: # 39 "/usr/include/c++/12/ext/atomicity.h" 2 3 12329: 12329: 12329: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: __attribute__((__always_inline__)) 12329: inline bool 12329: __is_single_threaded() noexcept 12329: { 12329: 12329: 12329: 12329: return ::__libc_single_threaded; 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: inline _Atomic_word 12329: __attribute__((__always_inline__)) 12329: __exchange_and_add(volatile _Atomic_word* __mem, int __val) 12329: { return __atomic_fetch_add(__mem, __val, 4); } 12329: 12329: inline void 12329: __attribute__((__always_inline__)) 12329: __atomic_add(volatile _Atomic_word* __mem, int __val) 12329: { __atomic_fetch_add(__mem, __val, 4); } 12329: # 80 "/usr/include/c++/12/ext/atomicity.h" 3 12329: inline _Atomic_word 12329: __attribute__((__always_inline__)) 12329: __exchange_and_add_single(_Atomic_word* __mem, int __val) 12329: { 12329: _Atomic_word __result = *__mem; 12329: *__mem += __val; 12329: return __result; 12329: } 12329: 12329: inline void 12329: __attribute__((__always_inline__)) 12329: __atomic_add_single(_Atomic_word* __mem, int __val) 12329: { *__mem += __val; } 12329: 12329: inline _Atomic_word 12329: __attribute__ ((__always_inline__)) 12329: __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) 12329: { 12329: if (__is_single_threaded()) 12329: return __exchange_and_add_single(__mem, __val); 12329: else 12329: return __exchange_and_add(__mem, __val); 12329: } 12329: 12329: inline void 12329: __attribute__ ((__always_inline__)) 12329: __atomic_add_dispatch(_Atomic_word* __mem, int __val) 12329: { 12329: if (__is_single_threaded()) 12329: __atomic_add_single(__mem, __val); 12329: else 12329: __atomic_add(__mem, __val); 12329: } 12329: 12329: 12329: } 12329: # 62 "/usr/include/c++/12/bits/shared_ptr_base.h" 2 3 12329: # 1 "/usr/include/c++/12/ext/concurrence.h" 1 3 12329: # 32 "/usr/include/c++/12/ext/concurrence.h" 3 12329: 12329: # 33 "/usr/include/c++/12/ext/concurrence.h" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: enum _Lock_policy { _S_single, _S_mutex, _S_atomic }; 12329: 12329: 12329: 12329: static const _Lock_policy __default_lock_policy = 12329: 12329: 12329: 12329: _S_atomic; 12329: 12329: 12329: 12329: 12329: 12329: 12329: class __concurrence_lock_error : public std::exception 12329: { 12329: public: 12329: virtual char const* 12329: what() const throw() 12329: { return "__gnu_cxx::__concurrence_lock_error"; } 12329: }; 12329: 12329: class __concurrence_unlock_error : public std::exception 12329: { 12329: public: 12329: virtual char const* 12329: what() const throw() 12329: { return "__gnu_cxx::__concurrence_unlock_error"; } 12329: }; 12329: 12329: class __concurrence_broadcast_error : public std::exception 12329: { 12329: public: 12329: virtual char const* 12329: what() const throw() 12329: { return "__gnu_cxx::__concurrence_broadcast_error"; } 12329: }; 12329: 12329: class __concurrence_wait_error : public std::exception 12329: { 12329: public: 12329: virtual char const* 12329: what() const throw() 12329: { return "__gnu_cxx::__concurrence_wait_error"; } 12329: }; 12329: 12329: 12329: inline void 12329: __throw_concurrence_lock_error() 12329: { (throw (__concurrence_lock_error())); } 12329: 12329: inline void 12329: __throw_concurrence_unlock_error() 12329: { (throw (__concurrence_unlock_error())); } 12329: 12329: 12329: inline void 12329: __throw_concurrence_broadcast_error() 12329: { (throw (__concurrence_broadcast_error())); } 12329: 12329: inline void 12329: __throw_concurrence_wait_error() 12329: { (throw (__concurrence_wait_error())); } 12329: 12329: 12329: class __mutex 12329: { 12329: private: 12329: 12329: __gthread_mutex_t _M_mutex = { { 0, 0, 0, 0, PTHREAD_MUTEX_TIMED_NP, 0, { 0, 0 } } }; 12329: 12329: 12329: 12329: 12329: __mutex(const __mutex&); 12329: __mutex& operator=(const __mutex&); 12329: 12329: public: 12329: __mutex() 12329: { 12329: 12329: 12329: 12329: 12329: } 12329: # 144 "/usr/include/c++/12/ext/concurrence.h" 3 12329: void lock() 12329: { 12329: 12329: if (__gthread_active_p()) 12329: { 12329: if (__gthread_mutex_lock(&_M_mutex) != 0) 12329: __throw_concurrence_lock_error(); 12329: } 12329: 12329: } 12329: 12329: void unlock() 12329: { 12329: 12329: if (__gthread_active_p()) 12329: { 12329: if (__gthread_mutex_unlock(&_M_mutex) != 0) 12329: __throw_concurrence_unlock_error(); 12329: } 12329: 12329: } 12329: 12329: __gthread_mutex_t* gthread_mutex(void) 12329: { return &_M_mutex; } 12329: }; 12329: 12329: class __recursive_mutex 12329: { 12329: private: 12329: 12329: __gthread_recursive_mutex_t _M_mutex = { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0, 0 } } }; 12329: 12329: 12329: 12329: 12329: __recursive_mutex(const __recursive_mutex&); 12329: __recursive_mutex& operator=(const __recursive_mutex&); 12329: 12329: public: 12329: __recursive_mutex() 12329: { 12329: 12329: 12329: 12329: 12329: } 12329: # 199 "/usr/include/c++/12/ext/concurrence.h" 3 12329: void lock() 12329: { 12329: 12329: if (__gthread_active_p()) 12329: { 12329: if (__gthread_recursive_mutex_lock(&_M_mutex) != 0) 12329: __throw_concurrence_lock_error(); 12329: } 12329: 12329: } 12329: 12329: void unlock() 12329: { 12329: 12329: if (__gthread_active_p()) 12329: { 12329: if (__gthread_recursive_mutex_unlock(&_M_mutex) != 0) 12329: __throw_concurrence_unlock_error(); 12329: } 12329: 12329: } 12329: 12329: __gthread_recursive_mutex_t* gthread_recursive_mutex(void) 12329: { return &_M_mutex; } 12329: }; 12329: 12329: 12329: 12329: 12329: class __scoped_lock 12329: { 12329: public: 12329: typedef __mutex __mutex_type; 12329: 12329: private: 12329: __mutex_type& _M_device; 12329: 12329: __scoped_lock(const __scoped_lock&); 12329: __scoped_lock& operator=(const __scoped_lock&); 12329: 12329: public: 12329: explicit __scoped_lock(__mutex_type& __name) : _M_device(__name) 12329: { _M_device.lock(); } 12329: 12329: ~__scoped_lock() throw() 12329: { _M_device.unlock(); } 12329: }; 12329: 12329: 12329: class __cond 12329: { 12329: private: 12329: 12329: __gthread_cond_t _M_cond = { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } }; 12329: 12329: 12329: 12329: 12329: __cond(const __cond&); 12329: __cond& operator=(const __cond&); 12329: 12329: public: 12329: __cond() 12329: { 12329: 12329: 12329: 12329: 12329: } 12329: # 277 "/usr/include/c++/12/ext/concurrence.h" 3 12329: void broadcast() 12329: { 12329: 12329: if (__gthread_active_p()) 12329: { 12329: if (__gthread_cond_broadcast(&_M_cond) != 0) 12329: __throw_concurrence_broadcast_error(); 12329: } 12329: 12329: } 12329: 12329: void wait(__mutex *mutex) 12329: { 12329: 12329: { 12329: if (__gthread_cond_wait(&_M_cond, mutex->gthread_mutex()) != 0) 12329: __throw_concurrence_wait_error(); 12329: } 12329: 12329: } 12329: 12329: void wait_recursive(__recursive_mutex *mutex) 12329: { 12329: 12329: { 12329: if (__gthread_cond_wait_recursive(&_M_cond, 12329: mutex->gthread_recursive_mutex()) 12329: != 0) 12329: __throw_concurrence_wait_error(); 12329: } 12329: 12329: } 12329: }; 12329: 12329: 12329: 12329: } 12329: # 63 "/usr/include/c++/12/bits/shared_ptr_base.h" 2 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: template class auto_ptr; 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: 12329: 12329: 12329: 12329: class bad_weak_ptr : public std::exception 12329: { 12329: public: 12329: virtual char const* what() const noexcept; 12329: 12329: virtual ~bad_weak_ptr() noexcept; 12329: }; 12329: 12329: 12329: inline void 12329: __throw_bad_weak_ptr() 12329: { (throw (bad_weak_ptr())); } 12329: 12329: using __gnu_cxx::_Lock_policy; 12329: using __gnu_cxx::__default_lock_policy; 12329: using __gnu_cxx::_S_single; 12329: using __gnu_cxx::_S_mutex; 12329: using __gnu_cxx::_S_atomic; 12329: 12329: 12329: template<_Lock_policy _Lp> 12329: class _Mutex_base 12329: { 12329: protected: 12329: 12329: enum { _S_need_barriers = 0 }; 12329: }; 12329: 12329: template<> 12329: class _Mutex_base<_S_mutex> 12329: : public __gnu_cxx::__mutex 12329: { 12329: protected: 12329: 12329: 12329: 12329: enum { _S_need_barriers = 1 }; 12329: }; 12329: 12329: template<_Lock_policy _Lp = __default_lock_policy> 12329: class _Sp_counted_base 12329: : public _Mutex_base<_Lp> 12329: { 12329: public: 12329: _Sp_counted_base() noexcept 12329: : _M_use_count(1), _M_weak_count(1) { } 12329: 12329: virtual 12329: ~_Sp_counted_base() noexcept 12329: { } 12329: 12329: 12329: 12329: virtual void 12329: _M_dispose() noexcept = 0; 12329: 12329: 12329: virtual void 12329: _M_destroy() noexcept 12329: { delete this; } 12329: 12329: virtual void* 12329: _M_get_deleter(const std::type_info&) noexcept = 0; 12329: 12329: 12329: void 12329: _M_add_ref_copy() 12329: { __gnu_cxx::__atomic_add_dispatch(&_M_use_count, 1); } 12329: 12329: 12329: void 12329: _M_add_ref_lock() 12329: { 12329: if (!_M_add_ref_lock_nothrow()) 12329: __throw_bad_weak_ptr(); 12329: } 12329: 12329: 12329: bool 12329: _M_add_ref_lock_nothrow() noexcept; 12329: 12329: 12329: void 12329: _M_release() noexcept; 12329: 12329: 12329: void 12329: _M_release_last_use() noexcept 12329: { 12329: ; 12329: _M_dispose(); 12329: 12329: 12329: 12329: 12329: if (_Mutex_base<_Lp>::_S_need_barriers) 12329: { 12329: __atomic_thread_fence (4); 12329: } 12329: 12329: 12329: ; 12329: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, 12329: -1) == 1) 12329: { 12329: ; 12329: _M_destroy(); 12329: } 12329: } 12329: 12329: 12329: __attribute__((__noinline__)) 12329: void 12329: _M_release_last_use_cold() noexcept 12329: { _M_release_last_use(); } 12329: 12329: 12329: void 12329: _M_weak_add_ref() noexcept 12329: { __gnu_cxx::__atomic_add_dispatch(&_M_weak_count, 1); } 12329: 12329: 12329: void 12329: _M_weak_release() noexcept 12329: { 12329: 12329: ; 12329: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, -1) == 1) 12329: { 12329: ; 12329: if (_Mutex_base<_Lp>::_S_need_barriers) 12329: { 12329: 12329: 12329: __atomic_thread_fence (4); 12329: } 12329: _M_destroy(); 12329: } 12329: } 12329: 12329: long 12329: _M_get_use_count() const noexcept 12329: { 12329: 12329: 12329: return __atomic_load_n(&_M_use_count, 0); 12329: } 12329: 12329: private: 12329: _Sp_counted_base(_Sp_counted_base const&) = delete; 12329: _Sp_counted_base& operator=(_Sp_counted_base const&) = delete; 12329: 12329: _Atomic_word _M_use_count; 12329: _Atomic_word _M_weak_count; 12329: }; 12329: 12329: template<> 12329: inline bool 12329: _Sp_counted_base<_S_single>:: 12329: _M_add_ref_lock_nothrow() noexcept 12329: { 12329: if (_M_use_count == 0) 12329: return false; 12329: ++_M_use_count; 12329: return true; 12329: } 12329: 12329: template<> 12329: inline bool 12329: _Sp_counted_base<_S_mutex>:: 12329: _M_add_ref_lock_nothrow() noexcept 12329: { 12329: __gnu_cxx::__scoped_lock sentry(*this); 12329: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 12329: { 12329: _M_use_count = 0; 12329: return false; 12329: } 12329: return true; 12329: } 12329: 12329: template<> 12329: inline bool 12329: _Sp_counted_base<_S_atomic>:: 12329: _M_add_ref_lock_nothrow() noexcept 12329: { 12329: 12329: _Atomic_word __count = _M_get_use_count(); 12329: do 12329: { 12329: if (__count == 0) 12329: return false; 12329: 12329: 12329: } 12329: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 12329: true, 4, 12329: 0)); 12329: return true; 12329: } 12329: 12329: template<> 12329: inline void 12329: _Sp_counted_base<_S_single>::_M_add_ref_copy() 12329: { ++_M_use_count; } 12329: 12329: template<> 12329: inline void 12329: _Sp_counted_base<_S_single>::_M_release() noexcept 12329: { 12329: if (--_M_use_count == 0) 12329: { 12329: _M_dispose(); 12329: if (--_M_weak_count == 0) 12329: _M_destroy(); 12329: } 12329: } 12329: 12329: template<> 12329: inline void 12329: _Sp_counted_base<_S_mutex>::_M_release() noexcept 12329: { 12329: 12329: ; 12329: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1) 12329: { 12329: _M_release_last_use(); 12329: } 12329: } 12329: 12329: template<> 12329: inline void 12329: _Sp_counted_base<_S_atomic>::_M_release() noexcept 12329: { 12329: ; 12329: 12329: constexpr bool __lock_free 12329: = __atomic_always_lock_free(sizeof(long long), 0) 12329: && __atomic_always_lock_free(sizeof(_Atomic_word), 0); 12329: constexpr bool __double_word 12329: = sizeof(long long) == 2 * sizeof(_Atomic_word); 12329: 12329: 12329: constexpr bool __aligned = __alignof(long long) <= alignof(void*); 12329: if (__lock_free && __double_word && __aligned) 12329: { 12329: constexpr int __wordbits = 8 * sizeof(_Atomic_word); 12329: constexpr int __shiftbits = __double_word ? __wordbits : 0; 12329: constexpr long long __unique_ref = 1LL + (1LL << __shiftbits); 12329: auto __both_counts = reinterpret_cast(&_M_use_count); 12329: 12329: ; 12329: if (__atomic_load_n(__both_counts, 2) == __unique_ref) 12329: { 12329: 12329: 12329: 12329: 12329: _M_weak_count = _M_use_count = 0; 12329: ; 12329: ; 12329: _M_dispose(); 12329: _M_destroy(); 12329: return; 12329: } 12329: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1) 12329: [[__unlikely__]] 12329: { 12329: _M_release_last_use_cold(); 12329: return; 12329: } 12329: } 12329: else 12329: 12329: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1) 12329: { 12329: _M_release_last_use(); 12329: } 12329: } 12329: 12329: template<> 12329: inline void 12329: _Sp_counted_base<_S_single>::_M_weak_add_ref() noexcept 12329: { ++_M_weak_count; } 12329: 12329: template<> 12329: inline void 12329: _Sp_counted_base<_S_single>::_M_weak_release() noexcept 12329: { 12329: if (--_M_weak_count == 0) 12329: _M_destroy(); 12329: } 12329: 12329: template<> 12329: inline long 12329: _Sp_counted_base<_S_single>::_M_get_use_count() const noexcept 12329: { return _M_use_count; } 12329: 12329: 12329: 12329: template 12329: class __shared_ptr; 12329: 12329: template 12329: class __weak_ptr; 12329: 12329: template 12329: class __enable_shared_from_this; 12329: 12329: template 12329: class shared_ptr; 12329: 12329: template 12329: class weak_ptr; 12329: 12329: template 12329: struct owner_less; 12329: 12329: template 12329: class enable_shared_from_this; 12329: 12329: template<_Lock_policy _Lp = __default_lock_policy> 12329: class __weak_count; 12329: 12329: template<_Lock_policy _Lp = __default_lock_policy> 12329: class __shared_count; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class _Sp_counted_ptr final : public _Sp_counted_base<_Lp> 12329: { 12329: public: 12329: explicit 12329: _Sp_counted_ptr(_Ptr __p) noexcept 12329: : _M_ptr(__p) { } 12329: 12329: virtual void 12329: _M_dispose() noexcept 12329: { delete _M_ptr; } 12329: 12329: virtual void 12329: _M_destroy() noexcept 12329: { delete this; } 12329: 12329: virtual void* 12329: _M_get_deleter(const std::type_info&) noexcept 12329: { return nullptr; } 12329: 12329: _Sp_counted_ptr(const _Sp_counted_ptr&) = delete; 12329: _Sp_counted_ptr& operator=(const _Sp_counted_ptr&) = delete; 12329: 12329: private: 12329: _Ptr _M_ptr; 12329: }; 12329: 12329: template<> 12329: inline void 12329: _Sp_counted_ptr::_M_dispose() noexcept { } 12329: 12329: template<> 12329: inline void 12329: _Sp_counted_ptr::_M_dispose() noexcept { } 12329: 12329: template<> 12329: inline void 12329: _Sp_counted_ptr::_M_dispose() noexcept { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct _Sp_ebo_helper; 12329: 12329: 12329: template 12329: struct _Sp_ebo_helper<_Nm, _Tp, true> : private _Tp 12329: { 12329: explicit _Sp_ebo_helper(const _Tp& __tp) : _Tp(__tp) { } 12329: explicit _Sp_ebo_helper(_Tp&& __tp) : _Tp(std::move(__tp)) { } 12329: 12329: static _Tp& 12329: _S_get(_Sp_ebo_helper& __eboh) { return static_cast<_Tp&>(__eboh); } 12329: }; 12329: 12329: 12329: template 12329: struct _Sp_ebo_helper<_Nm, _Tp, false> 12329: { 12329: explicit _Sp_ebo_helper(const _Tp& __tp) : _M_tp(__tp) { } 12329: explicit _Sp_ebo_helper(_Tp&& __tp) : _M_tp(std::move(__tp)) { } 12329: 12329: static _Tp& 12329: _S_get(_Sp_ebo_helper& __eboh) 12329: { return __eboh._M_tp; } 12329: 12329: private: 12329: _Tp _M_tp; 12329: }; 12329: 12329: 12329: template 12329: class _Sp_counted_deleter final : public _Sp_counted_base<_Lp> 12329: { 12329: class _Impl : _Sp_ebo_helper<0, _Deleter>, _Sp_ebo_helper<1, _Alloc> 12329: { 12329: typedef _Sp_ebo_helper<0, _Deleter> _Del_base; 12329: typedef _Sp_ebo_helper<1, _Alloc> _Alloc_base; 12329: 12329: public: 12329: _Impl(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept 12329: : _Del_base(std::move(__d)), _Alloc_base(__a), _M_ptr(__p) 12329: { } 12329: 12329: _Deleter& _M_del() noexcept { return _Del_base::_S_get(*this); } 12329: _Alloc& _M_alloc() noexcept { return _Alloc_base::_S_get(*this); } 12329: 12329: _Ptr _M_ptr; 12329: }; 12329: 12329: public: 12329: using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_deleter>; 12329: 12329: 12329: _Sp_counted_deleter(_Ptr __p, _Deleter __d) noexcept 12329: : _M_impl(__p, std::move(__d), _Alloc()) { } 12329: 12329: 12329: _Sp_counted_deleter(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept 12329: : _M_impl(__p, std::move(__d), __a) { } 12329: 12329: ~_Sp_counted_deleter() noexcept { } 12329: 12329: virtual void 12329: _M_dispose() noexcept 12329: { _M_impl._M_del()(_M_impl._M_ptr); } 12329: 12329: virtual void 12329: _M_destroy() noexcept 12329: { 12329: __allocator_type __a(_M_impl._M_alloc()); 12329: __allocated_ptr<__allocator_type> __guard_ptr{ __a, this }; 12329: this->~_Sp_counted_deleter(); 12329: } 12329: 12329: virtual void* 12329: _M_get_deleter(const type_info& __ti [[__gnu__::__unused__]]) noexcept 12329: { 12329: 12329: 12329: 12329: return __ti == typeid(_Deleter) 12329: ? std::__addressof(_M_impl._M_del()) 12329: : nullptr; 12329: 12329: 12329: 12329: } 12329: 12329: private: 12329: _Impl _M_impl; 12329: }; 12329: 12329: 12329: 12329: struct _Sp_make_shared_tag 12329: { 12329: private: 12329: template 12329: friend class _Sp_counted_ptr_inplace; 12329: 12329: static const type_info& 12329: _S_ti() noexcept __attribute__ ((__visibility__ ("default"))) 12329: { 12329: alignas(type_info) static constexpr char __tag[sizeof(type_info)] = { }; 12329: return reinterpret_cast(__tag); 12329: } 12329: 12329: static bool _S_eq(const type_info&) noexcept; 12329: }; 12329: 12329: template 12329: struct _Sp_alloc_shared_tag 12329: { 12329: const _Alloc& _M_a; 12329: }; 12329: 12329: template 12329: class _Sp_counted_ptr_inplace final : public _Sp_counted_base<_Lp> 12329: { 12329: class _Impl : _Sp_ebo_helper<0, _Alloc> 12329: { 12329: typedef _Sp_ebo_helper<0, _Alloc> _A_base; 12329: 12329: public: 12329: explicit _Impl(_Alloc __a) noexcept : _A_base(__a) { } 12329: 12329: _Alloc& _M_alloc() noexcept { return _A_base::_S_get(*this); } 12329: 12329: __gnu_cxx::__aligned_buffer<_Tp> _M_storage; 12329: }; 12329: 12329: public: 12329: using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_ptr_inplace>; 12329: 12329: 12329: template 12329: _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args) 12329: : _M_impl(__a) 12329: { 12329: 12329: 12329: allocator_traits<_Alloc>::construct(__a, _M_ptr(), 12329: std::forward<_Args>(__args)...); 12329: } 12329: 12329: ~_Sp_counted_ptr_inplace() noexcept { } 12329: 12329: virtual void 12329: _M_dispose() noexcept 12329: { 12329: allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr()); 12329: } 12329: 12329: 12329: virtual void 12329: _M_destroy() noexcept 12329: { 12329: __allocator_type __a(_M_impl._M_alloc()); 12329: __allocated_ptr<__allocator_type> __guard_ptr{ __a, this }; 12329: this->~_Sp_counted_ptr_inplace(); 12329: } 12329: 12329: private: 12329: friend class __shared_count<_Lp>; 12329: 12329: 12329: 12329: virtual void* 12329: _M_get_deleter(const std::type_info& __ti) noexcept override 12329: { 12329: auto __ptr = const_cast::type*>(_M_ptr()); 12329: 12329: 12329: 12329: 12329: if (&__ti == &_Sp_make_shared_tag::_S_ti() 12329: || 12329: 12329: __ti == typeid(_Sp_make_shared_tag) 12329: 12329: 12329: 12329: ) 12329: return __ptr; 12329: return nullptr; 12329: } 12329: 12329: _Tp* _M_ptr() noexcept { return _M_impl._M_storage._M_ptr(); } 12329: 12329: _Impl _M_impl; 12329: }; 12329: # 886 "/usr/include/c++/12/bits/shared_ptr_base.h" 3 12329: struct __sp_array_delete 12329: { 12329: template 12329: void operator()(_Yp* __p) const { delete[] __p; } 12329: }; 12329: 12329: template<_Lock_policy _Lp> 12329: class __shared_count 12329: { 12329: 12329: template 12329: struct __not_alloc_shared_tag { using type = void; }; 12329: 12329: template 12329: struct __not_alloc_shared_tag<_Sp_alloc_shared_tag<_Tp>> { }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: public: 12329: constexpr __shared_count() noexcept : _M_pi(0) 12329: { } 12329: 12329: template 12329: explicit 12329: __shared_count(_Ptr __p) : _M_pi(0) 12329: { 12329: try 12329: { 12329: _M_pi = new _Sp_counted_ptr<_Ptr, _Lp>(__p); 12329: } 12329: catch(...) 12329: { 12329: delete __p; 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: __shared_count(_Ptr __p, false_type) 12329: : __shared_count(__p) 12329: { } 12329: 12329: template 12329: __shared_count(_Ptr __p, true_type) 12329: : __shared_count(__p, __sp_array_delete{}, allocator()) 12329: { } 12329: 12329: template::type> 12329: __shared_count(_Ptr __p, _Deleter __d) 12329: : __shared_count(__p, std::move(__d), allocator()) 12329: { } 12329: 12329: template::type> 12329: __shared_count(_Ptr __p, _Deleter __d, _Alloc __a) : _M_pi(0) 12329: { 12329: typedef _Sp_counted_deleter<_Ptr, _Deleter, _Alloc, _Lp> _Sp_cd_type; 12329: try 12329: { 12329: typename _Sp_cd_type::__allocator_type __a2(__a); 12329: auto __guard = std::__allocate_guarded(__a2); 12329: _Sp_cd_type* __mem = __guard.get(); 12329: ::new (__mem) _Sp_cd_type(__p, std::move(__d), std::move(__a)); 12329: _M_pi = __mem; 12329: __guard = nullptr; 12329: } 12329: catch(...) 12329: { 12329: __d(__p); 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: __shared_count(_Tp*& __p, _Sp_alloc_shared_tag<_Alloc> __a, 12329: _Args&&... __args) 12329: { 12329: typedef _Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp> _Sp_cp_type; 12329: typename _Sp_cp_type::__allocator_type __a2(__a._M_a); 12329: auto __guard = std::__allocate_guarded(__a2); 12329: _Sp_cp_type* __mem = __guard.get(); 12329: auto __pi = ::new (__mem) 12329: _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...); 12329: __guard = nullptr; 12329: _M_pi = __pi; 12329: __p = __pi->_M_ptr(); 12329: } 12329: # 1024 "/usr/include/c++/12/bits/shared_ptr_base.h" 3 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: template 12329: explicit 12329: __shared_count(std::auto_ptr<_Tp>&& __r); 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: 12329: template 12329: explicit 12329: __shared_count(std::unique_ptr<_Tp, _Del>&& __r) : _M_pi(0) 12329: { 12329: 12329: 12329: if (__r.get() == nullptr) 12329: return; 12329: 12329: using _Ptr = typename unique_ptr<_Tp, _Del>::pointer; 12329: using _Del2 = __conditional_t::value, 12329: reference_wrapper::type>, 12329: _Del>; 12329: using _Sp_cd_type 12329: = _Sp_counted_deleter<_Ptr, _Del2, allocator, _Lp>; 12329: using _Alloc = allocator<_Sp_cd_type>; 12329: using _Alloc_traits = allocator_traits<_Alloc>; 12329: _Alloc __a; 12329: _Sp_cd_type* __mem = _Alloc_traits::allocate(__a, 1); 12329: 12329: 12329: 12329: _Alloc_traits::construct(__a, __mem, __r.release(), 12329: std::forward<_Del>(__r.get_deleter())); 12329: _M_pi = __mem; 12329: } 12329: 12329: 12329: explicit __shared_count(const __weak_count<_Lp>& __r); 12329: 12329: 12329: explicit 12329: __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t) noexcept; 12329: 12329: ~__shared_count() noexcept 12329: { 12329: if (_M_pi != nullptr) 12329: _M_pi->_M_release(); 12329: } 12329: 12329: __shared_count(const __shared_count& __r) noexcept 12329: : _M_pi(__r._M_pi) 12329: { 12329: if (_M_pi != nullptr) 12329: _M_pi->_M_add_ref_copy(); 12329: } 12329: 12329: __shared_count& 12329: operator=(const __shared_count& __r) noexcept 12329: { 12329: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 12329: if (__tmp != _M_pi) 12329: { 12329: if (__tmp != nullptr) 12329: __tmp->_M_add_ref_copy(); 12329: if (_M_pi != nullptr) 12329: _M_pi->_M_release(); 12329: _M_pi = __tmp; 12329: } 12329: return *this; 12329: } 12329: 12329: void 12329: _M_swap(__shared_count& __r) noexcept 12329: { 12329: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 12329: __r._M_pi = _M_pi; 12329: _M_pi = __tmp; 12329: } 12329: 12329: long 12329: _M_get_use_count() const noexcept 12329: { return _M_pi ? _M_pi->_M_get_use_count() : 0; } 12329: 12329: bool 12329: _M_unique() const noexcept 12329: { return this->_M_get_use_count() == 1; } 12329: 12329: void* 12329: _M_get_deleter(const std::type_info& __ti) const noexcept 12329: { return _M_pi ? _M_pi->_M_get_deleter(__ti) : nullptr; } 12329: 12329: bool 12329: _M_less(const __shared_count& __rhs) const noexcept 12329: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 12329: 12329: bool 12329: _M_less(const __weak_count<_Lp>& __rhs) const noexcept 12329: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 12329: 12329: 12329: friend inline bool 12329: operator==(const __shared_count& __a, const __shared_count& __b) noexcept 12329: { return __a._M_pi == __b._M_pi; } 12329: 12329: private: 12329: friend class __weak_count<_Lp>; 12329: 12329: 12329: 12329: 12329: _Sp_counted_base<_Lp>* _M_pi; 12329: }; 12329: 12329: 12329: template<_Lock_policy _Lp> 12329: class __weak_count 12329: { 12329: public: 12329: constexpr __weak_count() noexcept : _M_pi(nullptr) 12329: { } 12329: 12329: __weak_count(const __shared_count<_Lp>& __r) noexcept 12329: : _M_pi(__r._M_pi) 12329: { 12329: if (_M_pi != nullptr) 12329: _M_pi->_M_weak_add_ref(); 12329: } 12329: 12329: __weak_count(const __weak_count& __r) noexcept 12329: : _M_pi(__r._M_pi) 12329: { 12329: if (_M_pi != nullptr) 12329: _M_pi->_M_weak_add_ref(); 12329: } 12329: 12329: __weak_count(__weak_count&& __r) noexcept 12329: : _M_pi(__r._M_pi) 12329: { __r._M_pi = nullptr; } 12329: 12329: ~__weak_count() noexcept 12329: { 12329: if (_M_pi != nullptr) 12329: _M_pi->_M_weak_release(); 12329: } 12329: 12329: __weak_count& 12329: operator=(const __shared_count<_Lp>& __r) noexcept 12329: { 12329: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 12329: if (__tmp != nullptr) 12329: __tmp->_M_weak_add_ref(); 12329: if (_M_pi != nullptr) 12329: _M_pi->_M_weak_release(); 12329: _M_pi = __tmp; 12329: return *this; 12329: } 12329: 12329: __weak_count& 12329: operator=(const __weak_count& __r) noexcept 12329: { 12329: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 12329: if (__tmp != nullptr) 12329: __tmp->_M_weak_add_ref(); 12329: if (_M_pi != nullptr) 12329: _M_pi->_M_weak_release(); 12329: _M_pi = __tmp; 12329: return *this; 12329: } 12329: 12329: __weak_count& 12329: operator=(__weak_count&& __r) noexcept 12329: { 12329: if (_M_pi != nullptr) 12329: _M_pi->_M_weak_release(); 12329: _M_pi = __r._M_pi; 12329: __r._M_pi = nullptr; 12329: return *this; 12329: } 12329: 12329: void 12329: _M_swap(__weak_count& __r) noexcept 12329: { 12329: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 12329: __r._M_pi = _M_pi; 12329: _M_pi = __tmp; 12329: } 12329: 12329: long 12329: _M_get_use_count() const noexcept 12329: { return _M_pi != nullptr ? _M_pi->_M_get_use_count() : 0; } 12329: 12329: bool 12329: _M_less(const __weak_count& __rhs) const noexcept 12329: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 12329: 12329: bool 12329: _M_less(const __shared_count<_Lp>& __rhs) const noexcept 12329: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 12329: 12329: 12329: friend inline bool 12329: operator==(const __weak_count& __a, const __weak_count& __b) noexcept 12329: { return __a._M_pi == __b._M_pi; } 12329: 12329: private: 12329: friend class __shared_count<_Lp>; 12329: 12329: 12329: 12329: 12329: _Sp_counted_base<_Lp>* _M_pi; 12329: }; 12329: 12329: 12329: template<_Lock_policy _Lp> 12329: inline 12329: __shared_count<_Lp>::__shared_count(const __weak_count<_Lp>& __r) 12329: : _M_pi(__r._M_pi) 12329: { 12329: if (_M_pi == nullptr || !_M_pi->_M_add_ref_lock_nothrow()) 12329: __throw_bad_weak_ptr(); 12329: } 12329: 12329: 12329: template<_Lock_policy _Lp> 12329: inline 12329: __shared_count<_Lp>:: 12329: __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t) noexcept 12329: : _M_pi(__r._M_pi) 12329: { 12329: if (_M_pi && !_M_pi->_M_add_ref_lock_nothrow()) 12329: _M_pi = nullptr; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct __sp_compatible_with 12329: : false_type 12329: { }; 12329: 12329: template 12329: struct __sp_compatible_with<_Yp*, _Tp*> 12329: : is_convertible<_Yp*, _Tp*>::type 12329: { }; 12329: 12329: template 12329: struct __sp_compatible_with<_Up(*)[_Nm], _Up(*)[]> 12329: : true_type 12329: { }; 12329: 12329: template 12329: struct __sp_compatible_with<_Up(*)[_Nm], const _Up(*)[]> 12329: : true_type 12329: { }; 12329: 12329: template 12329: struct __sp_compatible_with<_Up(*)[_Nm], volatile _Up(*)[]> 12329: : true_type 12329: { }; 12329: 12329: template 12329: struct __sp_compatible_with<_Up(*)[_Nm], const volatile _Up(*)[]> 12329: : true_type 12329: { }; 12329: 12329: 12329: template 12329: struct __sp_is_constructible_arrN 12329: : false_type 12329: { }; 12329: 12329: template 12329: struct __sp_is_constructible_arrN<_Up, _Nm, _Yp, __void_t<_Yp[_Nm]>> 12329: : is_convertible<_Yp(*)[_Nm], _Up(*)[_Nm]>::type 12329: { }; 12329: 12329: 12329: template 12329: struct __sp_is_constructible_arr 12329: : false_type 12329: { }; 12329: 12329: template 12329: struct __sp_is_constructible_arr<_Up, _Yp, __void_t<_Yp[]>> 12329: : is_convertible<_Yp(*)[], _Up(*)[]>::type 12329: { }; 12329: 12329: 12329: template 12329: struct __sp_is_constructible; 12329: 12329: 12329: template 12329: struct __sp_is_constructible<_Up[_Nm], _Yp> 12329: : __sp_is_constructible_arrN<_Up, _Nm, _Yp>::type 12329: { }; 12329: 12329: 12329: template 12329: struct __sp_is_constructible<_Up[], _Yp> 12329: : __sp_is_constructible_arr<_Up, _Yp>::type 12329: { }; 12329: 12329: 12329: template 12329: struct __sp_is_constructible 12329: : is_convertible<_Yp*, _Tp*>::type 12329: { }; 12329: 12329: 12329: 12329: template::value, bool = is_void<_Tp>::value> 12329: class __shared_ptr_access 12329: { 12329: public: 12329: using element_type = _Tp; 12329: 12329: element_type& 12329: operator*() const noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(_M_get() != nullptr)) __builtin_unreachable(); } while (false); 12329: return *_M_get(); 12329: } 12329: 12329: element_type* 12329: operator->() const noexcept 12329: { 12329: ; 12329: return _M_get(); 12329: } 12329: 12329: private: 12329: element_type* 12329: _M_get() const noexcept 12329: { return static_cast*>(this)->get(); } 12329: }; 12329: 12329: 12329: template 12329: class __shared_ptr_access<_Tp, _Lp, false, true> 12329: { 12329: public: 12329: using element_type = _Tp; 12329: 12329: element_type* 12329: operator->() const noexcept 12329: { 12329: auto __ptr = static_cast*>(this)->get(); 12329: ; 12329: return __ptr; 12329: } 12329: }; 12329: 12329: 12329: template 12329: class __shared_ptr_access<_Tp, _Lp, true, false> 12329: { 12329: public: 12329: using element_type = typename remove_extent<_Tp>::type; 12329: 12329: 12329: [[__deprecated__("shared_ptr::operator* is absent from C++17")]] 12329: element_type& 12329: operator*() const noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(_M_get() != nullptr)) __builtin_unreachable(); } while (false); 12329: return *_M_get(); 12329: } 12329: 12329: [[__deprecated__("shared_ptr::operator-> is absent from C++17")]] 12329: element_type* 12329: operator->() const noexcept 12329: { 12329: ; 12329: return _M_get(); 12329: } 12329: 12329: 12329: element_type& 12329: operator[](ptrdiff_t __i) const noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(_M_get() != nullptr)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(!extent<_Tp>::value || __i < extent<_Tp>::value)) __builtin_unreachable(); } while (false); 12329: return _M_get()[__i]; 12329: } 12329: 12329: private: 12329: element_type* 12329: _M_get() const noexcept 12329: { return static_cast*>(this)->get(); } 12329: }; 12329: 12329: template 12329: class __shared_ptr 12329: : public __shared_ptr_access<_Tp, _Lp> 12329: { 12329: public: 12329: using element_type = typename remove_extent<_Tp>::type; 12329: 12329: private: 12329: 12329: template 12329: using _SafeConv 12329: = typename enable_if<__sp_is_constructible<_Tp, _Yp>::value>::type; 12329: 12329: 12329: template 12329: using _Compatible = typename 12329: enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type; 12329: 12329: 12329: template 12329: using _Assignable = _Compatible<_Yp, __shared_ptr&>; 12329: 12329: 12329: template::pointer> 12329: using _UniqCompatible = __enable_if_t<__and_< 12329: __sp_compatible_with<_Yp*, _Tp*>, 12329: is_convertible<_Ptr, element_type*>, 12329: is_move_constructible<_Del> 12329: >::value, _Res>; 12329: 12329: 12329: template 12329: using _UniqAssignable = _UniqCompatible<_Yp, _Del, __shared_ptr&>; 12329: 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: constexpr __shared_ptr() noexcept 12329: : _M_ptr(0), _M_refcount() 12329: { } 12329: 12329: template> 12329: explicit 12329: __shared_ptr(_Yp* __p) 12329: : _M_ptr(__p), _M_refcount(__p, typename is_array<_Tp>::type()) 12329: { 12329: static_assert( !is_void<_Yp>::value, "incomplete type" ); 12329: static_assert( sizeof(_Yp) > 0, "incomplete type" ); 12329: _M_enable_shared_from_this_with(__p); 12329: } 12329: 12329: template> 12329: __shared_ptr(_Yp* __p, _Deleter __d) 12329: : _M_ptr(__p), _M_refcount(__p, std::move(__d)) 12329: { 12329: static_assert(__is_invocable<_Deleter&, _Yp*&>::value, 12329: "deleter expression d(p) is well-formed"); 12329: _M_enable_shared_from_this_with(__p); 12329: } 12329: 12329: template> 12329: __shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 12329: : _M_ptr(__p), _M_refcount(__p, std::move(__d), std::move(__a)) 12329: { 12329: static_assert(__is_invocable<_Deleter&, _Yp*&>::value, 12329: "deleter expression d(p) is well-formed"); 12329: _M_enable_shared_from_this_with(__p); 12329: } 12329: 12329: template 12329: __shared_ptr(nullptr_t __p, _Deleter __d) 12329: : _M_ptr(0), _M_refcount(__p, std::move(__d)) 12329: { } 12329: 12329: template 12329: __shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 12329: : _M_ptr(0), _M_refcount(__p, std::move(__d), std::move(__a)) 12329: { } 12329: 12329: 12329: template 12329: __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r, 12329: element_type* __p) noexcept 12329: : _M_ptr(__p), _M_refcount(__r._M_refcount) 12329: { } 12329: 12329: 12329: template 12329: __shared_ptr(__shared_ptr<_Yp, _Lp>&& __r, 12329: element_type* __p) noexcept 12329: : _M_ptr(__p), _M_refcount() 12329: { 12329: _M_refcount._M_swap(__r._M_refcount); 12329: __r._M_ptr = nullptr; 12329: } 12329: 12329: __shared_ptr(const __shared_ptr&) noexcept = default; 12329: __shared_ptr& operator=(const __shared_ptr&) noexcept = default; 12329: ~__shared_ptr() = default; 12329: 12329: template> 12329: __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept 12329: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 12329: { } 12329: 12329: __shared_ptr(__shared_ptr&& __r) noexcept 12329: : _M_ptr(__r._M_ptr), _M_refcount() 12329: { 12329: _M_refcount._M_swap(__r._M_refcount); 12329: __r._M_ptr = nullptr; 12329: } 12329: 12329: template> 12329: __shared_ptr(__shared_ptr<_Yp, _Lp>&& __r) noexcept 12329: : _M_ptr(__r._M_ptr), _M_refcount() 12329: { 12329: _M_refcount._M_swap(__r._M_refcount); 12329: __r._M_ptr = nullptr; 12329: } 12329: 12329: template> 12329: explicit __shared_ptr(const __weak_ptr<_Yp, _Lp>& __r) 12329: : _M_refcount(__r._M_refcount) 12329: { 12329: 12329: 12329: _M_ptr = __r._M_ptr; 12329: } 12329: 12329: 12329: template> 12329: __shared_ptr(unique_ptr<_Yp, _Del>&& __r) 12329: : _M_ptr(__r.get()), _M_refcount() 12329: { 12329: auto __raw = __to_address(__r.get()); 12329: _M_refcount = __shared_count<_Lp>(std::move(__r)); 12329: _M_enable_shared_from_this_with(__raw); 12329: } 12329: 12329: 12329: protected: 12329: 12329: template>, is_array<_Tp1>, 12329: is_convertible::pointer, _Tp*> 12329: >::value, bool>::type = true> 12329: __shared_ptr(unique_ptr<_Tp1, _Del>&& __r, __sp_array_delete) 12329: : _M_ptr(__r.get()), _M_refcount() 12329: { 12329: auto __raw = __to_address(__r.get()); 12329: _M_refcount = __shared_count<_Lp>(std::move(__r)); 12329: _M_enable_shared_from_this_with(__raw); 12329: } 12329: public: 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: template> 12329: __shared_ptr(auto_ptr<_Yp>&& __r); 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: constexpr __shared_ptr(nullptr_t) noexcept : __shared_ptr() { } 12329: 12329: template 12329: _Assignable<_Yp> 12329: operator=(const __shared_ptr<_Yp, _Lp>& __r) noexcept 12329: { 12329: _M_ptr = __r._M_ptr; 12329: _M_refcount = __r._M_refcount; 12329: return *this; 12329: } 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: template 12329: _Assignable<_Yp> 12329: operator=(auto_ptr<_Yp>&& __r) 12329: { 12329: __shared_ptr(std::move(__r)).swap(*this); 12329: return *this; 12329: } 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: __shared_ptr& 12329: operator=(__shared_ptr&& __r) noexcept 12329: { 12329: __shared_ptr(std::move(__r)).swap(*this); 12329: return *this; 12329: } 12329: 12329: template 12329: _Assignable<_Yp> 12329: operator=(__shared_ptr<_Yp, _Lp>&& __r) noexcept 12329: { 12329: __shared_ptr(std::move(__r)).swap(*this); 12329: return *this; 12329: } 12329: 12329: template 12329: _UniqAssignable<_Yp, _Del> 12329: operator=(unique_ptr<_Yp, _Del>&& __r) 12329: { 12329: __shared_ptr(std::move(__r)).swap(*this); 12329: return *this; 12329: } 12329: 12329: void 12329: reset() noexcept 12329: { __shared_ptr().swap(*this); } 12329: 12329: template 12329: _SafeConv<_Yp> 12329: reset(_Yp* __p) 12329: { 12329: 12329: do { if (std::__is_constant_evaluated() && !bool(__p == nullptr || __p != _M_ptr)) __builtin_unreachable(); } while (false); 12329: __shared_ptr(__p).swap(*this); 12329: } 12329: 12329: template 12329: _SafeConv<_Yp> 12329: reset(_Yp* __p, _Deleter __d) 12329: { __shared_ptr(__p, std::move(__d)).swap(*this); } 12329: 12329: template 12329: _SafeConv<_Yp> 12329: reset(_Yp* __p, _Deleter __d, _Alloc __a) 12329: { __shared_ptr(__p, std::move(__d), std::move(__a)).swap(*this); } 12329: 12329: 12329: element_type* 12329: get() const noexcept 12329: { return _M_ptr; } 12329: 12329: 12329: explicit operator bool() const noexcept 12329: { return _M_ptr != nullptr; } 12329: 12329: 12329: bool 12329: unique() const noexcept 12329: { return _M_refcount._M_unique(); } 12329: 12329: 12329: long 12329: use_count() const noexcept 12329: { return _M_refcount._M_get_use_count(); } 12329: 12329: 12329: void 12329: swap(__shared_ptr<_Tp, _Lp>& __other) noexcept 12329: { 12329: std::swap(_M_ptr, __other._M_ptr); 12329: _M_refcount._M_swap(__other._M_refcount); 12329: } 12329: # 1697 "/usr/include/c++/12/bits/shared_ptr_base.h" 3 12329: template 12329: bool 12329: owner_before(__shared_ptr<_Tp1, _Lp> const& __rhs) const noexcept 12329: { return _M_refcount._M_less(__rhs._M_refcount); } 12329: 12329: template 12329: bool 12329: owner_before(__weak_ptr<_Tp1, _Lp> const& __rhs) const noexcept 12329: { return _M_refcount._M_less(__rhs._M_refcount); } 12329: 12329: 12329: protected: 12329: 12329: template 12329: __shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args) 12329: : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...) 12329: { _M_enable_shared_from_this_with(_M_ptr); } 12329: 12329: template 12329: friend __shared_ptr<_Tp1, _Lp1> 12329: __allocate_shared(const _Alloc& __a, _Args&&... __args); 12329: # 1731 "/usr/include/c++/12/bits/shared_ptr_base.h" 3 12329: __shared_ptr(const __weak_ptr<_Tp, _Lp>& __r, std::nothrow_t) noexcept 12329: : _M_refcount(__r._M_refcount, std::nothrow) 12329: { 12329: _M_ptr = _M_refcount._M_get_use_count() ? __r._M_ptr : nullptr; 12329: } 12329: 12329: friend class __weak_ptr<_Tp, _Lp>; 12329: 12329: private: 12329: 12329: template 12329: using __esft_base_t = decltype(__enable_shared_from_this_base( 12329: std::declval&>(), 12329: std::declval<_Yp*>())); 12329: 12329: 12329: template 12329: struct __has_esft_base 12329: : false_type { }; 12329: 12329: template 12329: struct __has_esft_base<_Yp, __void_t<__esft_base_t<_Yp>>> 12329: : __not_> { }; 12329: 12329: template::type> 12329: typename enable_if<__has_esft_base<_Yp2>::value>::type 12329: _M_enable_shared_from_this_with(_Yp* __p) noexcept 12329: { 12329: if (auto __base = __enable_shared_from_this_base(_M_refcount, __p)) 12329: __base->_M_weak_assign(const_cast<_Yp2*>(__p), _M_refcount); 12329: } 12329: 12329: template::type> 12329: typename enable_if::value>::type 12329: _M_enable_shared_from_this_with(_Yp*) noexcept 12329: { } 12329: 12329: void* 12329: _M_get_deleter(const std::type_info& __ti) const noexcept 12329: { return _M_refcount._M_get_deleter(__ti); } 12329: 12329: template friend class __shared_ptr; 12329: template friend class __weak_ptr; 12329: 12329: template 12329: friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&) noexcept; 12329: 12329: template 12329: friend _Del* get_deleter(const shared_ptr<_Tp1>&) noexcept; 12329: 12329: 12329: 12329: 12329: 12329: element_type* _M_ptr; 12329: __shared_count<_Lp> _M_refcount; 12329: }; 12329: 12329: 12329: 12329: template 12329: inline bool 12329: operator==(const __shared_ptr<_Tp1, _Lp>& __a, 12329: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 12329: { return __a.get() == __b.get(); } 12329: 12329: template 12329: inline bool 12329: operator==(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 12329: { return !__a; } 12329: # 1817 "/usr/include/c++/12/bits/shared_ptr_base.h" 3 12329: template 12329: inline bool 12329: operator==(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 12329: { return !__a; } 12329: 12329: template 12329: inline bool 12329: operator!=(const __shared_ptr<_Tp1, _Lp>& __a, 12329: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 12329: { return __a.get() != __b.get(); } 12329: 12329: template 12329: inline bool 12329: operator!=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 12329: { return (bool)__a; } 12329: 12329: template 12329: inline bool 12329: operator!=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 12329: { return (bool)__a; } 12329: 12329: template 12329: inline bool 12329: operator<(const __shared_ptr<_Tp, _Lp>& __a, 12329: const __shared_ptr<_Up, _Lp>& __b) noexcept 12329: { 12329: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 12329: using _Up_elt = typename __shared_ptr<_Up, _Lp>::element_type; 12329: using _Vp = typename common_type<_Tp_elt*, _Up_elt*>::type; 12329: return less<_Vp>()(__a.get(), __b.get()); 12329: } 12329: 12329: template 12329: inline bool 12329: operator<(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 12329: { 12329: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 12329: return less<_Tp_elt*>()(__a.get(), nullptr); 12329: } 12329: 12329: template 12329: inline bool 12329: operator<(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 12329: { 12329: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 12329: return less<_Tp_elt*>()(nullptr, __a.get()); 12329: } 12329: 12329: template 12329: inline bool 12329: operator<=(const __shared_ptr<_Tp1, _Lp>& __a, 12329: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 12329: { return !(__b < __a); } 12329: 12329: template 12329: inline bool 12329: operator<=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 12329: { return !(nullptr < __a); } 12329: 12329: template 12329: inline bool 12329: operator<=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 12329: { return !(__a < nullptr); } 12329: 12329: template 12329: inline bool 12329: operator>(const __shared_ptr<_Tp1, _Lp>& __a, 12329: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 12329: { return (__b < __a); } 12329: 12329: template 12329: inline bool 12329: operator>(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 12329: { return nullptr < __a; } 12329: 12329: template 12329: inline bool 12329: operator>(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 12329: { return __a < nullptr; } 12329: 12329: template 12329: inline bool 12329: operator>=(const __shared_ptr<_Tp1, _Lp>& __a, 12329: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 12329: { return !(__a < __b); } 12329: 12329: template 12329: inline bool 12329: operator>=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 12329: { return !(__a < nullptr); } 12329: 12329: template 12329: inline bool 12329: operator>=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 12329: { return !(nullptr < __a); } 12329: 12329: 12329: 12329: template 12329: inline void 12329: swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b) noexcept 12329: { __a.swap(__b); } 12329: # 1927 "/usr/include/c++/12/bits/shared_ptr_base.h" 3 12329: template 12329: inline __shared_ptr<_Tp, _Lp> 12329: static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 12329: { 12329: using _Sp = __shared_ptr<_Tp, _Lp>; 12329: return _Sp(__r, static_cast(__r.get())); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline __shared_ptr<_Tp, _Lp> 12329: const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 12329: { 12329: using _Sp = __shared_ptr<_Tp, _Lp>; 12329: return _Sp(__r, const_cast(__r.get())); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline __shared_ptr<_Tp, _Lp> 12329: dynamic_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 12329: { 12329: using _Sp = __shared_ptr<_Tp, _Lp>; 12329: if (auto* __p = dynamic_cast(__r.get())) 12329: return _Sp(__r, __p); 12329: return _Sp(); 12329: } 12329: # 1973 "/usr/include/c++/12/bits/shared_ptr_base.h" 3 12329: template 12329: class __weak_ptr 12329: { 12329: template 12329: using _Compatible = typename 12329: enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type; 12329: 12329: 12329: template 12329: using _Assignable = _Compatible<_Yp, __weak_ptr&>; 12329: 12329: public: 12329: using element_type = typename remove_extent<_Tp>::type; 12329: 12329: constexpr __weak_ptr() noexcept 12329: : _M_ptr(nullptr), _M_refcount() 12329: { } 12329: 12329: __weak_ptr(const __weak_ptr&) noexcept = default; 12329: 12329: ~__weak_ptr() = default; 12329: # 2009 "/usr/include/c++/12/bits/shared_ptr_base.h" 3 12329: template> 12329: __weak_ptr(const __weak_ptr<_Yp, _Lp>& __r) noexcept 12329: : _M_refcount(__r._M_refcount) 12329: { _M_ptr = __r.lock().get(); } 12329: 12329: template> 12329: __weak_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept 12329: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 12329: { } 12329: 12329: __weak_ptr(__weak_ptr&& __r) noexcept 12329: : _M_ptr(__r._M_ptr), _M_refcount(std::move(__r._M_refcount)) 12329: { __r._M_ptr = nullptr; } 12329: 12329: template> 12329: __weak_ptr(__weak_ptr<_Yp, _Lp>&& __r) noexcept 12329: : _M_ptr(__r.lock().get()), _M_refcount(std::move(__r._M_refcount)) 12329: { __r._M_ptr = nullptr; } 12329: 12329: __weak_ptr& 12329: operator=(const __weak_ptr& __r) noexcept = default; 12329: 12329: template 12329: _Assignable<_Yp> 12329: operator=(const __weak_ptr<_Yp, _Lp>& __r) noexcept 12329: { 12329: _M_ptr = __r.lock().get(); 12329: _M_refcount = __r._M_refcount; 12329: return *this; 12329: } 12329: 12329: template 12329: _Assignable<_Yp> 12329: operator=(const __shared_ptr<_Yp, _Lp>& __r) noexcept 12329: { 12329: _M_ptr = __r._M_ptr; 12329: _M_refcount = __r._M_refcount; 12329: return *this; 12329: } 12329: 12329: __weak_ptr& 12329: operator=(__weak_ptr&& __r) noexcept 12329: { 12329: _M_ptr = __r._M_ptr; 12329: _M_refcount = std::move(__r._M_refcount); 12329: __r._M_ptr = nullptr; 12329: return *this; 12329: } 12329: 12329: template 12329: _Assignable<_Yp> 12329: operator=(__weak_ptr<_Yp, _Lp>&& __r) noexcept 12329: { 12329: _M_ptr = __r.lock().get(); 12329: _M_refcount = std::move(__r._M_refcount); 12329: __r._M_ptr = nullptr; 12329: return *this; 12329: } 12329: 12329: __shared_ptr<_Tp, _Lp> 12329: lock() const noexcept 12329: { return __shared_ptr(*this, std::nothrow); } 12329: 12329: long 12329: use_count() const noexcept 12329: { return _M_refcount._M_get_use_count(); } 12329: 12329: bool 12329: expired() const noexcept 12329: { return _M_refcount._M_get_use_count() == 0; } 12329: 12329: template 12329: bool 12329: owner_before(const __shared_ptr<_Tp1, _Lp>& __rhs) const noexcept 12329: { return _M_refcount._M_less(__rhs._M_refcount); } 12329: 12329: template 12329: bool 12329: owner_before(const __weak_ptr<_Tp1, _Lp>& __rhs) const noexcept 12329: { return _M_refcount._M_less(__rhs._M_refcount); } 12329: 12329: void 12329: reset() noexcept 12329: { __weak_ptr().swap(*this); } 12329: 12329: void 12329: swap(__weak_ptr& __s) noexcept 12329: { 12329: std::swap(_M_ptr, __s._M_ptr); 12329: _M_refcount._M_swap(__s._M_refcount); 12329: } 12329: 12329: private: 12329: 12329: void 12329: _M_assign(_Tp* __ptr, const __shared_count<_Lp>& __refcount) noexcept 12329: { 12329: if (use_count() == 0) 12329: { 12329: _M_ptr = __ptr; 12329: _M_refcount = __refcount; 12329: } 12329: } 12329: 12329: template friend class __shared_ptr; 12329: template friend class __weak_ptr; 12329: friend class __enable_shared_from_this<_Tp, _Lp>; 12329: friend class enable_shared_from_this<_Tp>; 12329: 12329: 12329: 12329: 12329: element_type* _M_ptr; 12329: __weak_count<_Lp> _M_refcount; 12329: }; 12329: 12329: 12329: template 12329: inline void 12329: swap(__weak_ptr<_Tp, _Lp>& __a, __weak_ptr<_Tp, _Lp>& __b) noexcept 12329: { __a.swap(__b); } 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: template 12329: struct _Sp_owner_less : public binary_function<_Tp, _Tp, bool> 12329: { 12329: bool 12329: operator()(const _Tp& __lhs, const _Tp& __rhs) const noexcept 12329: { return __lhs.owner_before(__rhs); } 12329: 12329: bool 12329: operator()(const _Tp& __lhs, const _Tp1& __rhs) const noexcept 12329: { return __lhs.owner_before(__rhs); } 12329: 12329: bool 12329: operator()(const _Tp1& __lhs, const _Tp& __rhs) const noexcept 12329: { return __lhs.owner_before(__rhs); } 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: template<> 12329: struct _Sp_owner_less 12329: { 12329: template 12329: auto 12329: operator()(const _Tp& __lhs, const _Up& __rhs) const noexcept 12329: -> decltype(__lhs.owner_before(__rhs)) 12329: { return __lhs.owner_before(__rhs); } 12329: 12329: using is_transparent = void; 12329: }; 12329: 12329: template 12329: struct owner_less<__shared_ptr<_Tp, _Lp>> 12329: : public _Sp_owner_less<__shared_ptr<_Tp, _Lp>, __weak_ptr<_Tp, _Lp>> 12329: { }; 12329: 12329: template 12329: struct owner_less<__weak_ptr<_Tp, _Lp>> 12329: : public _Sp_owner_less<__weak_ptr<_Tp, _Lp>, __shared_ptr<_Tp, _Lp>> 12329: { }; 12329: 12329: 12329: template 12329: class __enable_shared_from_this 12329: { 12329: protected: 12329: constexpr __enable_shared_from_this() noexcept { } 12329: 12329: __enable_shared_from_this(const __enable_shared_from_this&) noexcept { } 12329: 12329: __enable_shared_from_this& 12329: operator=(const __enable_shared_from_this&) noexcept 12329: { return *this; } 12329: 12329: ~__enable_shared_from_this() { } 12329: 12329: public: 12329: __shared_ptr<_Tp, _Lp> 12329: shared_from_this() 12329: { return __shared_ptr<_Tp, _Lp>(this->_M_weak_this); } 12329: 12329: __shared_ptr 12329: shared_from_this() const 12329: { return __shared_ptr(this->_M_weak_this); } 12329: # 2206 "/usr/include/c++/12/bits/shared_ptr_base.h" 3 12329: private: 12329: template 12329: void 12329: _M_weak_assign(_Tp1* __p, const __shared_count<_Lp>& __n) const noexcept 12329: { _M_weak_this._M_assign(__p, __n); } 12329: 12329: friend const __enable_shared_from_this* 12329: __enable_shared_from_this_base(const __shared_count<_Lp>&, 12329: const __enable_shared_from_this* __p) 12329: { return __p; } 12329: 12329: template 12329: friend class __shared_ptr; 12329: 12329: mutable __weak_ptr<_Tp, _Lp> _M_weak_this; 12329: }; 12329: 12329: template 12329: inline __shared_ptr<_Tp, _Lp> 12329: __allocate_shared(const _Alloc& __a, _Args&&... __args) 12329: { 12329: static_assert(!is_array<_Tp>::value, "make_shared not supported"); 12329: 12329: return __shared_ptr<_Tp, _Lp>(_Sp_alloc_shared_tag<_Alloc>{__a}, 12329: std::forward<_Args>(__args)...); 12329: } 12329: 12329: template 12329: inline __shared_ptr<_Tp, _Lp> 12329: __make_shared(_Args&&... __args) 12329: { 12329: typedef typename std::remove_const<_Tp>::type _Tp_nc; 12329: return std::__allocate_shared<_Tp, _Lp>(std::allocator<_Tp_nc>(), 12329: std::forward<_Args>(__args)...); 12329: } 12329: 12329: 12329: template 12329: struct hash<__shared_ptr<_Tp, _Lp>> 12329: : public __hash_base> 12329: { 12329: size_t 12329: operator()(const __shared_ptr<_Tp, _Lp>& __s) const noexcept 12329: { 12329: return hash::element_type*>()( 12329: __s.get()); 12329: } 12329: }; 12329: 12329: 12329: } 12329: # 54 "/usr/include/c++/12/bits/shared_ptr.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 68 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: inline std::basic_ostream<_Ch, _Tr>& 12329: operator<<(std::basic_ostream<_Ch, _Tr>& __os, 12329: const __shared_ptr<_Tp, _Lp>& __p) 12329: { 12329: __os << __p.get(); 12329: return __os; 12329: } 12329: 12329: template 12329: inline _Del* 12329: get_deleter(const __shared_ptr<_Tp, _Lp>& __p) noexcept 12329: { 12329: 12329: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline _Del* 12329: get_deleter(const shared_ptr<_Tp>& __p) noexcept 12329: { 12329: 12329: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 12329: 12329: 12329: 12329: } 12329: # 111 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: using _NonArray = __enable_if_t::value, _Tp>; 12329: # 174 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: class shared_ptr : public __shared_ptr<_Tp> 12329: { 12329: template 12329: using _Constructible = typename enable_if< 12329: is_constructible<__shared_ptr<_Tp>, _Args...>::value 12329: >::type; 12329: 12329: template 12329: using _Assignable = typename enable_if< 12329: is_assignable<__shared_ptr<_Tp>&, _Arg>::value, shared_ptr& 12329: >::type; 12329: 12329: public: 12329: 12329: 12329: using element_type = typename __shared_ptr<_Tp>::element_type; 12329: # 202 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: constexpr shared_ptr() noexcept : __shared_ptr<_Tp>() { } 12329: 12329: shared_ptr(const shared_ptr&) noexcept = default; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template> 12329: explicit 12329: shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { } 12329: # 229 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template> 12329: shared_ptr(_Yp* __p, _Deleter __d) 12329: : __shared_ptr<_Tp>(__p, std::move(__d)) { } 12329: # 247 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: shared_ptr(nullptr_t __p, _Deleter __d) 12329: : __shared_ptr<_Tp>(__p, std::move(__d)) { } 12329: # 266 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template> 12329: shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 12329: : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } 12329: # 286 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 12329: : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } 12329: # 310 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) noexcept 12329: : __shared_ptr<_Tp>(__r, __p) { } 12329: # 349 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template&>> 12329: shared_ptr(const shared_ptr<_Yp>& __r) noexcept 12329: : __shared_ptr<_Tp>(__r) { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: shared_ptr(shared_ptr&& __r) noexcept 12329: : __shared_ptr<_Tp>(std::move(__r)) { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template>> 12329: shared_ptr(shared_ptr<_Yp>&& __r) noexcept 12329: : __shared_ptr<_Tp>(std::move(__r)) { } 12329: # 379 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template&>> 12329: explicit shared_ptr(const weak_ptr<_Yp>& __r) 12329: : __shared_ptr<_Tp>(__r) { } 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: template>> 12329: shared_ptr(auto_ptr<_Yp>&& __r); 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: 12329: 12329: template>> 12329: shared_ptr(unique_ptr<_Yp, _Del>&& __r) 12329: : __shared_ptr<_Tp>(std::move(__r)) { } 12329: 12329: 12329: 12329: 12329: 12329: template, __sp_array_delete>* = 0> 12329: shared_ptr(unique_ptr<_Yp, _Del>&& __r) 12329: : __shared_ptr<_Tp>(std::move(__r), __sp_array_delete()) { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { } 12329: 12329: shared_ptr& operator=(const shared_ptr&) noexcept = default; 12329: 12329: template 12329: _Assignable&> 12329: operator=(const shared_ptr<_Yp>& __r) noexcept 12329: { 12329: this->__shared_ptr<_Tp>::operator=(__r); 12329: return *this; 12329: } 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: template 12329: _Assignable> 12329: operator=(auto_ptr<_Yp>&& __r) 12329: { 12329: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 12329: return *this; 12329: } 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: shared_ptr& 12329: operator=(shared_ptr&& __r) noexcept 12329: { 12329: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 12329: return *this; 12329: } 12329: 12329: template 12329: _Assignable> 12329: operator=(shared_ptr<_Yp>&& __r) noexcept 12329: { 12329: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 12329: return *this; 12329: } 12329: 12329: template 12329: _Assignable> 12329: operator=(unique_ptr<_Yp, _Del>&& __r) 12329: { 12329: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 12329: return *this; 12329: } 12329: 12329: private: 12329: 12329: template 12329: shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args) 12329: : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...) 12329: { } 12329: 12329: template 12329: friend shared_ptr<_NonArray<_Yp>> 12329: allocate_shared(const _Alloc&, _Args&&...); 12329: 12329: template 12329: friend shared_ptr<_NonArray<_Yp>> 12329: make_shared(_Args&&...); 12329: # 535 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: shared_ptr(const weak_ptr<_Tp>& __r, std::nothrow_t) noexcept 12329: : __shared_ptr<_Tp>(__r, std::nothrow) { } 12329: 12329: friend class weak_ptr<_Tp>; 12329: }; 12329: # 553 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: inline bool 12329: operator==(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 12329: { return __a.get() == __b.get(); } 12329: 12329: 12329: template 12329: inline bool 12329: operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 12329: { return !__a; } 12329: # 580 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: inline bool 12329: operator==(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 12329: { return !__a; } 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 12329: { return __a.get() != __b.get(); } 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 12329: { return (bool)__a; } 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 12329: { return (bool)__a; } 12329: 12329: 12329: template 12329: inline bool 12329: operator<(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 12329: { 12329: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 12329: using _Up_elt = typename shared_ptr<_Up>::element_type; 12329: using _Vp = typename common_type<_Tp_elt*, _Up_elt*>::type; 12329: return less<_Vp>()(__a.get(), __b.get()); 12329: } 12329: 12329: 12329: template 12329: inline bool 12329: operator<(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 12329: { 12329: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 12329: return less<_Tp_elt*>()(__a.get(), nullptr); 12329: } 12329: 12329: 12329: template 12329: inline bool 12329: operator<(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 12329: { 12329: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 12329: return less<_Tp_elt*>()(nullptr, __a.get()); 12329: } 12329: 12329: 12329: template 12329: inline bool 12329: operator<=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 12329: { return !(__b < __a); } 12329: 12329: 12329: template 12329: inline bool 12329: operator<=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 12329: { return !(nullptr < __a); } 12329: 12329: 12329: template 12329: inline bool 12329: operator<=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 12329: { return !(__a < nullptr); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 12329: { return (__b < __a); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 12329: { return nullptr < __a; } 12329: 12329: 12329: template 12329: inline bool 12329: operator>(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 12329: { return __a < nullptr; } 12329: 12329: 12329: template 12329: inline bool 12329: operator>=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 12329: { return !(__a < __b); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 12329: { return !(__a < nullptr); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 12329: { return !(nullptr < __a); } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline void 12329: swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>& __b) noexcept 12329: { __a.swap(__b); } 12329: 12329: 12329: 12329: 12329: template 12329: inline shared_ptr<_Tp> 12329: static_pointer_cast(const shared_ptr<_Up>& __r) noexcept 12329: { 12329: using _Sp = shared_ptr<_Tp>; 12329: return _Sp(__r, static_cast(__r.get())); 12329: } 12329: 12329: 12329: template 12329: inline shared_ptr<_Tp> 12329: const_pointer_cast(const shared_ptr<_Up>& __r) noexcept 12329: { 12329: using _Sp = shared_ptr<_Tp>; 12329: return _Sp(__r, const_cast(__r.get())); 12329: } 12329: 12329: 12329: template 12329: inline shared_ptr<_Tp> 12329: dynamic_pointer_cast(const shared_ptr<_Up>& __r) noexcept 12329: { 12329: using _Sp = shared_ptr<_Tp>; 12329: if (auto* __p = dynamic_cast(__r.get())) 12329: return _Sp(__r, __p); 12329: return _Sp(); 12329: } 12329: # 810 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: class weak_ptr : public __weak_ptr<_Tp> 12329: { 12329: template 12329: using _Constructible = typename enable_if< 12329: is_constructible<__weak_ptr<_Tp>, _Arg>::value 12329: >::type; 12329: 12329: template 12329: using _Assignable = typename enable_if< 12329: is_assignable<__weak_ptr<_Tp>&, _Arg>::value, weak_ptr& 12329: >::type; 12329: 12329: public: 12329: constexpr weak_ptr() noexcept = default; 12329: 12329: template&>> 12329: weak_ptr(const shared_ptr<_Yp>& __r) noexcept 12329: : __weak_ptr<_Tp>(__r) { } 12329: 12329: weak_ptr(const weak_ptr&) noexcept = default; 12329: 12329: template&>> 12329: weak_ptr(const weak_ptr<_Yp>& __r) noexcept 12329: : __weak_ptr<_Tp>(__r) { } 12329: 12329: weak_ptr(weak_ptr&&) noexcept = default; 12329: 12329: template>> 12329: weak_ptr(weak_ptr<_Yp>&& __r) noexcept 12329: : __weak_ptr<_Tp>(std::move(__r)) { } 12329: 12329: weak_ptr& 12329: operator=(const weak_ptr& __r) noexcept = default; 12329: 12329: template 12329: _Assignable&> 12329: operator=(const weak_ptr<_Yp>& __r) noexcept 12329: { 12329: this->__weak_ptr<_Tp>::operator=(__r); 12329: return *this; 12329: } 12329: 12329: template 12329: _Assignable&> 12329: operator=(const shared_ptr<_Yp>& __r) noexcept 12329: { 12329: this->__weak_ptr<_Tp>::operator=(__r); 12329: return *this; 12329: } 12329: 12329: weak_ptr& 12329: operator=(weak_ptr&& __r) noexcept = default; 12329: 12329: template 12329: _Assignable> 12329: operator=(weak_ptr<_Yp>&& __r) noexcept 12329: { 12329: this->__weak_ptr<_Tp>::operator=(std::move(__r)); 12329: return *this; 12329: } 12329: 12329: shared_ptr<_Tp> 12329: lock() const noexcept 12329: { return shared_ptr<_Tp>(*this, std::nothrow); } 12329: }; 12329: # 886 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: inline void 12329: swap(weak_ptr<_Tp>& __a, weak_ptr<_Tp>& __b) noexcept 12329: { __a.swap(__b); } 12329: 12329: 12329: 12329: template 12329: struct owner_less; 12329: 12329: 12329: template<> 12329: struct owner_less : _Sp_owner_less 12329: { }; 12329: 12329: 12329: template 12329: struct owner_less> 12329: : public _Sp_owner_less, weak_ptr<_Tp>> 12329: { }; 12329: 12329: 12329: template 12329: struct owner_less> 12329: : public _Sp_owner_less, shared_ptr<_Tp>> 12329: { }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class enable_shared_from_this 12329: { 12329: protected: 12329: constexpr enable_shared_from_this() noexcept { } 12329: 12329: enable_shared_from_this(const enable_shared_from_this&) noexcept { } 12329: 12329: enable_shared_from_this& 12329: operator=(const enable_shared_from_this&) noexcept 12329: { return *this; } 12329: 12329: ~enable_shared_from_this() { } 12329: 12329: public: 12329: shared_ptr<_Tp> 12329: shared_from_this() 12329: { return shared_ptr<_Tp>(this->_M_weak_this); } 12329: 12329: shared_ptr 12329: shared_from_this() const 12329: { return shared_ptr(this->_M_weak_this); } 12329: # 957 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: private: 12329: template 12329: void 12329: _M_weak_assign(_Tp1* __p, const __shared_count<>& __n) const noexcept 12329: { _M_weak_this._M_assign(__p, __n); } 12329: 12329: 12329: friend const enable_shared_from_this* 12329: __enable_shared_from_this_base(const __shared_count<>&, 12329: const enable_shared_from_this* __p) 12329: { return __p; } 12329: 12329: template 12329: friend class __shared_ptr; 12329: 12329: mutable weak_ptr<_Tp> _M_weak_this; 12329: }; 12329: # 988 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: inline shared_ptr<_NonArray<_Tp>> 12329: allocate_shared(const _Alloc& __a, _Args&&... __args) 12329: { 12329: return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a}, 12329: std::forward<_Args>(__args)...); 12329: } 12329: # 1003 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: inline shared_ptr<_NonArray<_Tp>> 12329: make_shared(_Args&&... __args) 12329: { 12329: using _Alloc = allocator; 12329: _Alloc __a; 12329: return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a}, 12329: std::forward<_Args>(__args)...); 12329: } 12329: # 1152 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: template 12329: struct hash> 12329: : public __hash_base> 12329: { 12329: size_t 12329: operator()(const shared_ptr<_Tp>& __s) const noexcept 12329: { 12329: return std::hash::element_type*>()(__s.get()); 12329: } 12329: }; 12329: # 1187 "/usr/include/c++/12/bits/shared_ptr.h" 3 12329: 12329: } 12329: # 78 "/usr/include/c++/12/memory" 2 3 12329: # 1 "/usr/include/c++/12/bits/shared_ptr_atomic.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/shared_ptr_atomic.h" 3 12329: # 1 "/usr/include/c++/12/bits/atomic_base.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/atomic_base.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/atomic_base.h" 3 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/atomic_lockfree_defines.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/atomic_lockfree_defines.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/atomic_lockfree_defines.h" 3 12329: # 38 "/usr/include/c++/12/bits/atomic_base.h" 2 3 12329: # 48 "/usr/include/c++/12/bits/atomic_base.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 78 "/usr/include/c++/12/bits/atomic_base.h" 3 12329: typedef enum memory_order 12329: { 12329: memory_order_relaxed, 12329: memory_order_consume, 12329: memory_order_acquire, 12329: memory_order_release, 12329: memory_order_acq_rel, 12329: memory_order_seq_cst 12329: } memory_order; 12329: 12329: 12329: enum __memory_order_modifier 12329: { 12329: __memory_order_mask = 0x0ffff, 12329: __memory_order_modifier_mask = 0xffff0000, 12329: __memory_order_hle_acquire = 0x10000, 12329: __memory_order_hle_release = 0x20000 12329: }; 12329: 12329: constexpr memory_order 12329: operator|(memory_order __m, __memory_order_modifier __mod) 12329: { 12329: return memory_order(int(__m) | int(__mod)); 12329: } 12329: 12329: constexpr memory_order 12329: operator&(memory_order __m, __memory_order_modifier __mod) 12329: { 12329: return memory_order(int(__m) & int(__mod)); 12329: } 12329: 12329: 12329: constexpr memory_order 12329: __cmpexch_failure_order2(memory_order __m) noexcept 12329: { 12329: return __m == memory_order_acq_rel ? memory_order_acquire 12329: : __m == memory_order_release ? memory_order_relaxed : __m; 12329: } 12329: 12329: constexpr memory_order 12329: __cmpexch_failure_order(memory_order __m) noexcept 12329: { 12329: return memory_order(__cmpexch_failure_order2(__m & __memory_order_mask) 12329: | __memory_order_modifier(__m & __memory_order_modifier_mask)); 12329: } 12329: 12329: constexpr bool 12329: __is_valid_cmpexch_failure_order(memory_order __m) noexcept 12329: { 12329: return (__m & __memory_order_mask) != memory_order_release 12329: && (__m & __memory_order_mask) != memory_order_acq_rel; 12329: } 12329: 12329: inline __attribute__((__always_inline__)) void 12329: atomic_thread_fence(memory_order __m) noexcept 12329: { __atomic_thread_fence(int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) void 12329: atomic_signal_fence(memory_order __m) noexcept 12329: { __atomic_signal_fence(int(__m)); } 12329: 12329: 12329: template 12329: inline _Tp 12329: kill_dependency(_Tp __y) noexcept 12329: { 12329: _Tp __ret(__y); 12329: return __ret; 12329: } 12329: 12329: 12329: template 12329: struct __atomic_base; 12329: # 161 "/usr/include/c++/12/bits/atomic_base.h" 3 12329: template 12329: struct atomic; 12329: 12329: template 12329: struct atomic<_Tp*>; 12329: 12329: 12329: 12329: typedef bool __atomic_flag_data_type; 12329: # 184 "/usr/include/c++/12/bits/atomic_base.h" 3 12329: extern "C" { 12329: 12329: struct __atomic_flag_base 12329: { 12329: __atomic_flag_data_type _M_i ; 12329: }; 12329: 12329: } 12329: 12329: 12329: 12329: 12329: struct atomic_flag : public __atomic_flag_base 12329: { 12329: atomic_flag() noexcept = default; 12329: ~atomic_flag() noexcept = default; 12329: atomic_flag(const atomic_flag&) = delete; 12329: atomic_flag& operator=(const atomic_flag&) = delete; 12329: atomic_flag& operator=(const atomic_flag&) volatile = delete; 12329: 12329: 12329: constexpr atomic_flag(bool __i) noexcept 12329: : __atomic_flag_base{ _S_init(__i) } 12329: { } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: test_and_set(memory_order __m = memory_order_seq_cst) noexcept 12329: { 12329: return __atomic_test_and_set (&_M_i, int(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { 12329: return __atomic_test_and_set (&_M_i, int(__m)); 12329: } 12329: # 268 "/usr/include/c++/12/bits/atomic_base.h" 3 12329: inline __attribute__((__always_inline__)) void 12329: clear(memory_order __m = memory_order_seq_cst) noexcept 12329: { 12329: memory_order __b __attribute__ ((__unused__)) 12329: = __m & __memory_order_mask; 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_consume)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acquire)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) __builtin_unreachable(); } while (false); 12329: 12329: __atomic_clear (&_M_i, int(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) void 12329: clear(memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { 12329: memory_order __b __attribute__ ((__unused__)) 12329: = __m & __memory_order_mask; 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_consume)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acquire)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) __builtin_unreachable(); } while (false); 12329: 12329: __atomic_clear (&_M_i, int(__m)); 12329: } 12329: 12329: private: 12329: static constexpr __atomic_flag_data_type 12329: _S_init(bool __i) 12329: { return __i ? 1 : 0; } 12329: }; 12329: # 323 "/usr/include/c++/12/bits/atomic_base.h" 3 12329: template 12329: struct __atomic_base 12329: { 12329: using value_type = _ITp; 12329: using difference_type = value_type; 12329: 12329: private: 12329: typedef _ITp __int_type; 12329: 12329: static constexpr int _S_alignment = 12329: sizeof(_ITp) > alignof(_ITp) ? sizeof(_ITp) : alignof(_ITp); 12329: 12329: alignas(_S_alignment) __int_type _M_i ; 12329: 12329: public: 12329: __atomic_base() noexcept = default; 12329: ~__atomic_base() noexcept = default; 12329: __atomic_base(const __atomic_base&) = delete; 12329: __atomic_base& operator=(const __atomic_base&) = delete; 12329: __atomic_base& operator=(const __atomic_base&) volatile = delete; 12329: 12329: 12329: constexpr __atomic_base(__int_type __i) noexcept : _M_i (__i) { } 12329: 12329: operator __int_type() const noexcept 12329: { return load(); } 12329: 12329: operator __int_type() const volatile noexcept 12329: { return load(); } 12329: 12329: __int_type 12329: operator=(__int_type __i) noexcept 12329: { 12329: store(__i); 12329: return __i; 12329: } 12329: 12329: __int_type 12329: operator=(__int_type __i) volatile noexcept 12329: { 12329: store(__i); 12329: return __i; 12329: } 12329: 12329: __int_type 12329: operator++(int) noexcept 12329: { return fetch_add(1); } 12329: 12329: __int_type 12329: operator++(int) volatile noexcept 12329: { return fetch_add(1); } 12329: 12329: __int_type 12329: operator--(int) noexcept 12329: { return fetch_sub(1); } 12329: 12329: __int_type 12329: operator--(int) volatile noexcept 12329: { return fetch_sub(1); } 12329: 12329: __int_type 12329: operator++() noexcept 12329: { return __atomic_add_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator++() volatile noexcept 12329: { return __atomic_add_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator--() noexcept 12329: { return __atomic_sub_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator--() volatile noexcept 12329: { return __atomic_sub_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator+=(__int_type __i) noexcept 12329: { return __atomic_add_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator+=(__int_type __i) volatile noexcept 12329: { return __atomic_add_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator-=(__int_type __i) noexcept 12329: { return __atomic_sub_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator-=(__int_type __i) volatile noexcept 12329: { return __atomic_sub_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator&=(__int_type __i) noexcept 12329: { return __atomic_and_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator&=(__int_type __i) volatile noexcept 12329: { return __atomic_and_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator|=(__int_type __i) noexcept 12329: { return __atomic_or_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator|=(__int_type __i) volatile noexcept 12329: { return __atomic_or_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator^=(__int_type __i) noexcept 12329: { return __atomic_xor_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 12329: 12329: __int_type 12329: operator^=(__int_type __i) volatile noexcept 12329: { return __atomic_xor_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 12329: 12329: bool 12329: is_lock_free() const noexcept 12329: { 12329: 12329: return __atomic_is_lock_free(sizeof(_M_i), 12329: reinterpret_cast(-_S_alignment)); 12329: } 12329: 12329: bool 12329: is_lock_free() const volatile noexcept 12329: { 12329: 12329: return __atomic_is_lock_free(sizeof(_M_i), 12329: reinterpret_cast(-_S_alignment)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) void 12329: store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept 12329: { 12329: memory_order __b __attribute__ ((__unused__)) 12329: = __m & __memory_order_mask; 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acquire)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_consume)) __builtin_unreachable(); } while (false); 12329: 12329: __atomic_store_n(&_M_i, __i, int(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) void 12329: store(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { 12329: memory_order __b __attribute__ ((__unused__)) 12329: = __m & __memory_order_mask; 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acquire)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_consume)) __builtin_unreachable(); } while (false); 12329: 12329: __atomic_store_n(&_M_i, __i, int(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: load(memory_order __m = memory_order_seq_cst) const noexcept 12329: { 12329: memory_order __b __attribute__ ((__unused__)) 12329: = __m & __memory_order_mask; 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_release)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) __builtin_unreachable(); } while (false); 12329: 12329: return __atomic_load_n(&_M_i, int(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 12329: { 12329: memory_order __b __attribute__ ((__unused__)) 12329: = __m & __memory_order_mask; 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_release)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) __builtin_unreachable(); } while (false); 12329: 12329: return __atomic_load_n(&_M_i, int(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: exchange(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) noexcept 12329: { 12329: return __atomic_exchange_n(&_M_i, __i, int(__m)); 12329: } 12329: 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: exchange(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { 12329: return __atomic_exchange_n(&_M_i, __i, int(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: compare_exchange_weak(__int_type& __i1, __int_type __i2, 12329: memory_order __m1, memory_order __m2) noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) __builtin_unreachable(); } while (false); 12329: 12329: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, 12329: int(__m1), int(__m2)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: compare_exchange_weak(__int_type& __i1, __int_type __i2, 12329: memory_order __m1, 12329: memory_order __m2) volatile noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) __builtin_unreachable(); } while (false); 12329: 12329: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, 12329: int(__m1), int(__m2)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: compare_exchange_weak(__int_type& __i1, __int_type __i2, 12329: memory_order __m = memory_order_seq_cst) noexcept 12329: { 12329: return compare_exchange_weak(__i1, __i2, __m, 12329: __cmpexch_failure_order(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: compare_exchange_weak(__int_type& __i1, __int_type __i2, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { 12329: return compare_exchange_weak(__i1, __i2, __m, 12329: __cmpexch_failure_order(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: compare_exchange_strong(__int_type& __i1, __int_type __i2, 12329: memory_order __m1, memory_order __m2) noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) __builtin_unreachable(); } while (false); 12329: 12329: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, 12329: int(__m1), int(__m2)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: compare_exchange_strong(__int_type& __i1, __int_type __i2, 12329: memory_order __m1, 12329: memory_order __m2) volatile noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) __builtin_unreachable(); } while (false); 12329: 12329: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, 12329: int(__m1), int(__m2)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: compare_exchange_strong(__int_type& __i1, __int_type __i2, 12329: memory_order __m = memory_order_seq_cst) noexcept 12329: { 12329: return compare_exchange_strong(__i1, __i2, __m, 12329: __cmpexch_failure_order(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: compare_exchange_strong(__int_type& __i1, __int_type __i2, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { 12329: return compare_exchange_strong(__i1, __i2, __m, 12329: __cmpexch_failure_order(__m)); 12329: } 12329: # 615 "/usr/include/c++/12/bits/atomic_base.h" 3 12329: inline __attribute__((__always_inline__)) __int_type 12329: fetch_add(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) noexcept 12329: { return __atomic_fetch_add(&_M_i, __i, int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: fetch_add(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { return __atomic_fetch_add(&_M_i, __i, int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: fetch_sub(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) noexcept 12329: { return __atomic_fetch_sub(&_M_i, __i, int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: fetch_sub(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { return __atomic_fetch_sub(&_M_i, __i, int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: fetch_and(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) noexcept 12329: { return __atomic_fetch_and(&_M_i, __i, int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: fetch_and(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { return __atomic_fetch_and(&_M_i, __i, int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: fetch_or(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) noexcept 12329: { return __atomic_fetch_or(&_M_i, __i, int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: fetch_or(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { return __atomic_fetch_or(&_M_i, __i, int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: fetch_xor(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) noexcept 12329: { return __atomic_fetch_xor(&_M_i, __i, int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) __int_type 12329: fetch_xor(__int_type __i, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { return __atomic_fetch_xor(&_M_i, __i, int(__m)); } 12329: }; 12329: 12329: 12329: 12329: template 12329: struct __atomic_base<_PTp*> 12329: { 12329: private: 12329: typedef _PTp* __pointer_type; 12329: 12329: __pointer_type _M_p ; 12329: 12329: 12329: constexpr ptrdiff_t 12329: _M_type_size(ptrdiff_t __d) const { return __d * sizeof(_PTp); } 12329: 12329: constexpr ptrdiff_t 12329: _M_type_size(ptrdiff_t __d) const volatile { return __d * sizeof(_PTp); } 12329: 12329: public: 12329: __atomic_base() noexcept = default; 12329: ~__atomic_base() noexcept = default; 12329: __atomic_base(const __atomic_base&) = delete; 12329: __atomic_base& operator=(const __atomic_base&) = delete; 12329: __atomic_base& operator=(const __atomic_base&) volatile = delete; 12329: 12329: 12329: constexpr __atomic_base(__pointer_type __p) noexcept : _M_p (__p) { } 12329: 12329: operator __pointer_type() const noexcept 12329: { return load(); } 12329: 12329: operator __pointer_type() const volatile noexcept 12329: { return load(); } 12329: 12329: __pointer_type 12329: operator=(__pointer_type __p) noexcept 12329: { 12329: store(__p); 12329: return __p; 12329: } 12329: 12329: __pointer_type 12329: operator=(__pointer_type __p) volatile noexcept 12329: { 12329: store(__p); 12329: return __p; 12329: } 12329: 12329: __pointer_type 12329: operator++(int) noexcept 12329: { return fetch_add(1); } 12329: 12329: __pointer_type 12329: operator++(int) volatile noexcept 12329: { return fetch_add(1); } 12329: 12329: __pointer_type 12329: operator--(int) noexcept 12329: { return fetch_sub(1); } 12329: 12329: __pointer_type 12329: operator--(int) volatile noexcept 12329: { return fetch_sub(1); } 12329: 12329: __pointer_type 12329: operator++() noexcept 12329: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 12329: int(memory_order_seq_cst)); } 12329: 12329: __pointer_type 12329: operator++() volatile noexcept 12329: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 12329: int(memory_order_seq_cst)); } 12329: 12329: __pointer_type 12329: operator--() noexcept 12329: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 12329: int(memory_order_seq_cst)); } 12329: 12329: __pointer_type 12329: operator--() volatile noexcept 12329: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 12329: int(memory_order_seq_cst)); } 12329: 12329: __pointer_type 12329: operator+=(ptrdiff_t __d) noexcept 12329: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 12329: int(memory_order_seq_cst)); } 12329: 12329: __pointer_type 12329: operator+=(ptrdiff_t __d) volatile noexcept 12329: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 12329: int(memory_order_seq_cst)); } 12329: 12329: __pointer_type 12329: operator-=(ptrdiff_t __d) noexcept 12329: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 12329: int(memory_order_seq_cst)); } 12329: 12329: __pointer_type 12329: operator-=(ptrdiff_t __d) volatile noexcept 12329: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 12329: int(memory_order_seq_cst)); } 12329: 12329: bool 12329: is_lock_free() const noexcept 12329: { 12329: 12329: return __atomic_is_lock_free(sizeof(_M_p), 12329: reinterpret_cast(-__alignof(_M_p))); 12329: } 12329: 12329: bool 12329: is_lock_free() const volatile noexcept 12329: { 12329: 12329: return __atomic_is_lock_free(sizeof(_M_p), 12329: reinterpret_cast(-__alignof(_M_p))); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) void 12329: store(__pointer_type __p, 12329: memory_order __m = memory_order_seq_cst) noexcept 12329: { 12329: memory_order __b __attribute__ ((__unused__)) 12329: = __m & __memory_order_mask; 12329: 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acquire)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_consume)) __builtin_unreachable(); } while (false); 12329: 12329: __atomic_store_n(&_M_p, __p, int(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) void 12329: store(__pointer_type __p, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { 12329: memory_order __b __attribute__ ((__unused__)) 12329: = __m & __memory_order_mask; 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acquire)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_consume)) __builtin_unreachable(); } while (false); 12329: 12329: __atomic_store_n(&_M_p, __p, int(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) __pointer_type 12329: load(memory_order __m = memory_order_seq_cst) const noexcept 12329: { 12329: memory_order __b __attribute__ ((__unused__)) 12329: = __m & __memory_order_mask; 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_release)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) __builtin_unreachable(); } while (false); 12329: 12329: return __atomic_load_n(&_M_p, int(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) __pointer_type 12329: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 12329: { 12329: memory_order __b __attribute__ ((__unused__)) 12329: = __m & __memory_order_mask; 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_release)) __builtin_unreachable(); } while (false); 12329: do { if (std::__is_constant_evaluated() && !bool(__b != memory_order_acq_rel)) __builtin_unreachable(); } while (false); 12329: 12329: return __atomic_load_n(&_M_p, int(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) __pointer_type 12329: exchange(__pointer_type __p, 12329: memory_order __m = memory_order_seq_cst) noexcept 12329: { 12329: return __atomic_exchange_n(&_M_p, __p, int(__m)); 12329: } 12329: 12329: 12329: inline __attribute__((__always_inline__)) __pointer_type 12329: exchange(__pointer_type __p, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { 12329: return __atomic_exchange_n(&_M_p, __p, int(__m)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 12329: memory_order __m1, 12329: memory_order __m2) noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) __builtin_unreachable(); } while (false); 12329: 12329: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 1, 12329: int(__m1), int(__m2)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 12329: memory_order __m1, 12329: memory_order __m2) volatile noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) __builtin_unreachable(); } while (false); 12329: 12329: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 1, 12329: int(__m1), int(__m2)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 12329: memory_order __m1, 12329: memory_order __m2) noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) __builtin_unreachable(); } while (false); 12329: 12329: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, 12329: int(__m1), int(__m2)); 12329: } 12329: 12329: inline __attribute__((__always_inline__)) bool 12329: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 12329: memory_order __m1, 12329: memory_order __m2) volatile noexcept 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__is_valid_cmpexch_failure_order(__m2))) __builtin_unreachable(); } while (false); 12329: 12329: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, 12329: int(__m1), int(__m2)); 12329: } 12329: # 918 "/usr/include/c++/12/bits/atomic_base.h" 3 12329: inline __attribute__((__always_inline__)) __pointer_type 12329: fetch_add(ptrdiff_t __d, 12329: memory_order __m = memory_order_seq_cst) noexcept 12329: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) __pointer_type 12329: fetch_add(ptrdiff_t __d, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) __pointer_type 12329: fetch_sub(ptrdiff_t __d, 12329: memory_order __m = memory_order_seq_cst) noexcept 12329: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), int(__m)); } 12329: 12329: inline __attribute__((__always_inline__)) __pointer_type 12329: fetch_sub(ptrdiff_t __d, 12329: memory_order __m = memory_order_seq_cst) volatile noexcept 12329: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), int(__m)); } 12329: }; 12329: # 1943 "/usr/include/c++/12/bits/atomic_base.h" 3 12329: 12329: } 12329: # 34 "/usr/include/c++/12/bits/shared_ptr_atomic.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 47 "/usr/include/c++/12/bits/shared_ptr_atomic.h" 3 12329: struct _Sp_locker 12329: { 12329: _Sp_locker(const _Sp_locker&) = delete; 12329: _Sp_locker& operator=(const _Sp_locker&) = delete; 12329: 12329: 12329: explicit 12329: _Sp_locker(const void*) noexcept; 12329: _Sp_locker(const void*, const void*) noexcept; 12329: ~_Sp_locker(); 12329: 12329: private: 12329: unsigned char _M_key1; 12329: unsigned char _M_key2; 12329: 12329: 12329: 12329: }; 12329: # 74 "/usr/include/c++/12/bits/shared_ptr_atomic.h" 3 12329: template 12329: inline bool 12329: atomic_is_lock_free(const __shared_ptr<_Tp, _Lp>* __p) 12329: { 12329: 12329: return __gthread_active_p() == 0; 12329: 12329: 12329: 12329: } 12329: 12329: template 12329: inline bool 12329: atomic_is_lock_free(const shared_ptr<_Tp>* __p) 12329: { return std::atomic_is_lock_free<_Tp, __default_lock_policy>(__p); } 12329: # 101 "/usr/include/c++/12/bits/shared_ptr_atomic.h" 3 12329: template 12329: inline shared_ptr<_Tp> 12329: atomic_load_explicit(const shared_ptr<_Tp>* __p, memory_order) 12329: { 12329: _Sp_locker __lock{__p}; 12329: return *__p; 12329: } 12329: 12329: template 12329: inline shared_ptr<_Tp> 12329: atomic_load(const shared_ptr<_Tp>* __p) 12329: { return std::atomic_load_explicit(__p, memory_order_seq_cst); } 12329: 12329: template 12329: inline __shared_ptr<_Tp, _Lp> 12329: atomic_load_explicit(const __shared_ptr<_Tp, _Lp>* __p, memory_order) 12329: { 12329: _Sp_locker __lock{__p}; 12329: return *__p; 12329: } 12329: 12329: template 12329: inline __shared_ptr<_Tp, _Lp> 12329: atomic_load(const __shared_ptr<_Tp, _Lp>* __p) 12329: { return std::atomic_load_explicit(__p, memory_order_seq_cst); } 12329: # 137 "/usr/include/c++/12/bits/shared_ptr_atomic.h" 3 12329: template 12329: inline void 12329: atomic_store_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, 12329: memory_order) 12329: { 12329: _Sp_locker __lock{__p}; 12329: __p->swap(__r); 12329: } 12329: 12329: template 12329: inline void 12329: atomic_store(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) 12329: { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); } 12329: 12329: template 12329: inline void 12329: atomic_store_explicit(__shared_ptr<_Tp, _Lp>* __p, 12329: __shared_ptr<_Tp, _Lp> __r, 12329: memory_order) 12329: { 12329: _Sp_locker __lock{__p}; 12329: __p->swap(__r); 12329: } 12329: 12329: template 12329: inline void 12329: atomic_store(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r) 12329: { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); } 12329: # 174 "/usr/include/c++/12/bits/shared_ptr_atomic.h" 3 12329: template 12329: inline shared_ptr<_Tp> 12329: atomic_exchange_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, 12329: memory_order) 12329: { 12329: _Sp_locker __lock{__p}; 12329: __p->swap(__r); 12329: return __r; 12329: } 12329: 12329: template 12329: inline shared_ptr<_Tp> 12329: atomic_exchange(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) 12329: { 12329: return std::atomic_exchange_explicit(__p, std::move(__r), 12329: memory_order_seq_cst); 12329: } 12329: 12329: template 12329: inline __shared_ptr<_Tp, _Lp> 12329: atomic_exchange_explicit(__shared_ptr<_Tp, _Lp>* __p, 12329: __shared_ptr<_Tp, _Lp> __r, 12329: memory_order) 12329: { 12329: _Sp_locker __lock{__p}; 12329: __p->swap(__r); 12329: return __r; 12329: } 12329: 12329: template 12329: inline __shared_ptr<_Tp, _Lp> 12329: atomic_exchange(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r) 12329: { 12329: return std::atomic_exchange_explicit(__p, std::move(__r), 12329: memory_order_seq_cst); 12329: } 12329: # 223 "/usr/include/c++/12/bits/shared_ptr_atomic.h" 3 12329: template 12329: bool 12329: atomic_compare_exchange_strong_explicit(shared_ptr<_Tp>* __p, 12329: shared_ptr<_Tp>* __v, 12329: shared_ptr<_Tp> __w, 12329: memory_order, 12329: memory_order) 12329: { 12329: shared_ptr<_Tp> __x; 12329: _Sp_locker __lock{__p, __v}; 12329: owner_less> __less; 12329: if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p)) 12329: { 12329: __x = std::move(*__p); 12329: *__p = std::move(__w); 12329: return true; 12329: } 12329: __x = std::move(*__v); 12329: *__v = *__p; 12329: return false; 12329: } 12329: 12329: template 12329: inline bool 12329: atomic_compare_exchange_strong(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, 12329: shared_ptr<_Tp> __w) 12329: { 12329: return std::atomic_compare_exchange_strong_explicit(__p, __v, 12329: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 12329: } 12329: 12329: template 12329: inline bool 12329: atomic_compare_exchange_weak_explicit(shared_ptr<_Tp>* __p, 12329: shared_ptr<_Tp>* __v, 12329: shared_ptr<_Tp> __w, 12329: memory_order __success, 12329: memory_order __failure) 12329: { 12329: return std::atomic_compare_exchange_strong_explicit(__p, __v, 12329: std::move(__w), __success, __failure); 12329: } 12329: 12329: template 12329: inline bool 12329: atomic_compare_exchange_weak(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, 12329: shared_ptr<_Tp> __w) 12329: { 12329: return std::atomic_compare_exchange_weak_explicit(__p, __v, 12329: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 12329: } 12329: 12329: template 12329: bool 12329: atomic_compare_exchange_strong_explicit(__shared_ptr<_Tp, _Lp>* __p, 12329: __shared_ptr<_Tp, _Lp>* __v, 12329: __shared_ptr<_Tp, _Lp> __w, 12329: memory_order, 12329: memory_order) 12329: { 12329: __shared_ptr<_Tp, _Lp> __x; 12329: _Sp_locker __lock{__p, __v}; 12329: owner_less<__shared_ptr<_Tp, _Lp>> __less; 12329: if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p)) 12329: { 12329: __x = std::move(*__p); 12329: *__p = std::move(__w); 12329: return true; 12329: } 12329: __x = std::move(*__v); 12329: *__v = *__p; 12329: return false; 12329: } 12329: 12329: template 12329: inline bool 12329: atomic_compare_exchange_strong(__shared_ptr<_Tp, _Lp>* __p, 12329: __shared_ptr<_Tp, _Lp>* __v, 12329: __shared_ptr<_Tp, _Lp> __w) 12329: { 12329: return std::atomic_compare_exchange_strong_explicit(__p, __v, 12329: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 12329: } 12329: 12329: template 12329: inline bool 12329: atomic_compare_exchange_weak_explicit(__shared_ptr<_Tp, _Lp>* __p, 12329: __shared_ptr<_Tp, _Lp>* __v, 12329: __shared_ptr<_Tp, _Lp> __w, 12329: memory_order __success, 12329: memory_order __failure) 12329: { 12329: return std::atomic_compare_exchange_strong_explicit(__p, __v, 12329: std::move(__w), __success, __failure); 12329: } 12329: 12329: template 12329: inline bool 12329: atomic_compare_exchange_weak(__shared_ptr<_Tp, _Lp>* __p, 12329: __shared_ptr<_Tp, _Lp>* __v, 12329: __shared_ptr<_Tp, _Lp> __w) 12329: { 12329: return std::atomic_compare_exchange_weak_explicit(__p, __v, 12329: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 12329: } 12329: # 796 "/usr/include/c++/12/bits/shared_ptr_atomic.h" 3 12329: 12329: } 12329: # 79 "/usr/include/c++/12/memory" 2 3 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/backward/auto_ptr.h" 1 3 12329: # 36 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 47 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: template 12329: struct auto_ptr_ref 12329: { 12329: _Tp1* _M_ptr; 12329: 12329: explicit 12329: auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { } 12329: } __attribute__ ((__deprecated__)); 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: # 88 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: template 12329: class auto_ptr 12329: { 12329: private: 12329: _Tp* _M_ptr; 12329: 12329: public: 12329: 12329: typedef _Tp element_type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { } 12329: # 114 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { } 12329: # 126 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: template 12329: auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { } 12329: # 137 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: auto_ptr& 12329: operator=(auto_ptr& __a) throw() 12329: { 12329: reset(__a.release()); 12329: return *this; 12329: } 12329: # 154 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: template 12329: auto_ptr& 12329: operator=(auto_ptr<_Tp1>& __a) throw() 12329: { 12329: reset(__a.release()); 12329: return *this; 12329: } 12329: # 172 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: ~auto_ptr() { delete _M_ptr; } 12329: # 182 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: element_type& 12329: operator*() const throw() 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(_M_ptr != 0)) __builtin_unreachable(); } while (false); 12329: return *_M_ptr; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: element_type* 12329: operator->() const throw() 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(_M_ptr != 0)) __builtin_unreachable(); } while (false); 12329: return _M_ptr; 12329: } 12329: # 212 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: element_type* 12329: get() const throw() { return _M_ptr; } 12329: # 226 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: element_type* 12329: release() throw() 12329: { 12329: element_type* __tmp = _M_ptr; 12329: _M_ptr = 0; 12329: return __tmp; 12329: } 12329: # 241 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: void 12329: reset(element_type* __p = 0) throw() 12329: { 12329: if (__p != _M_ptr) 12329: { 12329: delete _M_ptr; 12329: _M_ptr = __p; 12329: } 12329: } 12329: # 266 "/usr/include/c++/12/backward/auto_ptr.h" 3 12329: auto_ptr(auto_ptr_ref __ref) throw() 12329: : _M_ptr(__ref._M_ptr) { } 12329: 12329: auto_ptr& 12329: operator=(auto_ptr_ref __ref) throw() 12329: { 12329: if (__ref._M_ptr != this->get()) 12329: { 12329: delete _M_ptr; 12329: _M_ptr = __ref._M_ptr; 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: operator auto_ptr_ref<_Tp1>() throw() 12329: { return auto_ptr_ref<_Tp1>(this->release()); } 12329: 12329: template 12329: operator auto_ptr<_Tp1>() throw() 12329: { return auto_ptr<_Tp1>(this->release()); } 12329: } __attribute__ ((__deprecated__ ("use '" "std::unique_ptr" "' instead"))); 12329: 12329: 12329: 12329: template<> 12329: class auto_ptr 12329: { 12329: public: 12329: typedef void element_type; 12329: } __attribute__ ((__deprecated__)); 12329: 12329: 12329: template<_Lock_policy _Lp> 12329: template 12329: inline 12329: __shared_count<_Lp>::__shared_count(std::auto_ptr<_Tp>&& __r) 12329: : _M_pi(new _Sp_counted_ptr<_Tp*, _Lp>(__r.get())) 12329: { __r.release(); } 12329: 12329: template 12329: template 12329: inline 12329: __shared_ptr<_Tp, _Lp>::__shared_ptr(std::auto_ptr<_Tp1>&& __r) 12329: : _M_ptr(__r.get()), _M_refcount() 12329: { 12329: 12329: static_assert( sizeof(_Tp1) > 0, "incomplete type" ); 12329: _Tp1* __tmp = __r.get(); 12329: _M_refcount = __shared_count<_Lp>(std::move(__r)); 12329: _M_enable_shared_from_this_with(__tmp); 12329: } 12329: 12329: template 12329: template 12329: inline 12329: shared_ptr<_Tp>::shared_ptr(std::auto_ptr<_Tp1>&& __r) 12329: : __shared_ptr<_Tp>(std::move(__r)) { } 12329: 12329: template 12329: template 12329: inline 12329: unique_ptr<_Tp, _Dp>::unique_ptr(auto_ptr<_Up>&& __u) noexcept 12329: : _M_t(__u.release(), deleter_type()) { } 12329: 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: } 12329: # 83 "/usr/include/c++/12/memory" 2 3 12329: # 91 "/usr/include/c++/12/memory" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 109 "/usr/include/c++/12/memory" 3 12329: enum class pointer_safety { relaxed, preferred, strict }; 12329: 12329: 12329: inline void 12329: declare_reachable(void*) { } 12329: 12329: 12329: template 12329: inline _Tp* 12329: undeclare_reachable(_Tp* __p) { return __p; } 12329: 12329: 12329: inline void 12329: declare_no_pointers(char*, size_t) { } 12329: 12329: 12329: inline void 12329: undeclare_no_pointers(char*, size_t) { } 12329: 12329: 12329: inline pointer_safety 12329: get_pointer_safety() noexcept { return pointer_safety::relaxed; } 12329: 12329: 12329: 12329: } 12329: # 17 "/usr/include/boost/function/function_base.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/assert.hpp" 1 3 4 12329: # 58 "/usr/include/boost/assert.hpp" 3 4 12329: # 1 "/usr/include/assert.h" 1 3 4 12329: # 59 "/usr/include/boost/assert.hpp" 2 3 4 12329: # 20 "/usr/include/boost/function/function_base.hpp" 2 3 4 12329: # 1 "/usr/include/boost/integer.hpp" 1 3 4 12329: # 18 "/usr/include/boost/integer.hpp" 3 4 12329: # 1 "/usr/include/boost/integer_fwd.hpp" 1 3 4 12329: # 12 "/usr/include/boost/integer_fwd.hpp" 3 4 12329: # 1 "/usr/include/c++/12/climits" 1 3 4 12329: # 39 "/usr/include/c++/12/climits" 3 4 12329: 12329: # 40 "/usr/include/c++/12/climits" 3 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 1 3 4 12329: # 34 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 3 4 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/syslimits.h" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 1 3 4 12329: # 203 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 3 4 12329: # 1 "/usr/include/limits.h" 1 3 4 12329: # 26 "/usr/include/limits.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/libc-header-start.h" 1 3 4 12329: # 27 "/usr/include/limits.h" 2 3 4 12329: # 195 "/usr/include/limits.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/posix1_lim.h" 1 3 4 12329: # 27 "/usr/include/aarch64-linux-gnu/bits/posix1_lim.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4 12329: # 28 "/usr/include/aarch64-linux-gnu/bits/posix1_lim.h" 2 3 4 12329: # 161 "/usr/include/aarch64-linux-gnu/bits/posix1_lim.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/local_lim.h" 1 3 4 12329: # 38 "/usr/include/aarch64-linux-gnu/bits/local_lim.h" 3 4 12329: # 1 "/usr/include/linux/limits.h" 1 3 4 12329: # 39 "/usr/include/aarch64-linux-gnu/bits/local_lim.h" 2 3 4 12329: # 162 "/usr/include/aarch64-linux-gnu/bits/posix1_lim.h" 2 3 4 12329: # 196 "/usr/include/limits.h" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/posix2_lim.h" 1 3 4 12329: # 200 "/usr/include/limits.h" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/xopen_lim.h" 1 3 4 12329: # 64 "/usr/include/aarch64-linux-gnu/bits/xopen_lim.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/uio_lim.h" 1 3 4 12329: # 65 "/usr/include/aarch64-linux-gnu/bits/xopen_lim.h" 2 3 4 12329: # 204 "/usr/include/limits.h" 2 3 4 12329: # 204 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 2 3 4 12329: # 8 "/usr/lib/gcc/aarch64-linux-gnu/12/include/syslimits.h" 2 3 4 12329: # 35 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 2 3 4 12329: # 43 "/usr/include/c++/12/climits" 2 3 12329: # 13 "/usr/include/boost/integer_fwd.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/limits.hpp" 1 3 4 12329: # 19 "/usr/include/boost/limits.hpp" 3 4 12329: # 1 "/usr/include/c++/12/limits" 1 3 4 12329: # 40 "/usr/include/c++/12/limits" 3 4 12329: 12329: # 41 "/usr/include/c++/12/limits" 3 12329: # 158 "/usr/include/c++/12/limits" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: enum float_round_style 12329: { 12329: round_indeterminate = -1, 12329: round_toward_zero = 0, 12329: round_to_nearest = 1, 12329: round_toward_infinity = 2, 12329: round_toward_neg_infinity = 3 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: enum float_denorm_style 12329: { 12329: 12329: denorm_indeterminate = -1, 12329: 12329: denorm_absent = 0, 12329: 12329: denorm_present = 1 12329: }; 12329: # 202 "/usr/include/c++/12/limits" 3 12329: struct __numeric_limits_base 12329: { 12329: 12329: 12329: static constexpr bool is_specialized = false; 12329: 12329: 12329: 12329: 12329: static constexpr int digits = 0; 12329: 12329: 12329: static constexpr int digits10 = 0; 12329: 12329: 12329: 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: 12329: 12329: static constexpr bool is_signed = false; 12329: 12329: 12329: static constexpr bool is_integer = false; 12329: 12329: 12329: 12329: 12329: static constexpr bool is_exact = false; 12329: 12329: 12329: 12329: static constexpr int radix = 0; 12329: 12329: 12329: 12329: static constexpr int min_exponent = 0; 12329: 12329: 12329: 12329: static constexpr int min_exponent10 = 0; 12329: 12329: 12329: 12329: 12329: static constexpr int max_exponent = 0; 12329: 12329: 12329: 12329: static constexpr int max_exponent10 = 0; 12329: 12329: 12329: static constexpr bool has_infinity = false; 12329: 12329: 12329: 12329: static constexpr bool has_quiet_NaN = false; 12329: 12329: 12329: 12329: static constexpr bool has_signaling_NaN = false; 12329: 12329: 12329: static constexpr float_denorm_style has_denorm = denorm_absent; 12329: 12329: 12329: 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: 12329: 12329: static constexpr bool is_iec559 = false; 12329: 12329: 12329: 12329: 12329: static constexpr bool is_bounded = false; 12329: # 288 "/usr/include/c++/12/limits" 3 12329: static constexpr bool is_modulo = false; 12329: 12329: 12329: static constexpr bool traps = false; 12329: 12329: 12329: static constexpr bool tinyness_before = false; 12329: 12329: 12329: 12329: 12329: static constexpr float_round_style round_style = 12329: round_toward_zero; 12329: }; 12329: # 311 "/usr/include/c++/12/limits" 3 12329: template 12329: struct numeric_limits : public __numeric_limits_base 12329: { 12329: 12329: 12329: static constexpr _Tp 12329: min() noexcept { return _Tp(); } 12329: 12329: 12329: static constexpr _Tp 12329: max() noexcept { return _Tp(); } 12329: 12329: 12329: 12329: 12329: static constexpr _Tp 12329: lowest() noexcept { return _Tp(); } 12329: 12329: 12329: 12329: 12329: static constexpr _Tp 12329: epsilon() noexcept { return _Tp(); } 12329: 12329: 12329: static constexpr _Tp 12329: round_error() noexcept { return _Tp(); } 12329: 12329: 12329: static constexpr _Tp 12329: infinity() noexcept { return _Tp(); } 12329: 12329: 12329: 12329: static constexpr _Tp 12329: quiet_NaN() noexcept { return _Tp(); } 12329: 12329: 12329: 12329: static constexpr _Tp 12329: signaling_NaN() noexcept { return _Tp(); } 12329: 12329: 12329: 12329: 12329: static constexpr _Tp 12329: denorm_min() noexcept { return _Tp(); } 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: struct numeric_limits 12329: : public numeric_limits<_Tp> { }; 12329: 12329: template 12329: struct numeric_limits 12329: : public numeric_limits<_Tp> { }; 12329: 12329: template 12329: struct numeric_limits 12329: : public numeric_limits<_Tp> { }; 12329: # 383 "/usr/include/c++/12/limits" 3 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr bool 12329: min() noexcept { return false; } 12329: 12329: static constexpr bool 12329: max() noexcept { return true; } 12329: 12329: 12329: static constexpr bool 12329: lowest() noexcept { return min(); } 12329: 12329: static constexpr int digits = 1; 12329: static constexpr int digits10 = 0; 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = false; 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr bool 12329: epsilon() noexcept { return false; } 12329: 12329: static constexpr bool 12329: round_error() noexcept { return false; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr bool 12329: infinity() noexcept { return false; } 12329: 12329: static constexpr bool 12329: quiet_NaN() noexcept { return false; } 12329: 12329: static constexpr bool 12329: signaling_NaN() noexcept { return false; } 12329: 12329: static constexpr bool 12329: denorm_min() noexcept { return false; } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = false; 12329: 12329: 12329: 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr char 12329: min() noexcept { return (((char)(-1) < 0) ? -(((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0) - 1 : (char)0); } 12329: 12329: static constexpr char 12329: max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } 12329: 12329: 12329: static constexpr char 12329: lowest() noexcept { return min(); } 12329: 12329: 12329: static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); 12329: static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = ((char)(-1) < 0); 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr char 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr char 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr 12329: char infinity() noexcept { return char(); } 12329: 12329: static constexpr char 12329: quiet_NaN() noexcept { return char(); } 12329: 12329: static constexpr char 12329: signaling_NaN() noexcept { return char(); } 12329: 12329: static constexpr char 12329: denorm_min() noexcept { return static_cast(0); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = !is_signed; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr signed char 12329: min() noexcept { return -0x7f - 1; } 12329: 12329: static constexpr signed char 12329: max() noexcept { return 0x7f; } 12329: 12329: 12329: static constexpr signed char 12329: lowest() noexcept { return min(); } 12329: 12329: 12329: static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); 12329: static constexpr int digits10 12329: = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = true; 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr signed char 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr signed char 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr signed char 12329: infinity() noexcept { return static_cast(0); } 12329: 12329: static constexpr signed char 12329: quiet_NaN() noexcept { return static_cast(0); } 12329: 12329: static constexpr signed char 12329: signaling_NaN() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr signed char 12329: denorm_min() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = false; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr unsigned char 12329: min() noexcept { return 0; } 12329: 12329: static constexpr unsigned char 12329: max() noexcept { return 0x7f * 2U + 1; } 12329: 12329: 12329: static constexpr unsigned char 12329: lowest() noexcept { return min(); } 12329: 12329: 12329: static constexpr int digits 12329: = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); 12329: static constexpr int digits10 12329: = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = false; 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr unsigned char 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr unsigned char 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr unsigned char 12329: infinity() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned char 12329: quiet_NaN() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned char 12329: signaling_NaN() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned char 12329: denorm_min() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = true; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr wchar_t 12329: min() noexcept { return (((wchar_t)(-1) < 0) ? -(((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0) - 1 : (wchar_t)0); } 12329: 12329: static constexpr wchar_t 12329: max() noexcept { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); } 12329: 12329: 12329: static constexpr wchar_t 12329: lowest() noexcept { return min(); } 12329: 12329: 12329: static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); 12329: static constexpr int digits10 12329: = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = ((wchar_t)(-1) < 0); 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr wchar_t 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr wchar_t 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr wchar_t 12329: infinity() noexcept { return wchar_t(); } 12329: 12329: static constexpr wchar_t 12329: quiet_NaN() noexcept { return wchar_t(); } 12329: 12329: static constexpr wchar_t 12329: signaling_NaN() noexcept { return wchar_t(); } 12329: 12329: static constexpr wchar_t 12329: denorm_min() noexcept { return wchar_t(); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = !is_signed; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: # 796 "/usr/include/c++/12/limits" 3 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr char16_t 12329: min() noexcept { return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); } 12329: 12329: static constexpr char16_t 12329: max() noexcept { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); } 12329: 12329: static constexpr char16_t 12329: lowest() noexcept { return min(); } 12329: 12329: static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); 12329: static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); 12329: static constexpr int max_digits10 = 0; 12329: static constexpr bool is_signed = ((char16_t)(-1) < 0); 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr char16_t 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr char16_t 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr char16_t 12329: infinity() noexcept { return char16_t(); } 12329: 12329: static constexpr char16_t 12329: quiet_NaN() noexcept { return char16_t(); } 12329: 12329: static constexpr char16_t 12329: signaling_NaN() noexcept { return char16_t(); } 12329: 12329: static constexpr char16_t 12329: denorm_min() noexcept { return char16_t(); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = !is_signed; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style = round_toward_zero; 12329: }; 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr char32_t 12329: min() noexcept { return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); } 12329: 12329: static constexpr char32_t 12329: max() noexcept { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); } 12329: 12329: static constexpr char32_t 12329: lowest() noexcept { return min(); } 12329: 12329: static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); 12329: static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); 12329: static constexpr int max_digits10 = 0; 12329: static constexpr bool is_signed = ((char32_t)(-1) < 0); 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr char32_t 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr char32_t 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr char32_t 12329: infinity() noexcept { return char32_t(); } 12329: 12329: static constexpr char32_t 12329: quiet_NaN() noexcept { return char32_t(); } 12329: 12329: static constexpr char32_t 12329: signaling_NaN() noexcept { return char32_t(); } 12329: 12329: static constexpr char32_t 12329: denorm_min() noexcept { return char32_t(); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = !is_signed; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style = round_toward_zero; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr short 12329: min() noexcept { return -0x7fff - 1; } 12329: 12329: static constexpr short 12329: max() noexcept { return 0x7fff; } 12329: 12329: 12329: static constexpr short 12329: lowest() noexcept { return min(); } 12329: 12329: 12329: static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); 12329: static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = true; 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr short 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr short 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr short 12329: infinity() noexcept { return short(); } 12329: 12329: static constexpr short 12329: quiet_NaN() noexcept { return short(); } 12329: 12329: static constexpr short 12329: signaling_NaN() noexcept { return short(); } 12329: 12329: static constexpr short 12329: denorm_min() noexcept { return short(); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = false; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr unsigned short 12329: min() noexcept { return 0; } 12329: 12329: static constexpr unsigned short 12329: max() noexcept { return 0x7fff * 2U + 1; } 12329: 12329: 12329: static constexpr unsigned short 12329: lowest() noexcept { return min(); } 12329: 12329: 12329: static constexpr int digits 12329: = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); 12329: static constexpr int digits10 12329: = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = false; 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr unsigned short 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr unsigned short 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr unsigned short 12329: infinity() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned short 12329: quiet_NaN() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned short 12329: signaling_NaN() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned short 12329: denorm_min() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = true; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr int 12329: min() noexcept { return -0x7fffffff - 1; } 12329: 12329: static constexpr int 12329: max() noexcept { return 0x7fffffff; } 12329: 12329: 12329: static constexpr int 12329: lowest() noexcept { return min(); } 12329: 12329: 12329: static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); 12329: static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = true; 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr int 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr int 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr int 12329: infinity() noexcept { return static_cast(0); } 12329: 12329: static constexpr int 12329: quiet_NaN() noexcept { return static_cast(0); } 12329: 12329: static constexpr int 12329: signaling_NaN() noexcept { return static_cast(0); } 12329: 12329: static constexpr int 12329: denorm_min() noexcept { return static_cast(0); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = false; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr unsigned int 12329: min() noexcept { return 0; } 12329: 12329: static constexpr unsigned int 12329: max() noexcept { return 0x7fffffff * 2U + 1; } 12329: 12329: 12329: static constexpr unsigned int 12329: lowest() noexcept { return min(); } 12329: 12329: 12329: static constexpr int digits 12329: = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); 12329: static constexpr int digits10 12329: = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = false; 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr unsigned int 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr unsigned int 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr unsigned int 12329: infinity() noexcept { return static_cast(0); } 12329: 12329: static constexpr unsigned int 12329: quiet_NaN() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned int 12329: signaling_NaN() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned int 12329: denorm_min() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = true; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr long 12329: min() noexcept { return -0x7fffffffffffffffL - 1; } 12329: 12329: static constexpr long 12329: max() noexcept { return 0x7fffffffffffffffL; } 12329: 12329: 12329: static constexpr long 12329: lowest() noexcept { return min(); } 12329: 12329: 12329: static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); 12329: static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = true; 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr long 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr long 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr long 12329: infinity() noexcept { return static_cast(0); } 12329: 12329: static constexpr long 12329: quiet_NaN() noexcept { return static_cast(0); } 12329: 12329: static constexpr long 12329: signaling_NaN() noexcept { return static_cast(0); } 12329: 12329: static constexpr long 12329: denorm_min() noexcept { return static_cast(0); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = false; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr unsigned long 12329: min() noexcept { return 0; } 12329: 12329: static constexpr unsigned long 12329: max() noexcept { return 0x7fffffffffffffffL * 2UL + 1; } 12329: 12329: 12329: static constexpr unsigned long 12329: lowest() noexcept { return min(); } 12329: 12329: 12329: static constexpr int digits 12329: = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); 12329: static constexpr int digits10 12329: = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = false; 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr unsigned long 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr unsigned long 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr unsigned long 12329: infinity() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned long 12329: quiet_NaN() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned long 12329: signaling_NaN() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned long 12329: denorm_min() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = true; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr long long 12329: min() noexcept { return -0x7fffffffffffffffLL - 1; } 12329: 12329: static constexpr long long 12329: max() noexcept { return 0x7fffffffffffffffLL; } 12329: 12329: 12329: static constexpr long long 12329: lowest() noexcept { return min(); } 12329: 12329: 12329: static constexpr int digits 12329: = (sizeof(long long) * 8 - ((long long)(-1) < 0)); 12329: static constexpr int digits10 12329: = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = true; 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr long long 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr long long 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr long long 12329: infinity() noexcept { return static_cast(0); } 12329: 12329: static constexpr long long 12329: quiet_NaN() noexcept { return static_cast(0); } 12329: 12329: static constexpr long long 12329: signaling_NaN() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr long long 12329: denorm_min() noexcept { return static_cast(0); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = false; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr unsigned long long 12329: min() noexcept { return 0; } 12329: 12329: static constexpr unsigned long long 12329: max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } 12329: 12329: 12329: static constexpr unsigned long long 12329: lowest() noexcept { return min(); } 12329: 12329: 12329: static constexpr int digits 12329: = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); 12329: static constexpr int digits10 12329: = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); 12329: 12329: static constexpr int max_digits10 = 0; 12329: 12329: static constexpr bool is_signed = false; 12329: static constexpr bool is_integer = true; 12329: static constexpr bool is_exact = true; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr unsigned long long 12329: epsilon() noexcept { return 0; } 12329: 12329: static constexpr unsigned long long 12329: round_error() noexcept { return 0; } 12329: 12329: static constexpr int min_exponent = 0; 12329: static constexpr int min_exponent10 = 0; 12329: static constexpr int max_exponent = 0; 12329: static constexpr int max_exponent10 = 0; 12329: 12329: static constexpr bool has_infinity = false; 12329: static constexpr bool has_quiet_NaN = false; 12329: static constexpr bool has_signaling_NaN = false; 12329: static constexpr float_denorm_style has_denorm 12329: = denorm_absent; 12329: static constexpr bool has_denorm_loss = false; 12329: 12329: static constexpr unsigned long long 12329: infinity() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned long long 12329: quiet_NaN() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned long long 12329: signaling_NaN() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr unsigned long long 12329: denorm_min() noexcept 12329: { return static_cast(0); } 12329: 12329: static constexpr bool is_iec559 = false; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = true; 12329: 12329: static constexpr bool traps = true; 12329: static constexpr bool tinyness_before = false; 12329: static constexpr float_round_style round_style 12329: = round_toward_zero; 12329: }; 12329: # 1658 "/usr/include/c++/12/limits" 3 12329: __extension__ template<> struct numeric_limits<__int128> { static constexpr bool is_specialized = true; static constexpr __int128 min() noexcept { return (((__int128)(-1) < 0) ? -(((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0) - 1 : (__int128)0); } static constexpr __int128 max() noexcept { return (((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0); } static constexpr int digits = 128 - 1; static constexpr int digits10 = (128 - 1) * 643L / 2136; static constexpr bool is_signed = true; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr __int128 epsilon() noexcept { return 0; } static constexpr __int128 round_error() noexcept { return 0; } static constexpr __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr __int128 infinity() noexcept { return static_cast<__int128>(0); } static constexpr __int128 quiet_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 signaling_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 denorm_min() noexcept { return static_cast<__int128>(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; __extension__ template<> struct numeric_limits { static constexpr bool is_specialized = true; static constexpr unsigned __int128 min() noexcept { return 0; } static constexpr unsigned __int128 max() noexcept { return (((unsigned __int128)(-1) < 0) ? (((((unsigned __int128)1 << ((128 - ((unsigned __int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(unsigned __int128)0); } static constexpr unsigned __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int digits = 128; static constexpr int digits10 = 128 * 643L / 2136; static constexpr bool is_signed = false; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr unsigned __int128 epsilon() noexcept { return 0; } static constexpr unsigned __int128 round_error() noexcept { return 0; } static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr unsigned __int128 infinity() noexcept { return static_cast(0); } static constexpr unsigned __int128 quiet_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 signaling_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 denorm_min() noexcept { return static_cast(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = true; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; 12329: # 1669 "/usr/include/c++/12/limits" 3 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr float 12329: min() noexcept { return 1.17549435082228750796873653722224568e-38F; } 12329: 12329: static constexpr float 12329: max() noexcept { return 3.40282346638528859811704183484516925e+38F; } 12329: 12329: 12329: static constexpr float 12329: lowest() noexcept { return -3.40282346638528859811704183484516925e+38F; } 12329: 12329: 12329: static constexpr int digits = 24; 12329: static constexpr int digits10 = 6; 12329: 12329: static constexpr int max_digits10 12329: = (2 + (24) * 643L / 2136); 12329: 12329: static constexpr bool is_signed = true; 12329: static constexpr bool is_integer = false; 12329: static constexpr bool is_exact = false; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr float 12329: epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F; } 12329: 12329: static constexpr float 12329: round_error() noexcept { return 0.5F; } 12329: 12329: static constexpr int min_exponent = (-125); 12329: static constexpr int min_exponent10 = (-37); 12329: static constexpr int max_exponent = 128; 12329: static constexpr int max_exponent10 = 38; 12329: 12329: static constexpr bool has_infinity = 1; 12329: static constexpr bool has_quiet_NaN = 1; 12329: static constexpr bool has_signaling_NaN = has_quiet_NaN; 12329: static constexpr float_denorm_style has_denorm 12329: = bool(1) ? denorm_present : denorm_absent; 12329: static constexpr bool has_denorm_loss 12329: = false; 12329: 12329: static constexpr float 12329: infinity() noexcept { return __builtin_huge_valf(); } 12329: 12329: static constexpr float 12329: quiet_NaN() noexcept { return __builtin_nanf(""); } 12329: 12329: static constexpr float 12329: signaling_NaN() noexcept { return __builtin_nansf(""); } 12329: 12329: static constexpr float 12329: denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F; } 12329: 12329: static constexpr bool is_iec559 12329: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = false; 12329: 12329: static constexpr bool traps = false; 12329: static constexpr bool tinyness_before 12329: = false; 12329: static constexpr float_round_style round_style 12329: = round_to_nearest; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr double 12329: min() noexcept { return double(2.22507385850720138309023271733240406e-308L); } 12329: 12329: static constexpr double 12329: max() noexcept { return double(1.79769313486231570814527423731704357e+308L); } 12329: 12329: 12329: static constexpr double 12329: lowest() noexcept { return -double(1.79769313486231570814527423731704357e+308L); } 12329: 12329: 12329: static constexpr int digits = 53; 12329: static constexpr int digits10 = 15; 12329: 12329: static constexpr int max_digits10 12329: = (2 + (53) * 643L / 2136); 12329: 12329: static constexpr bool is_signed = true; 12329: static constexpr bool is_integer = false; 12329: static constexpr bool is_exact = false; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr double 12329: epsilon() noexcept { return double(2.22044604925031308084726333618164062e-16L); } 12329: 12329: static constexpr double 12329: round_error() noexcept { return 0.5; } 12329: 12329: static constexpr int min_exponent = (-1021); 12329: static constexpr int min_exponent10 = (-307); 12329: static constexpr int max_exponent = 1024; 12329: static constexpr int max_exponent10 = 308; 12329: 12329: static constexpr bool has_infinity = 1; 12329: static constexpr bool has_quiet_NaN = 1; 12329: static constexpr bool has_signaling_NaN = has_quiet_NaN; 12329: static constexpr float_denorm_style has_denorm 12329: = bool(1) ? denorm_present : denorm_absent; 12329: static constexpr bool has_denorm_loss 12329: = false; 12329: 12329: static constexpr double 12329: infinity() noexcept { return __builtin_huge_val(); } 12329: 12329: static constexpr double 12329: quiet_NaN() noexcept { return __builtin_nan(""); } 12329: 12329: static constexpr double 12329: signaling_NaN() noexcept { return __builtin_nans(""); } 12329: 12329: static constexpr double 12329: denorm_min() noexcept { return double(4.94065645841246544176568792868221372e-324L); } 12329: 12329: static constexpr bool is_iec559 12329: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = false; 12329: 12329: static constexpr bool traps = false; 12329: static constexpr bool tinyness_before 12329: = false; 12329: static constexpr float_round_style round_style 12329: = round_to_nearest; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: struct numeric_limits 12329: { 12329: static constexpr bool is_specialized = true; 12329: 12329: static constexpr long double 12329: min() noexcept { return 3.36210314311209350626267781732175260e-4932L; } 12329: 12329: static constexpr long double 12329: max() noexcept { return 1.18973149535723176508575932662800702e+4932L; } 12329: 12329: 12329: static constexpr long double 12329: lowest() noexcept { return -1.18973149535723176508575932662800702e+4932L; } 12329: 12329: 12329: static constexpr int digits = 113; 12329: static constexpr int digits10 = 33; 12329: 12329: static constexpr int max_digits10 12329: = (2 + (113) * 643L / 2136); 12329: 12329: static constexpr bool is_signed = true; 12329: static constexpr bool is_integer = false; 12329: static constexpr bool is_exact = false; 12329: static constexpr int radix = 2; 12329: 12329: static constexpr long double 12329: epsilon() noexcept { return 1.92592994438723585305597794258492732e-34L; } 12329: 12329: static constexpr long double 12329: round_error() noexcept { return 0.5L; } 12329: 12329: static constexpr int min_exponent = (-16381); 12329: static constexpr int min_exponent10 = (-4931); 12329: static constexpr int max_exponent = 16384; 12329: static constexpr int max_exponent10 = 4932; 12329: 12329: static constexpr bool has_infinity = 1; 12329: static constexpr bool has_quiet_NaN = 1; 12329: static constexpr bool has_signaling_NaN = has_quiet_NaN; 12329: static constexpr float_denorm_style has_denorm 12329: = bool(1) ? denorm_present : denorm_absent; 12329: static constexpr bool has_denorm_loss 12329: = false; 12329: 12329: static constexpr long double 12329: infinity() noexcept { return __builtin_huge_vall(); } 12329: 12329: static constexpr long double 12329: quiet_NaN() noexcept { return __builtin_nanl(""); } 12329: 12329: static constexpr long double 12329: signaling_NaN() noexcept { return __builtin_nansl(""); } 12329: 12329: static constexpr long double 12329: denorm_min() noexcept { return 6.47517511943802511092443895822764655e-4966L; } 12329: 12329: static constexpr bool is_iec559 12329: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 12329: static constexpr bool is_bounded = true; 12329: static constexpr bool is_modulo = false; 12329: 12329: static constexpr bool traps = false; 12329: static constexpr bool tinyness_before = 12329: false; 12329: static constexpr float_round_style round_style = 12329: round_to_nearest; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 20 "/usr/include/boost/limits.hpp" 2 3 4 12329: # 17 "/usr/include/boost/integer_fwd.hpp" 2 3 4 12329: # 1 "/usr/include/boost/cstdint.hpp" 1 3 4 12329: # 18 "/usr/include/boost/integer_fwd.hpp" 2 3 4 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef boost::uintmax_t static_min_max_unsigned_type; 12329: typedef boost::intmax_t static_min_max_signed_type; 12329: typedef boost::uintmax_t static_log2_argument_type; 12329: typedef int static_log2_result_type; 12329: # 42 "/usr/include/boost/integer_fwd.hpp" 3 4 12329: template < class T > 12329: class integer_traits; 12329: 12329: template < > 12329: class integer_traits< bool >; 12329: 12329: template < > 12329: class integer_traits< char >; 12329: 12329: template < > 12329: class integer_traits< signed char >; 12329: 12329: template < > 12329: class integer_traits< unsigned char >; 12329: 12329: 12329: template < > 12329: class integer_traits< wchar_t >; 12329: 12329: 12329: template < > 12329: class integer_traits< short >; 12329: 12329: template < > 12329: class integer_traits< unsigned short >; 12329: 12329: template < > 12329: class integer_traits< int >; 12329: 12329: template < > 12329: class integer_traits< unsigned int >; 12329: 12329: template < > 12329: class integer_traits< long >; 12329: 12329: template < > 12329: class integer_traits< unsigned long >; 12329: 12329: 12329: template < > 12329: class integer_traits< ::boost::long_long_type>; 12329: 12329: template < > 12329: class integer_traits< ::boost::ulong_long_type >; 12329: # 97 "/usr/include/boost/integer_fwd.hpp" 3 4 12329: template < typename LeastInt > 12329: struct int_fast_t; 12329: 12329: template< int Bits > 12329: struct int_t; 12329: 12329: template< int Bits > 12329: struct uint_t; 12329: 12329: 12329: template< boost::long_long_type MaxValue > 12329: 12329: 12329: 12329: struct int_max_value_t; 12329: 12329: 12329: template< boost::long_long_type MinValue > 12329: 12329: 12329: 12329: struct int_min_value_t; 12329: 12329: 12329: template< boost::ulong_long_type MaxValue > 12329: 12329: 12329: 12329: struct uint_value_t; 12329: 12329: 12329: 12329: 12329: template < std::size_t Bit > 12329: struct high_bit_mask_t; 12329: 12329: template < std::size_t Bits > 12329: struct low_bits_mask_t; 12329: 12329: template < > 12329: struct low_bits_mask_t< ::std::numeric_limits::digits >; 12329: 12329: 12329: 12329: template 12329: struct static_log2; 12329: 12329: template <> struct static_log2<0u>; 12329: 12329: 12329: 12329: 12329: template 12329: struct static_signed_min; 12329: 12329: template 12329: struct static_signed_max; 12329: 12329: template 12329: struct static_unsigned_min; 12329: 12329: template 12329: struct static_unsigned_max; 12329: 12329: 12329: namespace integer 12329: { 12329: 12329: 12329: 12329: 12329: 12329: typedef boost::uintmax_t static_gcd_type; 12329: 12329: 12329: template < static_gcd_type Value1, static_gcd_type Value2 > 12329: struct static_gcd; 12329: template < static_gcd_type Value1, static_gcd_type Value2 > 12329: struct static_lcm; 12329: 12329: 12329: 12329: 12329: template < typename IntegerType > 12329: class gcd_evaluator; 12329: template < typename IntegerType > 12329: class lcm_evaluator; 12329: 12329: } 12329: 12329: } 12329: # 19 "/usr/include/boost/integer.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/integer_traits.hpp" 1 3 4 12329: # 23 "/usr/include/boost/integer_traits.hpp" 3 4 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 1 3 4 12329: # 24 "/usr/include/boost/integer_traits.hpp" 2 3 4 12329: # 39 "/usr/include/boost/integer_traits.hpp" 3 4 12329: 12329: # 40 "/usr/include/boost/integer_traits.hpp" 3 12329: 12329: 12329: namespace boost { 12329: template 12329: class integer_traits : public std::numeric_limits 12329: { 12329: public: 12329: static const bool is_integral = false; 12329: }; 12329: 12329: namespace detail { 12329: template 12329: class integer_traits_base 12329: { 12329: public: 12329: static const bool is_integral = true; 12329: static const T const_min = min_val; 12329: static const T const_max = max_val; 12329: }; 12329: 12329: 12329: 12329: template 12329: const bool integer_traits_base::is_integral; 12329: 12329: template 12329: const T integer_traits_base::const_min; 12329: 12329: template 12329: const T integer_traits_base::const_max; 12329: 12329: 12329: } 12329: 12329: template<> 12329: class integer_traits 12329: : public std::numeric_limits, 12329: public detail::integer_traits_base 12329: { }; 12329: 12329: template<> 12329: class integer_traits 12329: : public std::numeric_limits, 12329: public detail::integer_traits_base 12329: { }; 12329: 12329: template<> 12329: class integer_traits 12329: : public std::numeric_limits, 12329: public detail::integer_traits_base 12329: { }; 12329: 12329: template<> 12329: class integer_traits 12329: : public std::numeric_limits, 12329: public detail::integer_traits_base 12329: { }; 12329: 12329: 12329: template<> 12329: class integer_traits 12329: : public std::numeric_limits, 12329: 12329: 12329: 12329: public detail::integer_traits_base 12329: # 125 "/usr/include/boost/integer_traits.hpp" 3 12329: { }; 12329: 12329: 12329: template<> 12329: class integer_traits 12329: : public std::numeric_limits, 12329: public detail::integer_traits_base 12329: { }; 12329: 12329: template<> 12329: class integer_traits 12329: : public std::numeric_limits, 12329: public detail::integer_traits_base 12329: { }; 12329: 12329: template<> 12329: class integer_traits 12329: : public std::numeric_limits, 12329: public detail::integer_traits_base 12329: { }; 12329: 12329: template<> 12329: class integer_traits 12329: : public std::numeric_limits, 12329: public detail::integer_traits_base 12329: { }; 12329: 12329: template<> 12329: class integer_traits 12329: : public std::numeric_limits, 12329: public detail::integer_traits_base 12329: { }; 12329: 12329: template<> 12329: class integer_traits 12329: : public std::numeric_limits, 12329: public detail::integer_traits_base 12329: { }; 12329: 12329: 12329: 12329: 12329: template<> 12329: class integer_traits< ::boost::long_long_type> 12329: : public std::numeric_limits< ::boost::long_long_type>, 12329: public detail::integer_traits_base< ::boost::long_long_type, (-0x7fffffffffffffffLL -1), 0x7fffffffffffffffLL> 12329: { }; 12329: 12329: template<> 12329: class integer_traits< ::boost::ulong_long_type> 12329: : public std::numeric_limits< ::boost::ulong_long_type>, 12329: public detail::integer_traits_base< ::boost::ulong_long_type, 0, (0x7fffffffffffffffLL * 2ULL + 1)> 12329: { }; 12329: # 251 "/usr/include/boost/integer_traits.hpp" 3 12329: } 12329: # 21 "/usr/include/boost/integer.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/cstdint.hpp" 1 3 4 12329: # 23 "/usr/include/boost/integer.hpp" 2 3 4 12329: # 34 "/usr/include/boost/integer.hpp" 3 4 12329: 12329: # 35 "/usr/include/boost/integer.hpp" 3 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: 12329: 12329: 12329: 12329: template< typename LeastInt > 12329: struct int_fast_t 12329: { 12329: typedef LeastInt fast; 12329: typedef fast type; 12329: }; 12329: 12329: namespace detail{ 12329: 12329: 12329: template< int Category > struct int_least_helper {}; 12329: template< int Category > struct uint_least_helper {}; 12329: 12329: 12329: 12329: 12329: 12329: template<> struct int_least_helper<1> { typedef boost::long_long_type least; }; 12329: 12329: 12329: 12329: template<> struct int_least_helper<2> { typedef long least; }; 12329: template<> struct int_least_helper<3> { typedef int least; }; 12329: template<> struct int_least_helper<4> { typedef short least; }; 12329: template<> struct int_least_helper<5> { typedef signed char least; }; 12329: 12329: template<> struct uint_least_helper<1> { typedef boost::ulong_long_type least; }; 12329: 12329: 12329: 12329: template<> struct uint_least_helper<2> { typedef unsigned long least; }; 12329: template<> struct uint_least_helper<3> { typedef unsigned int least; }; 12329: template<> struct uint_least_helper<4> { typedef unsigned short least; }; 12329: template<> struct uint_least_helper<5> { typedef unsigned char least; }; 12329: 12329: template 12329: struct exact_signed_base_helper{}; 12329: template 12329: struct exact_unsigned_base_helper{}; 12329: 12329: template <> struct exact_signed_base_helper { typedef signed char exact; }; 12329: template <> struct exact_unsigned_base_helper { typedef unsigned char exact; }; 12329: 12329: template <> struct exact_signed_base_helper { typedef short exact; }; 12329: template <> struct exact_unsigned_base_helper { typedef unsigned short exact; }; 12329: 12329: 12329: template <> struct exact_signed_base_helper { typedef int exact; }; 12329: template <> struct exact_unsigned_base_helper { typedef unsigned int exact; }; 12329: 12329: 12329: 12329: template <> struct exact_signed_base_helper { typedef long exact; }; 12329: template <> struct exact_unsigned_base_helper { typedef unsigned long exact; }; 12329: # 109 "/usr/include/boost/integer.hpp" 3 12329: } 12329: 12329: 12329: 12329: 12329: template< int Bits > 12329: struct int_t : public boost::detail::exact_signed_base_helper 12329: { 12329: static_assert(Bits <= (int)(sizeof(boost::intmax_t) * 8), "No suitable signed integer type with the requested number of bits is available.") 12329: ; 12329: typedef typename boost::detail::int_least_helper 12329: < 12329: 12329: (Bits <= (int)(sizeof(boost::long_long_type) * 8)) + 12329: 12329: 12329: 12329: (Bits-1 <= ::std::numeric_limits::digits) + 12329: (Bits-1 <= ::std::numeric_limits::digits) + 12329: (Bits-1 <= ::std::numeric_limits::digits) + 12329: (Bits-1 <= ::std::numeric_limits::digits) 12329: >::least least; 12329: typedef typename int_fast_t::type fast; 12329: }; 12329: 12329: 12329: template< int Bits > 12329: struct uint_t : public boost::detail::exact_unsigned_base_helper 12329: { 12329: static_assert(Bits <= (int)(sizeof(boost::uintmax_t) * 8), "No suitable unsigned integer type with the requested number of bits is available.") 12329: ; 12329: # 150 "/usr/include/boost/integer.hpp" 3 12329: typedef typename boost::detail::uint_least_helper 12329: < 12329: 12329: (Bits <= (int)(sizeof(boost::long_long_type) * 8)) + 12329: 12329: 12329: 12329: (Bits <= ::std::numeric_limits::digits) + 12329: (Bits <= ::std::numeric_limits::digits) + 12329: (Bits <= ::std::numeric_limits::digits) + 12329: (Bits <= ::std::numeric_limits::digits) 12329: >::least least; 12329: 12329: typedef typename int_fast_t::type fast; 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template< boost::long_long_type MaxValue > 12329: 12329: 12329: 12329: struct int_max_value_t 12329: { 12329: typedef typename boost::detail::int_least_helper 12329: < 12329: 12329: (MaxValue <= ::boost::integer_traits::const_max) + 12329: 12329: 12329: 12329: (MaxValue <= ::boost::integer_traits::const_max) + 12329: (MaxValue <= ::boost::integer_traits::const_max) + 12329: (MaxValue <= ::boost::integer_traits::const_max) + 12329: (MaxValue <= ::boost::integer_traits::const_max) 12329: >::least least; 12329: typedef typename int_fast_t::type fast; 12329: }; 12329: 12329: 12329: template< boost::long_long_type MinValue > 12329: 12329: 12329: 12329: struct int_min_value_t 12329: { 12329: typedef typename boost::detail::int_least_helper 12329: < 12329: 12329: (MinValue >= ::boost::integer_traits::const_min) + 12329: 12329: 12329: 12329: (MinValue >= ::boost::integer_traits::const_min) + 12329: (MinValue >= ::boost::integer_traits::const_min) + 12329: (MinValue >= ::boost::integer_traits::const_min) + 12329: (MinValue >= ::boost::integer_traits::const_min) 12329: >::least least; 12329: typedef typename int_fast_t::type fast; 12329: }; 12329: 12329: 12329: 12329: template< boost::ulong_long_type MaxValue > 12329: 12329: 12329: 12329: struct uint_value_t 12329: { 12329: # 243 "/usr/include/boost/integer.hpp" 3 12329: typedef typename boost::detail::uint_least_helper 12329: < 12329: 12329: (MaxValue <= ::boost::integer_traits::const_max) + 12329: 12329: 12329: 12329: (MaxValue <= ::boost::integer_traits::const_max) + 12329: (MaxValue <= ::boost::integer_traits::const_max) + 12329: (MaxValue <= ::boost::integer_traits::const_max) + 12329: (MaxValue <= ::boost::integer_traits::const_max) 12329: >::least least; 12329: 12329: typedef typename int_fast_t::type fast; 12329: }; 12329: 12329: 12329: } 12329: # 21 "/usr/include/boost/function/function_base.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/type_traits/has_trivial_copy.hpp" 1 3 4 12329: # 13 "/usr/include/boost/type_traits/has_trivial_copy.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/intrinsics.hpp" 1 3 4 12329: # 14 "/usr/include/boost/type_traits/has_trivial_copy.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_pod.hpp" 1 3 4 12329: # 14 "/usr/include/boost/type_traits/is_pod.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_void.hpp" 1 3 4 12329: # 14 "/usr/include/boost/type_traits/is_void.hpp" 3 4 12329: namespace boost { 12329: 12329: template 12329: struct is_void : public false_type {}; 12329: 12329: template<> struct is_void : public true_type {}; 12329: template<> struct is_void : public true_type{}; 12329: template<> struct is_void : public true_type{}; 12329: template<> struct is_void : public true_type{}; 12329: 12329: } 12329: # 15 "/usr/include/boost/type_traits/is_pod.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_scalar.hpp" 1 3 4 12329: # 12 "/usr/include/boost/type_traits/is_scalar.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_arithmetic.hpp" 1 3 4 12329: # 12 "/usr/include/boost/type_traits/is_arithmetic.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_integral.hpp" 1 3 4 12329: # 15 "/usr/include/boost/type_traits/is_integral.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template struct is_integral : public false_type {}; 12329: template struct is_integral : public is_integral {}; 12329: template struct is_integral : public is_integral{}; 12329: template struct is_integral : public is_integral{}; 12329: 12329: 12329: 12329: 12329: template<> struct is_integral : public true_type {}; 12329: template<> struct is_integral : public true_type{}; 12329: template<> struct is_integral : public true_type{}; 12329: template<> struct is_integral : public true_type{}; 12329: 12329: template<> struct is_integral : public true_type{}; 12329: template<> struct is_integral : public true_type{}; 12329: template<> struct is_integral : public true_type{}; 12329: template<> struct is_integral : public true_type{}; 12329: 12329: template<> struct is_integral : public true_type{}; 12329: template<> struct is_integral : public true_type{}; 12329: 12329: 12329: 12329: 12329: 12329: template<> struct is_integral : public true_type{}; 12329: # 67 "/usr/include/boost/type_traits/is_integral.hpp" 3 4 12329: template<> struct is_integral< ::boost::ulong_long_type> : public true_type{}; 12329: template<> struct is_integral< ::boost::long_long_type> : public true_type{}; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template<> struct is_integral : public true_type{}; 12329: template<> struct is_integral : public true_type{}; 12329: 12329: 12329: template<> struct is_integral : public true_type{}; 12329: 12329: 12329: template<> struct is_integral : public true_type{}; 12329: 12329: 12329: 12329: 12329: } 12329: # 13 "/usr/include/boost/type_traits/is_arithmetic.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_floating_point.hpp" 1 3 4 12329: # 13 "/usr/include/boost/type_traits/is_floating_point.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: template struct is_floating_point : public false_type{}; 12329: template struct is_floating_point : public is_floating_point{}; 12329: template struct is_floating_point : public is_floating_point{}; 12329: template struct is_floating_point : public is_floating_point{}; 12329: template<> struct is_floating_point : public true_type{}; 12329: template<> struct is_floating_point : public true_type{}; 12329: template<> struct is_floating_point : public true_type{}; 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 14 "/usr/include/boost/type_traits/is_arithmetic.hpp" 2 3 4 12329: 12329: namespace boost { 12329: 12329: template 12329: struct is_arithmetic : public integral_constant::value || is_floating_point::value> {}; 12329: 12329: } 12329: # 13 "/usr/include/boost/type_traits/is_scalar.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_enum.hpp" 1 3 4 12329: # 32 "/usr/include/boost/type_traits/is_enum.hpp" 3 4 12329: namespace boost { 12329: # 160 "/usr/include/boost/type_traits/is_enum.hpp" 3 4 12329: template struct is_enum : public integral_constant {}; 12329: 12329: 12329: 12329: } 12329: # 14 "/usr/include/boost/type_traits/is_scalar.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_pointer.hpp" 1 3 4 12329: # 26 "/usr/include/boost/type_traits/is_pointer.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: 12329: 12329: template struct is_pointer : public false_type{}; 12329: template struct is_pointer : public true_type{}; 12329: template struct is_pointer : public true_type{}; 12329: template struct is_pointer : public true_type{}; 12329: template struct is_pointer : public true_type{}; 12329: # 45 "/usr/include/boost/type_traits/is_pointer.hpp" 3 4 12329: } 12329: # 15 "/usr/include/boost/type_traits/is_scalar.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_member_pointer.hpp" 1 3 4 12329: # 25 "/usr/include/boost/type_traits/is_member_pointer.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_member_function_pointer.hpp" 1 3 4 12329: # 18 "/usr/include/boost/type_traits/is_member_function_pointer.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp" 1 3 4 12329: # 16 "/usr/include/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp" 3 4 12329: namespace boost { 12329: # 25 "/usr/include/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp" 3 4 12329: template 12329: struct is_member_function_pointer : public false_type {}; 12329: template 12329: struct is_member_function_pointer : public is_member_function_pointer {}; 12329: template 12329: struct is_member_function_pointer : public is_member_function_pointer {}; 12329: template 12329: struct is_member_function_pointer : public is_member_function_pointer {}; 12329: # 47 "/usr/include/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp" 3 4 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: 12329: 12329: 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: 12329: 12329: 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: template 12329: struct is_member_function_pointer : public true_type {}; 12329: # 670 "/usr/include/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp" 3 4 12329: } 12329: # 19 "/usr/include/boost/type_traits/is_member_function_pointer.hpp" 2 3 4 12329: # 26 "/usr/include/boost/type_traits/is_member_pointer.hpp" 2 3 4 12329: 12329: namespace boost { 12329: 12329: 12329: 12329: 12329: template struct is_member_pointer : public integral_constant::value>{}; 12329: template struct is_member_pointer : public true_type{}; 12329: 12329: 12329: template struct is_member_pointer : public true_type{}; 12329: template struct is_member_pointer : public true_type{}; 12329: template struct is_member_pointer : public true_type{}; 12329: 12329: 12329: 12329: 12329: } 12329: # 16 "/usr/include/boost/type_traits/is_scalar.hpp" 2 3 4 12329: 12329: 12329: namespace boost { 12329: 12329: template 12329: struct is_scalar 12329: : public integral_constant::value || ::boost::is_enum::value || ::boost::is_pointer::value || ::boost::is_member_pointer::value> 12329: {}; 12329: 12329: } 12329: # 16 "/usr/include/boost/type_traits/is_pod.hpp" 2 3 4 12329: # 30 "/usr/include/boost/type_traits/is_pod.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: template< typename T > struct is_POD; 12329: 12329: template struct is_pod 12329: : public integral_constant::value || ::boost::is_void::value || __is_pod(T)> 12329: {}; 12329: 12329: 12329: template struct is_pod : public is_pod{}; 12329: 12329: 12329: 12329: 12329: template<> struct is_pod : public true_type{}; 12329: 12329: 12329: template<> struct is_pod : public true_type{}; 12329: template<> struct is_pod : public true_type{}; 12329: template<> struct is_pod : public true_type{}; 12329: 12329: 12329: template struct is_POD : public is_pod{}; 12329: 12329: } 12329: # 15 "/usr/include/boost/type_traits/has_trivial_copy.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/is_copy_constructible.hpp" 1 3 4 12329: # 17 "/usr/include/boost/type_traits/is_copy_constructible.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_constructible.hpp" 1 3 4 12329: # 17 "/usr/include/boost/type_traits/is_constructible.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_destructible.hpp" 1 3 4 12329: # 15 "/usr/include/boost/type_traits/is_destructible.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_complete.hpp" 1 3 4 12329: # 12 "/usr/include/boost/type_traits/is_complete.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/declval.hpp" 1 3 4 12329: # 15 "/usr/include/boost/type_traits/declval.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/add_rvalue_reference.hpp" 1 3 4 12329: # 31 "/usr/include/boost/type_traits/add_rvalue_reference.hpp" 3 4 12329: namespace boost { 12329: 12329: namespace type_traits_detail { 12329: 12329: template 12329: struct add_rvalue_reference_helper 12329: { typedef T type; }; 12329: 12329: 12329: template 12329: struct add_rvalue_reference_helper 12329: { 12329: typedef T&& type; 12329: }; 12329: 12329: 12329: template 12329: struct add_rvalue_reference_imp 12329: { 12329: typedef typename boost::type_traits_detail::add_rvalue_reference_helper 12329: ::value == false && is_reference::value == false) >::type type; 12329: }; 12329: 12329: } 12329: 12329: template struct add_rvalue_reference 12329: { 12329: typedef typename boost::type_traits_detail::add_rvalue_reference_imp::type type; 12329: }; 12329: 12329: 12329: 12329: template using add_rvalue_reference_t = typename add_rvalue_reference::type; 12329: 12329: 12329: 12329: } 12329: # 16 "/usr/include/boost/type_traits/declval.hpp" 2 3 4 12329: # 37 "/usr/include/boost/type_traits/declval.hpp" 3 4 12329: namespace boost { 12329: 12329: template 12329: typename add_rvalue_reference::type declval() noexcept; 12329: 12329: } 12329: # 13 "/usr/include/boost/type_traits/is_complete.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/detail/yes_no_type.hpp" 1 3 4 12329: # 14 "/usr/include/boost/type_traits/detail/yes_no_type.hpp" 3 4 12329: namespace boost { 12329: namespace type_traits { 12329: 12329: typedef char yes_type; 12329: struct no_type 12329: { 12329: char padding[8]; 12329: }; 12329: 12329: } 12329: } 12329: # 17 "/usr/include/boost/type_traits/is_complete.hpp" 2 3 4 12329: # 31 "/usr/include/boost/type_traits/is_complete.hpp" 3 4 12329: namespace boost { 12329: # 41 "/usr/include/boost/type_traits/is_complete.hpp" 3 4 12329: namespace detail{ 12329: 12329: template 12329: struct ok_tag { double d; char c[N]; }; 12329: 12329: template 12329: ok_tag check_is_complete(int); 12329: template 12329: char check_is_complete(...); 12329: } 12329: 12329: template struct is_complete 12329: : public integral_constant::type>::value || (sizeof(boost::detail::check_is_complete(0)) != sizeof(char))> {}; 12329: # 90 "/usr/include/boost/type_traits/is_complete.hpp" 3 4 12329: } 12329: # 16 "/usr/include/boost/type_traits/is_destructible.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost{ 12329: 12329: namespace detail{ 12329: 12329: struct is_destructible_imp 12329: { 12329: template().~T())> 12329: static boost::type_traits::yes_type test(int); 12329: template 12329: static boost::type_traits::no_type test(...); 12329: }; 12329: 12329: } 12329: 12329: template struct is_destructible : public integral_constant(0)) == sizeof(boost::type_traits::yes_type)> 12329: { 12329: static_assert(boost::is_complete::value, "Arguments to is_destructible must be complete types"); 12329: }; 12329: # 56 "/usr/include/boost/type_traits/is_destructible.hpp" 3 4 12329: template <> struct is_destructible : public false_type{}; 12329: template <> struct is_destructible : public false_type{}; 12329: template <> struct is_destructible : public false_type{}; 12329: template <> struct is_destructible : public false_type{}; 12329: template struct is_destructible : public is_destructible{}; 12329: 12329: template struct is_destructible : public is_destructible{}; 12329: 12329: template struct is_destructible : public is_destructible{}; 12329: template struct is_destructible : public is_destructible{}; 12329: 12329: } 12329: # 18 "/usr/include/boost/type_traits/is_constructible.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_default_constructible.hpp" 1 3 4 12329: # 29 "/usr/include/boost/type_traits/is_default_constructible.hpp" 3 4 12329: namespace boost{ 12329: 12329: namespace detail{ 12329: 12329: struct is_default_constructible_imp 12329: { 12329: template 12329: static boost::type_traits::yes_type test(int); 12329: 12329: template 12329: static boost::type_traits::no_type test(...); 12329: }; 12329: # 53 "/usr/include/boost/type_traits/is_default_constructible.hpp" 3 4 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template struct is_default_constructible : public integral_constant(0)) == sizeof(boost::type_traits::yes_type)> 12329: { 12329: static_assert(boost::is_complete::value, "Arguments to is_default_constructible must be complete types"); 12329: }; 12329: 12329: template struct is_default_constructible : public is_default_constructible{}; 12329: template struct is_default_constructible : public is_default_constructible{}; 12329: template struct is_default_constructible : public integral_constant{}; 12329: 12329: 12329: 12329: 12329: template struct is_default_constructible : public integral_constant{}; 12329: 12329: template <> struct is_default_constructible : public integral_constant{}; 12329: template <> struct is_default_constructible : public integral_constant{}; 12329: template <> struct is_default_constructible : public integral_constant{}; 12329: template <> struct is_default_constructible : public integral_constant{}; 12329: # 96 "/usr/include/boost/type_traits/is_default_constructible.hpp" 3 4 12329: } 12329: # 19 "/usr/include/boost/type_traits/is_constructible.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost{ 12329: 12329: namespace detail{ 12329: 12329: struct is_constructible_imp 12329: { 12329: template()...))> 12329: static boost::type_traits::yes_type test(int); 12329: template 12329: static boost::type_traits::no_type test(...); 12329: 12329: template()))> 12329: static boost::type_traits::yes_type test1(int); 12329: template 12329: static boost::type_traits::no_type test1(...); 12329: 12329: template 12329: static boost::type_traits::yes_type ref_test(T); 12329: template 12329: static boost::type_traits::no_type ref_test(...); 12329: }; 12329: 12329: } 12329: 12329: template struct is_constructible : public integral_constant(0)) == sizeof(boost::type_traits::yes_type)> 12329: { 12329: static_assert(::boost::is_complete::value, "The target type must be complete in order to test for constructibility"); 12329: }; 12329: template struct is_constructible : public integral_constant::value && sizeof(boost::detail::is_constructible_imp::test1(0)) == sizeof(boost::type_traits::yes_type)> 12329: { 12329: static_assert(::boost::is_complete::value, "The target type must be complete in order to test for constructibility"); 12329: }; 12329: template struct is_constructible : public integral_constant(boost::declval())) == sizeof(boost::type_traits::yes_type)>{}; 12329: template struct is_constructible : public integral_constant(boost::declval())) == sizeof(boost::type_traits::yes_type)>{}; 12329: 12329: template <> struct is_constructible : public false_type{}; 12329: template <> struct is_constructible : public false_type{}; 12329: template <> struct is_constructible : public false_type{}; 12329: template <> struct is_constructible : public false_type{}; 12329: 12329: template struct is_constructible : public is_default_constructible{}; 12329: # 88 "/usr/include/boost/type_traits/is_constructible.hpp" 3 4 12329: } 12329: # 18 "/usr/include/boost/type_traits/is_copy_constructible.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { 12329: 12329: template struct is_copy_constructible : public boost::is_constructible{}; 12329: 12329: template <> struct is_copy_constructible : public false_type{}; 12329: template <> struct is_copy_constructible : public false_type{}; 12329: template <> struct is_copy_constructible : public false_type{}; 12329: template <> struct is_copy_constructible : public false_type{}; 12329: 12329: } 12329: # 19 "/usr/include/boost/type_traits/has_trivial_copy.hpp" 2 3 4 12329: # 29 "/usr/include/boost/type_traits/has_trivial_copy.hpp" 3 4 12329: namespace boost { 12329: 12329: template struct has_trivial_copy 12329: : public integral_constant::value) && is_copy_constructible::value 12329: 12329: 12329: 12329: >{}; 12329: 12329: template struct has_trivial_copy : public false_type{}; 12329: template struct has_trivial_copy : public false_type{}; 12329: 12329: template struct has_trivial_copy : public false_type{}; 12329: 12329: template <> struct has_trivial_copy : public false_type{}; 12329: 12329: template <> struct has_trivial_copy : public false_type{}; 12329: template <> struct has_trivial_copy : public false_type{}; 12329: template <> struct has_trivial_copy : public false_type{}; 12329: 12329: 12329: template struct has_trivial_copy : public false_type{}; 12329: 12329: template struct has_trivial_copy : public false_type{}; 12329: 12329: 12329: template struct has_trivial_copy_constructor : public has_trivial_copy{}; 12329: 12329: 12329: 12329: } 12329: # 23 "/usr/include/boost/function/function_base.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/has_trivial_destructor.hpp" 1 3 4 12329: # 28 "/usr/include/boost/type_traits/has_trivial_destructor.hpp" 3 4 12329: namespace boost { 12329: 12329: template struct has_trivial_destructor : public integral_constant::value)>{}; 12329: # 39 "/usr/include/boost/type_traits/has_trivial_destructor.hpp" 3 4 12329: template <> struct has_trivial_destructor : public false_type{}; 12329: 12329: template <> struct has_trivial_destructor : public false_type{}; 12329: template <> struct has_trivial_destructor : public false_type{}; 12329: template <> struct has_trivial_destructor : public false_type{}; 12329: 12329: 12329: } 12329: # 24 "/usr/include/boost/function/function_base.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/composite_traits.hpp" 1 3 4 12329: # 22 "/usr/include/boost/type_traits/composite_traits.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_union.hpp" 1 3 4 12329: # 17 "/usr/include/boost/type_traits/is_union.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: template struct is_union : public integral_constant {}; 12329: 12329: 12329: 12329: 12329: template struct is_union : public is_union{}; 12329: template struct is_union : public is_union{}; 12329: template struct is_union : public is_union{}; 12329: 12329: } 12329: # 23 "/usr/include/boost/type_traits/composite_traits.hpp" 2 3 4 12329: # 28 "/usr/include/boost/function/function_base.hpp" 2 3 4 12329: # 1 "/usr/include/boost/ref.hpp" 1 3 4 12329: # 15 "/usr/include/boost/ref.hpp" 3 4 12329: # 1 "/usr/include/boost/core/ref.hpp" 1 3 4 12329: # 40 "/usr/include/boost/core/ref.hpp" 3 4 12329: namespace boost 12329: { 12329: # 60 "/usr/include/boost/core/ref.hpp" 3 4 12329: template class reference_wrapper 12329: { 12329: public: 12329: 12329: 12329: 12329: typedef T type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: inline __attribute__ ((__always_inline__)) explicit reference_wrapper(T& t): t_(boost::addressof(t)) {} 12329: # 86 "/usr/include/boost/core/ref.hpp" 3 4 12329: reference_wrapper(T&& t) = delete; 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: 12329: inline __attribute__ ((__always_inline__)) operator T& () const { return *t_; } 12329: 12329: 12329: 12329: 12329: 12329: inline __attribute__ ((__always_inline__)) T& get() const { return *t_; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: inline __attribute__ ((__always_inline__)) T* get_pointer() const { return t_; } 12329: 12329: private: 12329: 12329: T* t_; 12329: }; 12329: # 132 "/usr/include/boost/core/ref.hpp" 3 4 12329: template inline __attribute__ ((__always_inline__)) reference_wrapper const ref( T & t ) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: return reference_wrapper( t ); 12329: 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template inline __attribute__ ((__always_inline__)) reference_wrapper const cref( T const & t ) 12329: { 12329: return reference_wrapper(t); 12329: } 12329: # 175 "/usr/include/boost/core/ref.hpp" 3 4 12329: template void ref(T const&&) = delete; 12329: 12329: 12329: 12329: 12329: template void cref(T const&&) = delete; 12329: # 195 "/usr/include/boost/core/ref.hpp" 3 4 12329: template struct is_reference_wrapper 12329: { 12329: static const bool value = false; 12329: }; 12329: 12329: 12329: 12329: 12329: template struct is_reference_wrapper< reference_wrapper > 12329: { 12329: static const bool value = true; 12329: }; 12329: 12329: 12329: 12329: template struct is_reference_wrapper< reference_wrapper const > 12329: { 12329: static const bool value = true; 12329: }; 12329: 12329: template struct is_reference_wrapper< reference_wrapper volatile > 12329: { 12329: static const bool value = true; 12329: }; 12329: 12329: template struct is_reference_wrapper< reference_wrapper const volatile > 12329: { 12329: static const bool value = true; 12329: }; 12329: # 240 "/usr/include/boost/core/ref.hpp" 3 4 12329: template struct unwrap_reference 12329: { 12329: typedef T type; 12329: }; 12329: 12329: 12329: 12329: 12329: template struct unwrap_reference< reference_wrapper > 12329: { 12329: typedef T type; 12329: }; 12329: 12329: 12329: 12329: template struct unwrap_reference< reference_wrapper const > 12329: { 12329: typedef T type; 12329: }; 12329: 12329: template struct unwrap_reference< reference_wrapper volatile > 12329: { 12329: typedef T type; 12329: }; 12329: 12329: template struct unwrap_reference< reference_wrapper const volatile > 12329: { 12329: typedef T type; 12329: }; 12329: # 282 "/usr/include/boost/core/ref.hpp" 3 4 12329: template inline __attribute__ ((__always_inline__)) typename unwrap_reference::type& unwrap_ref( T & t ) 12329: { 12329: return t; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template inline __attribute__ ((__always_inline__)) T* get_pointer( reference_wrapper const & r ) 12329: { 12329: return r.get_pointer(); 12329: } 12329: 12329: 12329: 12329: 12329: } 12329: # 16 "/usr/include/boost/ref.hpp" 2 3 4 12329: # 29 "/usr/include/boost/function/function_base.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/alignment_of.hpp" 1 3 4 12329: # 26 "/usr/include/boost/type_traits/alignment_of.hpp" 3 4 12329: namespace boost { 12329: 12329: template struct alignment_of; 12329: 12329: 12329: namespace detail { 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct alignment_of_hack 12329: { 12329: char c; 12329: T t; 12329: alignment_of_hack(); 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: struct alignment_logic 12329: { 12329: static const std::size_t value = A < S ? A : S; 12329: }; 12329: 12329: 12329: template< typename T > 12329: struct alignment_of_impl 12329: { 12329: # 82 "/usr/include/boost/type_traits/alignment_of.hpp" 3 4 12329: static const std::size_t value = __alignof__(T); 12329: 12329: }; 12329: 12329: } 12329: 12329: template struct alignment_of : public integral_constant::value>{}; 12329: 12329: 12329: 12329: template struct alignment_of : public alignment_of{}; 12329: # 102 "/usr/include/boost/type_traits/alignment_of.hpp" 3 4 12329: template<> struct alignment_of : integral_constant{}; 12329: 12329: template<> struct alignment_of : integral_constant{}; 12329: template<> struct alignment_of : integral_constant{}; 12329: template<> struct alignment_of : integral_constant{}; 12329: 12329: 12329: } 12329: # 32 "/usr/include/boost/function/function_base.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/type_traits/enable_if.hpp" 1 3 4 12329: # 20 "/usr/include/boost/type_traits/enable_if.hpp" 3 4 12329: namespace boost { 12329: 12329: template 12329: struct enable_if_ { 12329: typedef T type; 12329: }; 12329: 12329: template 12329: struct enable_if_ { }; 12329: 12329: 12329: template 12329: using enable_if_t = typename enable_if_::type; 12329: 12329: 12329: } 12329: # 34 "/usr/include/boost/function/function_base.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/function_equal.hpp" 1 3 4 12329: # 13 "/usr/include/boost/function_equal.hpp" 3 4 12329: namespace boost { 12329: 12329: template 12329: bool function_equal_impl(const F& f, const G& g, long) 12329: { return f == g; } 12329: 12329: 12329: 12329: 12329: template 12329: bool function_equal(const F& f, const G& g) 12329: { return function_equal_impl(f, g, 0); } 12329: 12329: } 12329: # 38 "/usr/include/boost/function/function_base.hpp" 2 3 4 12329: # 1 "/usr/include/boost/function/function_fwd.hpp" 1 3 4 12329: # 27 "/usr/include/boost/function/function_fwd.hpp" 3 4 12329: namespace boost { 12329: class bad_function_call; 12329: 12329: 12329: 12329: template class function; 12329: 12329: template 12329: inline void swap(function& f1, function& f2) 12329: { 12329: f1.swap(f2); 12329: } 12329: 12329: 12329: 12329: template class function0; 12329: template class function1; 12329: template class function2; 12329: template class function3; 12329: template 12329: class function4; 12329: template 12329: class function5; 12329: template 12329: class function6; 12329: template 12329: class function7; 12329: template 12329: class function8; 12329: template 12329: class function9; 12329: template 12329: class function10; 12329: } 12329: # 39 "/usr/include/boost/function/function_base.hpp" 2 3 4 12329: # 57 "/usr/include/boost/function/function_base.hpp" 3 4 12329: namespace boost { 12329: namespace detail { 12329: namespace function { 12329: class X; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: union function_buffer_members 12329: { 12329: 12329: typedef void* obj_ptr_t; 12329: mutable obj_ptr_t obj_ptr; 12329: 12329: 12329: struct type_t { 12329: 12329: const boost::typeindex::type_info* type; 12329: 12329: 12329: bool const_qualified; 12329: 12329: bool volatile_qualified; 12329: } type; 12329: 12329: 12329: typedef void (*func_ptr_t)(); 12329: mutable func_ptr_t func_ptr; 12329: 12329: 12329: struct bound_memfunc_ptr_t { 12329: void (X::*memfunc_ptr)(int); 12329: void* obj_ptr; 12329: } bound_memfunc_ptr; 12329: 12329: 12329: 12329: struct obj_ref_t { 12329: mutable void* obj_ptr; 12329: bool is_const_qualified; 12329: bool is_volatile_qualified; 12329: } obj_ref; 12329: }; 12329: 12329: union __attribute__((__visibility__("default"))) function_buffer 12329: { 12329: 12329: mutable function_buffer_members members; 12329: 12329: 12329: mutable char data[sizeof(function_buffer_members)]; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: struct unusable 12329: { 12329: unusable() {} 12329: template unusable(const T&) {} 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template struct function_return_type { typedef T type; }; 12329: 12329: template<> 12329: struct function_return_type 12329: { 12329: typedef unusable type; 12329: }; 12329: 12329: 12329: enum functor_manager_operation_type { 12329: clone_functor_tag, 12329: move_functor_tag, 12329: destroy_functor_tag, 12329: check_functor_type_tag, 12329: get_functor_type_tag 12329: }; 12329: 12329: 12329: struct function_ptr_tag {}; 12329: struct function_obj_tag {}; 12329: struct member_ptr_tag {}; 12329: struct function_obj_ref_tag {}; 12329: 12329: template 12329: class get_function_tag 12329: { 12329: typedef typename conditional<(is_pointer::value), 12329: function_ptr_tag, 12329: function_obj_tag>::type ptr_or_obj_tag; 12329: 12329: typedef typename conditional<(is_member_pointer::value), 12329: member_ptr_tag, 12329: ptr_or_obj_tag>::type ptr_or_obj_or_mem_tag; 12329: 12329: typedef typename conditional<(is_reference_wrapper::value), 12329: function_obj_ref_tag, 12329: ptr_or_obj_or_mem_tag>::type or_ref_tag; 12329: 12329: public: 12329: typedef or_ref_tag type; 12329: }; 12329: 12329: 12329: 12329: template 12329: struct reference_manager 12329: { 12329: static inline void 12329: manage(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op) 12329: { 12329: switch (op) { 12329: case clone_functor_tag: 12329: out_buffer.members.obj_ref = in_buffer.members.obj_ref; 12329: return; 12329: 12329: case move_functor_tag: 12329: out_buffer.members.obj_ref = in_buffer.members.obj_ref; 12329: in_buffer.members.obj_ref.obj_ptr = 0; 12329: return; 12329: 12329: case destroy_functor_tag: 12329: out_buffer.members.obj_ref.obj_ptr = 0; 12329: return; 12329: 12329: case check_functor_type_tag: 12329: { 12329: 12329: 12329: if (*out_buffer.members.type.type == boost::typeindex::type_id() 12329: && (!in_buffer.members.obj_ref.is_const_qualified 12329: || out_buffer.members.type.const_qualified) 12329: && (!in_buffer.members.obj_ref.is_volatile_qualified 12329: || out_buffer.members.type.volatile_qualified)) 12329: out_buffer.members.obj_ptr = in_buffer.members.obj_ref.obj_ptr; 12329: else 12329: out_buffer.members.obj_ptr = 0; 12329: } 12329: return; 12329: 12329: case get_functor_type_tag: 12329: out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); 12329: out_buffer.members.type.const_qualified = in_buffer.members.obj_ref.is_const_qualified; 12329: out_buffer.members.type.volatile_qualified = in_buffer.members.obj_ref.is_volatile_qualified; 12329: return; 12329: } 12329: } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct function_allows_small_object_optimization 12329: { 12329: static const bool value = ((sizeof(F) <= sizeof(function_buffer) && (alignment_of::value % alignment_of::value == 0))) 12329: 12329: 12329: 12329: ; 12329: }; 12329: 12329: template 12329: struct functor_wrapper: public F, public A 12329: { 12329: functor_wrapper( F f, A a ): 12329: F(f), 12329: A(a) 12329: { 12329: } 12329: 12329: functor_wrapper(const functor_wrapper& f) : 12329: F(static_cast(f)), 12329: A(static_cast(f)) 12329: { 12329: } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct functor_manager_common 12329: { 12329: typedef Functor functor_type; 12329: 12329: 12329: static inline void 12329: manage_ptr(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op) 12329: { 12329: if (op == clone_functor_tag) 12329: out_buffer.members.func_ptr = in_buffer.members.func_ptr; 12329: else if (op == move_functor_tag) { 12329: out_buffer.members.func_ptr = in_buffer.members.func_ptr; 12329: in_buffer.members.func_ptr = 0; 12329: } else if (op == destroy_functor_tag) 12329: out_buffer.members.func_ptr = 0; 12329: else if (op == check_functor_type_tag) { 12329: if (*out_buffer.members.type.type == boost::typeindex::type_id()) 12329: out_buffer.members.obj_ptr = &in_buffer.members.func_ptr; 12329: else 12329: out_buffer.members.obj_ptr = 0; 12329: } else { 12329: out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); 12329: out_buffer.members.type.const_qualified = false; 12329: out_buffer.members.type.volatile_qualified = false; 12329: } 12329: } 12329: 12329: 12329: static inline void 12329: manage_small(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op) 12329: { 12329: if (op == clone_functor_tag || op == move_functor_tag) { 12329: const functor_type* in_functor = 12329: reinterpret_cast(in_buffer.data); 12329: new (reinterpret_cast(out_buffer.data)) functor_type(*in_functor); 12329: 12329: if (op == move_functor_tag) { 12329: functor_type* f = reinterpret_cast(in_buffer.data); 12329: (void)f; 12329: f->~Functor(); 12329: } 12329: } else if (op == destroy_functor_tag) { 12329: 12329: functor_type* f = reinterpret_cast(out_buffer.data); 12329: (void)f; 12329: f->~Functor(); 12329: } else if (op == check_functor_type_tag) { 12329: if (*out_buffer.members.type.type == boost::typeindex::type_id()) 12329: out_buffer.members.obj_ptr = in_buffer.data; 12329: else 12329: out_buffer.members.obj_ptr = 0; 12329: } else { 12329: out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); 12329: out_buffer.members.type.const_qualified = false; 12329: out_buffer.members.type.volatile_qualified = false; 12329: } 12329: } 12329: }; 12329: 12329: template 12329: struct functor_manager 12329: { 12329: private: 12329: typedef Functor functor_type; 12329: 12329: 12329: static inline void 12329: manager(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op, function_ptr_tag) 12329: { 12329: functor_manager_common::manage_ptr(in_buffer,out_buffer,op); 12329: } 12329: 12329: 12329: static inline void 12329: manager(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op, true_type) 12329: { 12329: functor_manager_common::manage_small(in_buffer,out_buffer,op); 12329: } 12329: 12329: 12329: static inline void 12329: manager(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op, false_type) 12329: { 12329: if (op == clone_functor_tag) { 12329: 12329: 12329: 12329: 12329: 12329: const functor_type* f = 12329: static_cast(in_buffer.members.obj_ptr); 12329: functor_type* new_f = new functor_type(*f); 12329: out_buffer.members.obj_ptr = new_f; 12329: } else if (op == move_functor_tag) { 12329: out_buffer.members.obj_ptr = in_buffer.members.obj_ptr; 12329: in_buffer.members.obj_ptr = 0; 12329: } else if (op == destroy_functor_tag) { 12329: 12329: functor_type* f = 12329: static_cast(out_buffer.members.obj_ptr); 12329: delete f; 12329: out_buffer.members.obj_ptr = 0; 12329: } else if (op == check_functor_type_tag) { 12329: if (*out_buffer.members.type.type == boost::typeindex::type_id()) 12329: out_buffer.members.obj_ptr = in_buffer.members.obj_ptr; 12329: else 12329: out_buffer.members.obj_ptr = 0; 12329: } else { 12329: out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); 12329: out_buffer.members.type.const_qualified = false; 12329: out_buffer.members.type.volatile_qualified = false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: static inline void 12329: manager(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op, function_obj_tag) 12329: { 12329: manager(in_buffer, out_buffer, op, 12329: integral_constant::value)>()); 12329: } 12329: 12329: 12329: static inline void 12329: manager(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op, member_ptr_tag) 12329: { 12329: manager(in_buffer, out_buffer, op, true_type()); 12329: } 12329: 12329: public: 12329: 12329: 12329: static inline void 12329: manage(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op) 12329: { 12329: typedef typename get_function_tag::type tag_type; 12329: if (op == get_functor_type_tag) { 12329: out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); 12329: out_buffer.members.type.const_qualified = false; 12329: out_buffer.members.type.volatile_qualified = false; 12329: } else { 12329: manager(in_buffer, out_buffer, op, tag_type()); 12329: } 12329: } 12329: }; 12329: 12329: template 12329: struct functor_manager_a 12329: { 12329: private: 12329: typedef Functor functor_type; 12329: 12329: 12329: static inline void 12329: manager(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op, function_ptr_tag) 12329: { 12329: functor_manager_common::manage_ptr(in_buffer,out_buffer,op); 12329: } 12329: 12329: 12329: static inline void 12329: manager(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op, true_type) 12329: { 12329: functor_manager_common::manage_small(in_buffer,out_buffer,op); 12329: } 12329: 12329: 12329: static inline void 12329: manager(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op, false_type) 12329: { 12329: typedef functor_wrapper functor_wrapper_type; 12329: 12329: 12329: 12329: 12329: 12329: using wrapper_allocator_type = typename std::allocator_traits::template rebind_alloc; 12329: using wrapper_allocator_pointer_type = typename std::allocator_traits::pointer; 12329: 12329: 12329: if (op == clone_functor_tag) { 12329: 12329: 12329: 12329: const functor_wrapper_type* f = 12329: static_cast(in_buffer.members.obj_ptr); 12329: wrapper_allocator_type wrapper_allocator(static_cast(*f)); 12329: wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); 12329: 12329: 12329: 12329: std::allocator_traits::construct(wrapper_allocator, copy, *f); 12329: 12329: 12329: 12329: functor_wrapper_type* new_f = static_cast(copy); 12329: out_buffer.members.obj_ptr = new_f; 12329: } else if (op == move_functor_tag) { 12329: out_buffer.members.obj_ptr = in_buffer.members.obj_ptr; 12329: in_buffer.members.obj_ptr = 0; 12329: } else if (op == destroy_functor_tag) { 12329: 12329: functor_wrapper_type* victim = 12329: static_cast(in_buffer.members.obj_ptr); 12329: wrapper_allocator_type wrapper_allocator(static_cast(*victim)); 12329: 12329: 12329: 12329: std::allocator_traits::destroy(wrapper_allocator, victim); 12329: 12329: wrapper_allocator.deallocate(victim,1); 12329: out_buffer.members.obj_ptr = 0; 12329: } else if (op == check_functor_type_tag) { 12329: if (*out_buffer.members.type.type == boost::typeindex::type_id()) 12329: out_buffer.members.obj_ptr = in_buffer.members.obj_ptr; 12329: else 12329: out_buffer.members.obj_ptr = 0; 12329: } else { 12329: out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); 12329: out_buffer.members.type.const_qualified = false; 12329: out_buffer.members.type.volatile_qualified = false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: static inline void 12329: manager(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op, function_obj_tag) 12329: { 12329: manager(in_buffer, out_buffer, op, 12329: integral_constant::value)>()); 12329: } 12329: 12329: public: 12329: 12329: 12329: static inline void 12329: manage(const function_buffer& in_buffer, function_buffer& out_buffer, 12329: functor_manager_operation_type op) 12329: { 12329: typedef typename get_function_tag::type tag_type; 12329: if (op == get_functor_type_tag) { 12329: out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); 12329: out_buffer.members.type.const_qualified = false; 12329: out_buffer.members.type.volatile_qualified = false; 12329: } else { 12329: manager(in_buffer, out_buffer, op, tag_type()); 12329: } 12329: } 12329: }; 12329: 12329: 12329: struct useless_clear_type {}; 12329: # 585 "/usr/include/boost/function/function_base.hpp" 3 4 12329: struct vtable_base 12329: { 12329: void (*manager)(const function_buffer& in_buffer, 12329: function_buffer& out_buffer, 12329: functor_manager_operation_type op); 12329: }; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: class function_base 12329: { 12329: public: 12329: function_base() : vtable(0) { } 12329: 12329: 12329: bool empty() const { return !vtable; } 12329: 12329: 12329: 12329: const boost::typeindex::type_info& target_type() const 12329: { 12329: if (!vtable) return boost::typeindex::type_id().type_info(); 12329: 12329: detail::function::function_buffer type; 12329: get_vtable()->manager(functor, type, detail::function::get_functor_type_tag); 12329: return *type.members.type.type; 12329: } 12329: 12329: template 12329: Functor* target() 12329: { 12329: if (!vtable) return 0; 12329: 12329: detail::function::function_buffer type_result; 12329: type_result.members.type.type = &boost::typeindex::type_id().type_info(); 12329: type_result.members.type.const_qualified = is_const::value; 12329: type_result.members.type.volatile_qualified = is_volatile::value; 12329: get_vtable()->manager(functor, type_result, 12329: detail::function::check_functor_type_tag); 12329: return static_cast(type_result.members.obj_ptr); 12329: } 12329: 12329: template 12329: const Functor* target() const 12329: { 12329: if (!vtable) return 0; 12329: 12329: detail::function::function_buffer type_result; 12329: type_result.members.type.type = &boost::typeindex::type_id().type_info(); 12329: type_result.members.type.const_qualified = true; 12329: type_result.members.type.volatile_qualified = is_volatile::value; 12329: get_vtable()->manager(functor, type_result, 12329: detail::function::check_functor_type_tag); 12329: 12329: 12329: return static_cast(type_result.members.obj_ptr); 12329: } 12329: 12329: template 12329: bool contains(const F& f) const 12329: { 12329: if (const F* fp = this->template target()) 12329: { 12329: return function_equal(*fp, f); 12329: } else { 12329: return false; 12329: } 12329: } 12329: # 683 "/usr/include/boost/function/function_base.hpp" 3 4 12329: public: 12329: detail::function::vtable_base* get_vtable() const { 12329: return reinterpret_cast( 12329: reinterpret_cast(vtable) & ~static_cast(0x01)); 12329: } 12329: 12329: bool has_trivial_copy_and_destroy() const { 12329: return reinterpret_cast(vtable) & 0x01; 12329: } 12329: 12329: detail::function::vtable_base* vtable; 12329: mutable detail::function::function_buffer functor; 12329: }; 12329: # 705 "/usr/include/boost/function/function_base.hpp" 3 4 12329: class __attribute__((__visibility__("default"))) bad_function_call : public std::runtime_error 12329: { 12329: public: 12329: bad_function_call() : std::runtime_error("call to empty boost::function") {} 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: inline bool operator==(const function_base& f, 12329: detail::function::useless_clear_type*) 12329: { 12329: return f.empty(); 12329: } 12329: 12329: inline bool operator!=(const function_base& f, 12329: detail::function::useless_clear_type*) 12329: { 12329: return !f.empty(); 12329: } 12329: 12329: inline bool operator==(detail::function::useless_clear_type*, 12329: const function_base& f) 12329: { 12329: return f.empty(); 12329: } 12329: 12329: inline bool operator!=(detail::function::useless_clear_type*, 12329: const function_base& f) 12329: { 12329: return !f.empty(); 12329: } 12329: # 775 "/usr/include/boost/function/function_base.hpp" 3 4 12329: template 12329: typename ::boost::enable_if_< !(::boost::is_integral::value), bool>::type 12329: operator==(const function_base& f, Functor g) 12329: { 12329: if (const Functor* fp = f.template target()) 12329: return function_equal(*fp, g); 12329: else return false; 12329: } 12329: 12329: template 12329: typename ::boost::enable_if_< !(::boost::is_integral::value), bool>::type 12329: operator==(Functor g, const function_base& f) 12329: { 12329: if (const Functor* fp = f.template target()) 12329: return function_equal(g, *fp); 12329: else return false; 12329: } 12329: 12329: template 12329: typename ::boost::enable_if_< !(::boost::is_integral::value), bool>::type 12329: operator!=(const function_base& f, Functor g) 12329: { 12329: if (const Functor* fp = f.template target()) 12329: return !function_equal(*fp, g); 12329: else return true; 12329: } 12329: 12329: template 12329: typename ::boost::enable_if_< !(::boost::is_integral::value), bool>::type 12329: operator!=(Functor g, const function_base& f) 12329: { 12329: if (const Functor* fp = f.template target()) 12329: return !function_equal(g, *fp); 12329: else return true; 12329: } 12329: 12329: 12329: template 12329: typename ::boost::enable_if_< !(::boost::is_integral::value), bool>::type 12329: operator==(const function_base& f, reference_wrapper g) 12329: { 12329: if (const Functor* fp = f.template target()) 12329: return fp == g.get_pointer(); 12329: else return false; 12329: } 12329: 12329: template 12329: typename ::boost::enable_if_< !(::boost::is_integral::value), bool>::type 12329: operator==(reference_wrapper g, const function_base& f) 12329: { 12329: if (const Functor* fp = f.template target()) 12329: return g.get_pointer() == fp; 12329: else return false; 12329: } 12329: 12329: template 12329: typename ::boost::enable_if_< !(::boost::is_integral::value), bool>::type 12329: operator!=(const function_base& f, reference_wrapper g) 12329: { 12329: if (const Functor* fp = f.template target()) 12329: return fp != g.get_pointer(); 12329: else return true; 12329: } 12329: 12329: template 12329: typename ::boost::enable_if_< !(::boost::is_integral::value), bool>::type 12329: operator!=(reference_wrapper g, const function_base& f) 12329: { 12329: if (const Functor* fp = f.template target()) 12329: return g.get_pointer() != fp; 12329: else return true; 12329: } 12329: 12329: 12329: 12329: namespace detail { 12329: namespace function { 12329: inline bool has_empty_target(const function_base* f) 12329: { 12329: return f->empty(); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: inline bool has_empty_target(...) 12329: { 12329: return false; 12329: } 12329: 12329: } 12329: } 12329: } 12329: # 18 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mem_fn.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mem_fn.hpp" 3 4 12329: # 1 "/usr/include/boost/bind/mem_fn.hpp" 1 3 4 12329: # 25 "/usr/include/boost/bind/mem_fn.hpp" 3 4 12329: # 1 "/usr/include/boost/get_pointer.hpp" 1 3 4 12329: # 14 "/usr/include/boost/get_pointer.hpp" 3 4 12329: # 1 "/usr/include/boost/config/no_tr1/memory.hpp" 1 3 4 12329: # 15 "/usr/include/boost/get_pointer.hpp" 2 3 4 12329: 12329: namespace boost { 12329: 12329: 12329: 12329: template T * get_pointer(T * p) 12329: { 12329: return p; 12329: } 12329: # 43 "/usr/include/boost/get_pointer.hpp" 3 4 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: 12329: template T * get_pointer(std::auto_ptr const& p) 12329: { 12329: return p.get(); 12329: } 12329: 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template T * get_pointer( std::unique_ptr const& p ) 12329: { 12329: return p.get(); 12329: } 12329: 12329: template T * get_pointer( std::shared_ptr const& p ) 12329: { 12329: return p.get(); 12329: } 12329: 12329: 12329: 12329: } 12329: # 26 "/usr/include/boost/bind/mem_fn.hpp" 2 3 4 12329: 12329: 12329: namespace boost 12329: { 12329: # 207 "/usr/include/boost/bind/mem_fn.hpp" 3 4 12329: namespace _mfi 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/bind/mem_fn_template.hpp" 1 3 4 12329: # 21 "/usr/include/boost/bind/mem_fn_template.hpp" 3 4 12329: template class mf0 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: typedef T * argument_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (); 12329: F f_; 12329: 12329: template R call(U & u, T const *) const 12329: { 12329: return (u.*f_)(); 12329: } 12329: 12329: template R call(U & u, void const *) const 12329: { 12329: return (get_pointer(u)->*f_)(); 12329: } 12329: 12329: public: 12329: 12329: explicit mf0(F f): f_(f) {} 12329: 12329: R operator()(T * p) const 12329: { 12329: return (p->*f_)(); 12329: } 12329: 12329: template R operator()(U & u) const 12329: { 12329: U const * p = 0; 12329: return call(u, p); 12329: } 12329: 12329: 12329: 12329: template R operator()(U const & u) const 12329: { 12329: U const * p = 0; 12329: return call(u, p); 12329: } 12329: 12329: 12329: 12329: R operator()(T & t) const 12329: { 12329: return (t.*f_)(); 12329: } 12329: 12329: bool operator==(mf0 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(mf0 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class cmf0 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: typedef T const * argument_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) () const; 12329: F f_; 12329: 12329: template R call(U & u, T const *) const 12329: { 12329: return (u.*f_)(); 12329: } 12329: 12329: template R call(U & u, void const *) const 12329: { 12329: return (get_pointer(u)->*f_)(); 12329: } 12329: 12329: public: 12329: 12329: explicit cmf0(F f): f_(f) {} 12329: 12329: template R operator()(U const & u) const 12329: { 12329: U const * p = 0; 12329: return call(u, p); 12329: } 12329: 12329: R operator()(T const & t) const 12329: { 12329: return (t.*f_)(); 12329: } 12329: 12329: bool operator==(cmf0 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(cmf0 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class mf1 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: typedef T * first_argument_type; 12329: typedef A1 second_argument_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1); 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1) const 12329: { 12329: return (u.*f_)(b1); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1) const 12329: { 12329: return (get_pointer(u)->*f_)(b1); 12329: } 12329: 12329: public: 12329: 12329: explicit mf1(F f): f_(f) {} 12329: 12329: R operator()(T * p, A1 a1) const 12329: { 12329: return (p->*f_)(a1); 12329: } 12329: 12329: template R operator()(U & u, A1 a1) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1); 12329: } 12329: 12329: 12329: 12329: template R operator()(U const & u, A1 a1) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1); 12329: } 12329: 12329: 12329: 12329: R operator()(T & t, A1 a1) const 12329: { 12329: return (t.*f_)(a1); 12329: } 12329: 12329: bool operator==(mf1 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(mf1 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class cmf1 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: typedef T const * first_argument_type; 12329: typedef A1 second_argument_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1) const; 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1) const 12329: { 12329: return (u.*f_)(b1); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1) const 12329: { 12329: return (get_pointer(u)->*f_)(b1); 12329: } 12329: 12329: public: 12329: 12329: explicit cmf1(F f): f_(f) {} 12329: 12329: template R operator()(U const & u, A1 a1) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1); 12329: } 12329: 12329: R operator()(T const & t, A1 a1) const 12329: { 12329: return (t.*f_)(a1); 12329: } 12329: 12329: bool operator==(cmf1 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(cmf1 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class mf2 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2); 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2) const 12329: { 12329: return (u.*f_)(b1, b2); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2); 12329: } 12329: 12329: public: 12329: 12329: explicit mf2(F f): f_(f) {} 12329: 12329: R operator()(T * p, A1 a1, A2 a2) const 12329: { 12329: return (p->*f_)(a1, a2); 12329: } 12329: 12329: template R operator()(U & u, A1 a1, A2 a2) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2); 12329: } 12329: 12329: 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2); 12329: } 12329: 12329: 12329: 12329: R operator()(T & t, A1 a1, A2 a2) const 12329: { 12329: return (t.*f_)(a1, a2); 12329: } 12329: 12329: bool operator==(mf2 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(mf2 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class cmf2 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2) const; 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2) const 12329: { 12329: return (u.*f_)(b1, b2); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2); 12329: } 12329: 12329: public: 12329: 12329: explicit cmf2(F f): f_(f) {} 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2); 12329: } 12329: 12329: R operator()(T const & t, A1 a1, A2 a2) const 12329: { 12329: return (t.*f_)(a1, a2); 12329: } 12329: 12329: bool operator==(cmf2 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(cmf2 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class mf3 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2, A3); 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const 12329: { 12329: return (u.*f_)(b1, b2, b3); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2, b3); 12329: } 12329: 12329: public: 12329: 12329: explicit mf3(F f): f_(f) {} 12329: 12329: R operator()(T * p, A1 a1, A2 a2, A3 a3) const 12329: { 12329: return (p->*f_)(a1, a2, a3); 12329: } 12329: 12329: template R operator()(U & u, A1 a1, A2 a2, A3 a3) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3); 12329: } 12329: 12329: 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2, A3 a3) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3); 12329: } 12329: 12329: 12329: 12329: R operator()(T & t, A1 a1, A2 a2, A3 a3) const 12329: { 12329: return (t.*f_)(a1, a2, a3); 12329: } 12329: 12329: bool operator==(mf3 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(mf3 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class cmf3 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2, A3) const; 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const 12329: { 12329: return (u.*f_)(b1, b2, b3); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2, b3); 12329: } 12329: 12329: public: 12329: 12329: explicit cmf3(F f): f_(f) {} 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2, A3 a3) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3); 12329: } 12329: 12329: R operator()(T const & t, A1 a1, A2 a2, A3 a3) const 12329: { 12329: return (t.*f_)(a1, a2, a3); 12329: } 12329: 12329: bool operator==(cmf3 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(cmf3 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class mf4 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2, A3, A4); 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const 12329: { 12329: return (u.*f_)(b1, b2, b3, b4); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2, b3, b4); 12329: } 12329: 12329: public: 12329: 12329: explicit mf4(F f): f_(f) {} 12329: 12329: R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4) const 12329: { 12329: return (p->*f_)(a1, a2, a3, a4); 12329: } 12329: 12329: template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4); 12329: } 12329: 12329: 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4); 12329: } 12329: 12329: 12329: 12329: R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4) const 12329: { 12329: return (t.*f_)(a1, a2, a3, a4); 12329: } 12329: 12329: bool operator==(mf4 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(mf4 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class cmf4 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2, A3, A4) const; 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const 12329: { 12329: return (u.*f_)(b1, b2, b3, b4); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2, b3, b4); 12329: } 12329: 12329: public: 12329: 12329: explicit cmf4(F f): f_(f) {} 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4); 12329: } 12329: 12329: R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4) const 12329: { 12329: return (t.*f_)(a1, a2, a3, a4); 12329: } 12329: 12329: bool operator==(cmf4 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(cmf4 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class mf5 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2, A3, A4, A5); 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const 12329: { 12329: return (u.*f_)(b1, b2, b3, b4, b5); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5); 12329: } 12329: 12329: public: 12329: 12329: explicit mf5(F f): f_(f) {} 12329: 12329: R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const 12329: { 12329: return (p->*f_)(a1, a2, a3, a4, a5); 12329: } 12329: 12329: template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4, a5); 12329: } 12329: 12329: 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4, a5); 12329: } 12329: 12329: 12329: 12329: R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const 12329: { 12329: return (t.*f_)(a1, a2, a3, a4, a5); 12329: } 12329: 12329: bool operator==(mf5 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(mf5 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class cmf5 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2, A3, A4, A5) const; 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const 12329: { 12329: return (u.*f_)(b1, b2, b3, b4, b5); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5); 12329: } 12329: 12329: public: 12329: 12329: explicit cmf5(F f): f_(f) {} 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4, a5); 12329: } 12329: 12329: R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const 12329: { 12329: return (t.*f_)(a1, a2, a3, a4, a5); 12329: } 12329: 12329: bool operator==(cmf5 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(cmf5 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class mf6 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2, A3, A4, A5, A6); 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const 12329: { 12329: return (u.*f_)(b1, b2, b3, b4, b5, b6); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6); 12329: } 12329: 12329: public: 12329: 12329: explicit mf6(F f): f_(f) {} 12329: 12329: R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const 12329: { 12329: return (p->*f_)(a1, a2, a3, a4, a5, a6); 12329: } 12329: 12329: template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4, a5, a6); 12329: } 12329: 12329: 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4, a5, a6); 12329: } 12329: 12329: 12329: 12329: R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const 12329: { 12329: return (t.*f_)(a1, a2, a3, a4, a5, a6); 12329: } 12329: 12329: bool operator==(mf6 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(mf6 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class cmf6 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2, A3, A4, A5, A6) const; 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const 12329: { 12329: return (u.*f_)(b1, b2, b3, b4, b5, b6); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6); 12329: } 12329: 12329: public: 12329: 12329: explicit cmf6(F f): f_(f) {} 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4, a5, a6); 12329: } 12329: 12329: R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const 12329: { 12329: return (t.*f_)(a1, a2, a3, a4, a5, a6); 12329: } 12329: 12329: bool operator==(cmf6 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(cmf6 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class mf7 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2, A3, A4, A5, A6, A7); 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const 12329: { 12329: return (u.*f_)(b1, b2, b3, b4, b5, b6, b7); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7); 12329: } 12329: 12329: public: 12329: 12329: explicit mf7(F f): f_(f) {} 12329: 12329: R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const 12329: { 12329: return (p->*f_)(a1, a2, a3, a4, a5, a6, a7); 12329: } 12329: 12329: template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4, a5, a6, a7); 12329: } 12329: 12329: 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4, a5, a6, a7); 12329: } 12329: 12329: 12329: 12329: R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const 12329: { 12329: return (t.*f_)(a1, a2, a3, a4, a5, a6, a7); 12329: } 12329: 12329: bool operator==(mf7 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(mf7 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class cmf7 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2, A3, A4, A5, A6, A7) const; 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const 12329: { 12329: return (u.*f_)(b1, b2, b3, b4, b5, b6, b7); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7); 12329: } 12329: 12329: public: 12329: 12329: explicit cmf7(F f): f_(f) {} 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4, a5, a6, a7); 12329: } 12329: 12329: R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const 12329: { 12329: return (t.*f_)(a1, a2, a3, a4, a5, a6, a7); 12329: } 12329: 12329: bool operator==(cmf7 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(cmf7 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class mf8 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2, A3, A4, A5, A6, A7, A8); 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const 12329: { 12329: return (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8); 12329: } 12329: 12329: public: 12329: 12329: explicit mf8(F f): f_(f) {} 12329: 12329: R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const 12329: { 12329: return (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8); 12329: } 12329: 12329: template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4, a5, a6, a7, a8); 12329: } 12329: 12329: 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4, a5, a6, a7, a8); 12329: } 12329: 12329: 12329: 12329: R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const 12329: { 12329: return (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8); 12329: } 12329: 12329: bool operator==(mf8 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(mf8 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: 12329: 12329: template class cmf8 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: private: 12329: 12329: typedef R ( T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const; 12329: F f_; 12329: 12329: template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const 12329: { 12329: return (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8); 12329: } 12329: 12329: template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const 12329: { 12329: return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8); 12329: } 12329: 12329: public: 12329: 12329: explicit cmf8(F f): f_(f) {} 12329: 12329: R operator()(T const * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const 12329: { 12329: return (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8); 12329: } 12329: 12329: template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const 12329: { 12329: U const * p = 0; 12329: return call(u, p, a1, a2, a3, a4, a5, a6, a7, a8); 12329: } 12329: 12329: R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const 12329: { 12329: return (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8); 12329: } 12329: 12329: bool operator==(cmf8 const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(cmf8 const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: # 216 "/usr/include/boost/bind/mem_fn.hpp" 2 3 4 12329: # 258 "/usr/include/boost/bind/mem_fn.hpp" 3 4 12329: } 12329: # 269 "/usr/include/boost/bind/mem_fn.hpp" 3 4 12329: # 1 "/usr/include/boost/bind/mem_fn_cc.hpp" 1 3 4 12329: # 15 "/usr/include/boost/bind/mem_fn_cc.hpp" 3 4 12329: template _mfi::mf0 mem_fn(R ( T::*f) () ) 12329: { 12329: return _mfi::mf0(f); 12329: } 12329: 12329: template _mfi::cmf0 mem_fn(R ( T::*f) () const ) 12329: { 12329: return _mfi::cmf0(f); 12329: } 12329: 12329: template _mfi::mf1 mem_fn(R ( T::*f) (A1) ) 12329: { 12329: return _mfi::mf1(f); 12329: } 12329: 12329: template _mfi::cmf1 mem_fn(R ( T::*f) (A1) const ) 12329: { 12329: return _mfi::cmf1(f); 12329: } 12329: 12329: template _mfi::mf2 mem_fn(R ( T::*f) (A1, A2) ) 12329: { 12329: return _mfi::mf2(f); 12329: } 12329: 12329: template _mfi::cmf2 mem_fn(R ( T::*f) (A1, A2) const ) 12329: { 12329: return _mfi::cmf2(f); 12329: } 12329: 12329: template _mfi::mf3 mem_fn(R ( T::*f) (A1, A2, A3) ) 12329: { 12329: return _mfi::mf3(f); 12329: } 12329: 12329: template _mfi::cmf3 mem_fn(R ( T::*f) (A1, A2, A3) const ) 12329: { 12329: return _mfi::cmf3(f); 12329: } 12329: 12329: template _mfi::mf4 mem_fn(R ( T::*f) (A1, A2, A3, A4) ) 12329: { 12329: return _mfi::mf4(f); 12329: } 12329: 12329: template _mfi::cmf4 mem_fn(R ( T::*f) (A1, A2, A3, A4) const ) 12329: { 12329: return _mfi::cmf4(f); 12329: } 12329: 12329: template _mfi::mf5 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5) ) 12329: { 12329: return _mfi::mf5(f); 12329: } 12329: 12329: template _mfi::cmf5 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5) const ) 12329: { 12329: return _mfi::cmf5(f); 12329: } 12329: 12329: template _mfi::mf6 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6) ) 12329: { 12329: return _mfi::mf6(f); 12329: } 12329: 12329: template _mfi::cmf6 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6) const ) 12329: { 12329: return _mfi::cmf6(f); 12329: } 12329: 12329: template _mfi::mf7 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6, A7) ) 12329: { 12329: return _mfi::mf7(f); 12329: } 12329: 12329: template _mfi::cmf7 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6, A7) const ) 12329: { 12329: return _mfi::cmf7(f); 12329: } 12329: 12329: template _mfi::mf8 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) ) 12329: { 12329: return _mfi::mf8(f); 12329: } 12329: 12329: template _mfi::cmf8 mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const ) 12329: { 12329: return _mfi::cmf8(f); 12329: } 12329: # 270 "/usr/include/boost/bind/mem_fn.hpp" 2 3 4 12329: # 325 "/usr/include/boost/bind/mem_fn.hpp" 3 4 12329: namespace _mfi 12329: { 12329: 12329: template class dm 12329: { 12329: public: 12329: 12329: typedef R const & result_type; 12329: typedef T const * argument_type; 12329: 12329: private: 12329: 12329: typedef R (T::*F); 12329: F f_; 12329: 12329: template R const & call(U & u, T const *) const 12329: { 12329: return (u.*f_); 12329: } 12329: 12329: template R const & call(U & u, void const *) const 12329: { 12329: return (get_pointer(u)->*f_); 12329: } 12329: 12329: public: 12329: 12329: explicit dm(F f): f_(f) {} 12329: 12329: R & operator()(T * p) const 12329: { 12329: return (p->*f_); 12329: } 12329: 12329: R const & operator()(T const * p) const 12329: { 12329: return (p->*f_); 12329: } 12329: 12329: template R const & operator()(U const & u) const 12329: { 12329: return call(u, &u); 12329: } 12329: 12329: 12329: 12329: R & operator()(T & t) const 12329: { 12329: return (t.*f_); 12329: } 12329: 12329: R const & operator()(T const & t) const 12329: { 12329: return (t.*f_); 12329: } 12329: 12329: 12329: 12329: bool operator==(dm const & rhs) const 12329: { 12329: return f_ == rhs.f_; 12329: } 12329: 12329: bool operator!=(dm const & rhs) const 12329: { 12329: return f_ != rhs.f_; 12329: } 12329: }; 12329: 12329: } 12329: 12329: template _mfi::dm mem_fn(R T::*f) 12329: { 12329: return _mfi::dm(f); 12329: } 12329: 12329: } 12329: # 23 "/usr/include/boost/mem_fn.hpp" 2 3 4 12329: # 19 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/preprocessor/enum.hpp" 1 3 4 12329: # 15 "/usr/include/boost/preprocessor/enum.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/repetition/enum.hpp" 1 3 4 12329: # 17 "/usr/include/boost/preprocessor/repetition/enum.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/cat.hpp" 1 3 4 12329: # 17 "/usr/include/boost/preprocessor/cat.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/config/config.hpp" 1 3 4 12329: # 18 "/usr/include/boost/preprocessor/cat.hpp" 2 3 4 12329: # 18 "/usr/include/boost/preprocessor/repetition/enum.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/preprocessor/debug/error.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/repetition/enum.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 12329: # 21 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/control/iif.hpp" 1 3 4 12329: # 22 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 2 3 4 12329: # 21 "/usr/include/boost/preprocessor/repetition/enum.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/punctuation/comma_if.hpp" 1 3 4 12329: # 18 "/usr/include/boost/preprocessor/punctuation/comma_if.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/control/if.hpp" 1 3 4 12329: # 19 "/usr/include/boost/preprocessor/control/if.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/logical/bool.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/control/if.hpp" 2 3 4 12329: # 19 "/usr/include/boost/preprocessor/punctuation/comma_if.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/facilities/empty.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/punctuation/comma_if.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/punctuation/comma.hpp" 1 3 4 12329: # 21 "/usr/include/boost/preprocessor/punctuation/comma_if.hpp" 2 3 4 12329: # 22 "/usr/include/boost/preprocessor/repetition/enum.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/repetition/repeat.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/repetition/repeat.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 12329: # 21 "/usr/include/boost/preprocessor/repetition/repeat.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/tuple/eat.hpp" 1 3 4 12329: # 22 "/usr/include/boost/preprocessor/repetition/repeat.hpp" 2 3 4 12329: # 23 "/usr/include/boost/preprocessor/repetition/enum.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/tuple/elem.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/tuple/elem.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/facilities/expand.hpp" 1 3 4 12329: # 21 "/usr/include/boost/preprocessor/tuple/elem.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/facilities/overload.hpp" 1 3 4 12329: # 17 "/usr/include/boost/preprocessor/facilities/overload.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/variadic/size.hpp" 1 3 4 12329: # 18 "/usr/include/boost/preprocessor/facilities/overload.hpp" 2 3 4 12329: # 22 "/usr/include/boost/preprocessor/tuple/elem.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/tuple/rem.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/tuple/rem.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/tuple/detail/is_single_return.hpp" 1 3 4 12329: # 21 "/usr/include/boost/preprocessor/tuple/rem.hpp" 2 3 4 12329: # 23 "/usr/include/boost/preprocessor/tuple/elem.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/variadic/elem.hpp" 1 3 4 12329: # 24 "/usr/include/boost/preprocessor/tuple/elem.hpp" 2 3 4 12329: # 24 "/usr/include/boost/preprocessor/repetition/enum.hpp" 2 3 4 12329: # 16 "/usr/include/boost/preprocessor/enum.hpp" 2 3 4 12329: # 21 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/enum_params.hpp" 1 3 4 12329: # 15 "/usr/include/boost/preprocessor/enum_params.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/repetition/enum_params.hpp" 1 3 4 12329: # 16 "/usr/include/boost/preprocessor/enum_params.hpp" 2 3 4 12329: # 22 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/preprocessor/repeat.hpp" 1 3 4 12329: # 24 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/inc.hpp" 1 3 4 12329: # 15 "/usr/include/boost/preprocessor/inc.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/arithmetic/inc.hpp" 1 3 4 12329: # 16 "/usr/include/boost/preprocessor/inc.hpp" 2 3 4 12329: # 25 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4 12329: # 14 "/usr/include/boost/function/function_template.hpp" 2 3 4 12329: # 1 "/usr/include/boost/core/no_exceptions_support.hpp" 1 3 4 12329: # 15 "/usr/include/boost/function/function_template.hpp" 2 3 4 12329: # 86 "/usr/include/boost/function/function_template.hpp" 3 4 12329: namespace boost { 12329: namespace detail { 12329: namespace function { 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 12329: > 12329: struct function_invoker1 12329: { 12329: static R invoke(function_buffer& function_ptr , 12329: T0 a0) 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: return f( static_cast(a0)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 12329: > 12329: struct void_function_invoker1 12329: { 12329: static void 12329: invoke(function_buffer& function_ptr , 12329: T0 a0) 12329: 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: f( static_cast(a0)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 12329: > 12329: struct function_obj_invoker1 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 12329: > 12329: struct void_function_obj_invoker1 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 12329: > 12329: struct function_ref_invoker1 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 12329: > 12329: struct void_function_ref_invoker1 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0)); 12329: } 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 12329: > 12329: struct function_mem_invoker1 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: return boost::mem_fn(*f)( static_cast(a0)); 12329: } 12329: }; 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 12329: > 12329: struct function_void_mem_invoker1 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: boost::mem_fn(*f)( static_cast(a0)); 12329: } 12329: }; 12329: 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 12329: > 12329: struct get_function_invoker1 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_invoker1< 12329: FunctionPtr, 12329: R , 12329: T0 12329: >, 12329: function_invoker1< 12329: FunctionPtr, 12329: R , 12329: T0 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 12329: > 12329: struct get_function_obj_invoker1 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_obj_invoker1< 12329: FunctionObj, 12329: R , 12329: T0 12329: >, 12329: function_obj_invoker1< 12329: FunctionObj, 12329: R , 12329: T0 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 12329: > 12329: struct get_function_ref_invoker1 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_ref_invoker1< 12329: FunctionObj, 12329: R , 12329: T0 12329: >, 12329: function_ref_invoker1< 12329: FunctionObj, 12329: R , 12329: T0 12329: > 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 12329: > 12329: struct get_member_invoker1 12329: { 12329: typedef typename conditional<(is_void::value), 12329: function_void_mem_invoker1< 12329: MemberPtr, 12329: R , 12329: T0 12329: >, 12329: function_mem_invoker1< 12329: MemberPtr, 12329: R , 12329: T0 12329: > 12329: >::type type; 12329: }; 12329: # 331 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct get_invoker1 { }; 12329: 12329: 12329: template<> 12329: struct get_invoker1 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_invoker1< 12329: FunctionPtr, 12329: R , 12329: T0 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_invoker1< 12329: FunctionPtr, 12329: R , 12329: T0 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker1 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_member_invoker1< 12329: MemberPtr, 12329: R , 12329: T0 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_member_invoker1< 12329: MemberPtr, 12329: R , 12329: T0 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker1 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_obj_invoker1< 12329: FunctionObj, 12329: R , 12329: T0 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_obj_invoker1< 12329: FunctionObj, 12329: R , 12329: T0 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager_a manager_type; 12329: }; 12329: }; 12329: 12329: 12329: template<> 12329: struct get_invoker1 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_ref_invoker1< 12329: typename RefWrapper::type, 12329: R , 12329: T0 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_ref_invoker1< 12329: typename RefWrapper::type, 12329: R , 12329: T0 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: }; 12329: # 476 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct basic_vtable1 12329: { 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: typedef result_type (*invoker_type)(function_buffer& 12329: , 12329: T0); 12329: 12329: template 12329: bool assign_to(F f, function_buffer& functor) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to(f, functor, tag()); 12329: } 12329: template 12329: bool assign_to_a(F f, function_buffer& functor, Allocator a) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to_a(f, functor, a, tag()); 12329: } 12329: 12329: void clear(function_buffer& functor) const 12329: { 12329: if (base.manager) 12329: base.manager(functor, functor, destroy_functor_tag); 12329: } 12329: 12329: private: 12329: 12329: template 12329: bool 12329: assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const 12329: { 12329: this->clear(functor); 12329: if (f) { 12329: 12329: 12329: functor.members.func_ptr = reinterpret_cast(f); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const 12329: { 12329: return assign_to(f,functor,function_ptr_tag()); 12329: } 12329: 12329: 12329: 12329: template 12329: bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to(boost::mem_fn(f), functor); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to_a(boost::mem_fn(f), functor, a); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, true_type) const 12329: { 12329: new (reinterpret_cast(functor.data)) FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const 12329: { 12329: assign_functor(f,functor,true_type()); 12329: } 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, false_type) const 12329: { 12329: functor.members.obj_ptr = new FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const 12329: { 12329: typedef functor_wrapper functor_wrapper_type; 12329: 12329: 12329: 12329: 12329: 12329: using wrapper_allocator_type = typename std::allocator_traits::template rebind_alloc; 12329: using wrapper_allocator_pointer_type = typename std::allocator_traits::pointer; 12329: 12329: wrapper_allocator_type wrapper_allocator(a); 12329: wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); 12329: 12329: 12329: 12329: std::allocator_traits::construct(wrapper_allocator, copy, functor_wrapper_type(f,a)); 12329: 12329: functor_wrapper_type* new_f = static_cast(copy); 12329: functor.members.obj_ptr = new_f; 12329: } 12329: 12329: template 12329: bool 12329: assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor(f, functor, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor_a(f, functor, a, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: template 12329: bool 12329: assign_to(const reference_wrapper& f, 12329: function_buffer& functor, function_obj_ref_tag) const 12329: { 12329: functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer()); 12329: functor.members.obj_ref.is_const_qualified = is_const::value; 12329: functor.members.obj_ref.is_volatile_qualified = is_volatile::value; 12329: return true; 12329: } 12329: template 12329: bool 12329: assign_to_a(const reference_wrapper& f, 12329: function_buffer& functor, Allocator, function_obj_ref_tag) const 12329: { 12329: return assign_to(f,functor,function_obj_ref_tag()); 12329: } 12329: 12329: public: 12329: vtable_base base; 12329: invoker_type invoker; 12329: }; 12329: } 12329: } 12329: 12329: template< 12329: typename R , 12329: typename T0 12329: > 12329: class function1 : public function_base 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: typedef boost::detail::function::basic_vtable1< 12329: R , T0> 12329: vtable_type; 12329: 12329: vtable_type* get_vtable() const { 12329: return reinterpret_cast( 12329: reinterpret_cast(vtable) & ~static_cast(0x01)); 12329: } 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: static const int args = 1; 12329: 12329: 12329: template 12329: struct sig 12329: { 12329: typedef result_type type; 12329: }; 12329: 12329: 12329: typedef T0 argument_type; 12329: 12329: 12329: 12329: 12329: 12329: static const int arity = 1; 12329: typedef T0 arg1_type; 12329: 12329: typedef function1 self_type; 12329: 12329: function1() = default; 12329: 12329: 12329: 12329: template 12329: function1(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to(f); 12329: } 12329: template 12329: function1(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to_a(f,a); 12329: } 12329: 12329: 12329: function1(clear_type*) : function_base() { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: function1(const function1& f) : function_base() 12329: { 12329: this->assign_to_own(f); 12329: } 12329: 12329: 12329: function1(function1&& f) : function_base() 12329: { 12329: this->move_assign(f); 12329: } 12329: 12329: 12329: ~function1() { clear(); } 12329: 12329: result_type operator()( T0 a0) const 12329: { 12329: if (this->empty()) 12329: boost::throw_exception(bad_function_call()); 12329: 12329: return get_vtable()->invoker 12329: (this->functor , static_cast(a0)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: function1&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: this->clear(); 12329: { try { 12329: this->assign_to(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: template 12329: void assign(Functor f, Allocator a) 12329: { 12329: this->clear(); 12329: { try{ 12329: this->assign_to_a(f,a); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: 12329: 12329: function1& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: # 821 "/usr/include/boost/function/function_template.hpp" 3 4 12329: function1& operator=(const function1& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->assign_to_own(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: 12329: function1& operator=(function1&& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->move_assign(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: void swap(function1& other) 12329: { 12329: if (&other == this) 12329: return; 12329: 12329: function1 tmp; 12329: tmp.move_assign(*this); 12329: this->move_assign(other); 12329: other.move_assign(tmp); 12329: } 12329: 12329: 12329: void clear() 12329: { 12329: if (vtable) { 12329: if (!this->has_trivial_copy_and_destroy()) 12329: get_vtable()->clear(this->functor); 12329: vtable = 0; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: struct dummy { 12329: void nonnull() {} 12329: }; 12329: 12329: typedef void (dummy::*safe_bool)(); 12329: 12329: public: 12329: operator safe_bool () const 12329: { return (this->empty())? 0 : &dummy::nonnull; } 12329: 12329: bool operator!() const 12329: { return this->empty(); } 12329: 12329: 12329: private: 12329: void assign_to_own(const function1& f) 12329: { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::clone_functor_tag); 12329: } 12329: } 12329: 12329: template 12329: void assign_to(Functor f) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker1 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to(f, functor)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: template 12329: void assign_to_a(Functor f,Allocator a) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker1 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply_a 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to_a(f, functor, a)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: 12329: 12329: 12329: void move_assign(function1& f) 12329: { 12329: if (&f == this) 12329: return; 12329: 12329: { try { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::move_functor_tag); 12329: f.vtable = 0; 12329: } else { 12329: clear(); 12329: } 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: }; 12329: 12329: template 12329: inline void swap(function1< 12329: R , 12329: T0 12329: >& f1, 12329: function1< 12329: R , 12329: T0 12329: >& f2) 12329: { 12329: f1.swap(f2); 12329: } 12329: 12329: 12329: template 12329: void operator==(const function1< 12329: R , 12329: T0>&, 12329: const function1< 12329: R , 12329: T0>&); 12329: template 12329: void operator!=(const function1< 12329: R , 12329: T0>&, 12329: const function1< 12329: R , 12329: T0>& ); 12329: # 1064 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: class function 12329: : public function1 12329: { 12329: typedef function1 base_type; 12329: typedef function self_type; 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: 12329: function() = default; 12329: 12329: template 12329: function(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f) 12329: { 12329: } 12329: template 12329: function(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f,a) 12329: { 12329: } 12329: 12329: 12329: function(clear_type*) : base_type() {} 12329: 12329: 12329: function(const self_type& f) : base_type(static_cast(f)){} 12329: 12329: function(const base_type& f) : base_type(static_cast(f)){} 12329: 12329: 12329: 12329: function(self_type&& f): base_type(static_cast(f)){} 12329: function(base_type&& f): base_type(static_cast(f)){} 12329: 12329: 12329: self_type& operator=(const self_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(self_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: self_type&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(const base_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(base_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 23 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4 12329: # 12 "/usr/include/boost/function/function1.hpp" 2 3 4 12329: # 14 "/usr/include/boost/program_options/value_semantic.hpp" 2 3 4 12329: # 1 "/usr/include/boost/lexical_cast.hpp" 1 3 4 12329: # 23 "/usr/include/boost/lexical_cast.hpp" 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/range/iterator_range_core.hpp" 1 3 4 12329: # 25 "/usr/include/boost/range/iterator_range_core.hpp" 3 4 12329: # 1 "/usr/include/boost/assert.hpp" 1 3 4 12329: # 58 "/usr/include/boost/assert.hpp" 3 4 12329: # 1 "/usr/include/assert.h" 1 3 4 12329: # 59 "/usr/include/boost/assert.hpp" 2 3 4 12329: # 26 "/usr/include/boost/range/iterator_range_core.hpp" 2 3 4 12329: # 1 "/usr/include/boost/iterator/iterator_traits.hpp" 1 3 4 12329: # 10 "/usr/include/boost/iterator/iterator_traits.hpp" 3 4 12329: # 1 "/usr/include/c++/12/iterator" 1 3 4 12329: # 58 "/usr/include/c++/12/iterator" 3 4 12329: 12329: # 59 "/usr/include/c++/12/iterator" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/stream_iterator.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/stream_iterator.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/stream_iterator.h" 3 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: template, typename _Dist = ptrdiff_t> 12329: class istream_iterator 12329: : public iterator 12329: { 12329: public: 12329: typedef _CharT char_type; 12329: typedef _Traits traits_type; 12329: typedef basic_istream<_CharT, _Traits> istream_type; 12329: 12329: private: 12329: istream_type* _M_stream; 12329: _Tp _M_value; 12329: 12329: 12329: 12329: bool _M_ok; 12329: 12329: public: 12329: 12329: constexpr istream_iterator() 12329: noexcept(is_nothrow_default_constructible<_Tp>::value) 12329: : _M_stream(0), _M_value(), _M_ok(false) {} 12329: 12329: 12329: istream_iterator(istream_type& __s) 12329: : _M_stream(std::__addressof(__s)), _M_ok(true) 12329: { _M_read(); } 12329: 12329: istream_iterator(const istream_iterator& __obj) 12329: noexcept(is_nothrow_copy_constructible<_Tp>::value) 12329: : _M_stream(__obj._M_stream), _M_value(__obj._M_value), 12329: _M_ok(__obj._M_ok) 12329: { } 12329: # 94 "/usr/include/c++/12/bits/stream_iterator.h" 3 12329: istream_iterator& operator=(const istream_iterator&) = default; 12329: ~istream_iterator() = default; 12329: 12329: 12329: 12329: const _Tp& 12329: operator*() const noexcept 12329: { 12329: 12329: 12329: ; 12329: return _M_value; 12329: } 12329: 12329: 12329: const _Tp* 12329: operator->() const noexcept 12329: { return std::__addressof((operator*())); } 12329: 12329: istream_iterator& 12329: operator++() 12329: { 12329: 12329: 12329: ; 12329: _M_read(); 12329: return *this; 12329: } 12329: 12329: istream_iterator 12329: operator++(int) 12329: { 12329: 12329: 12329: ; 12329: istream_iterator __tmp = *this; 12329: _M_read(); 12329: return __tmp; 12329: } 12329: 12329: private: 12329: bool 12329: _M_equal(const istream_iterator& __x) const noexcept 12329: { 12329: 12329: 12329: return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); 12329: } 12329: 12329: void 12329: _M_read() 12329: { 12329: if (_M_stream && !(*_M_stream >> _M_value)) 12329: { 12329: _M_stream = 0; 12329: _M_ok = false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: friend bool 12329: operator==(const istream_iterator& __x, const istream_iterator& __y) 12329: noexcept 12329: { return __x._M_equal(__y); } 12329: 12329: 12329: 12329: 12329: 12329: friend bool 12329: operator!=(const istream_iterator& __x, const istream_iterator& __y) 12329: noexcept 12329: { return !__x._M_equal(__y); } 12329: # 177 "/usr/include/c++/12/bits/stream_iterator.h" 3 12329: }; 12329: # 190 "/usr/include/c++/12/bits/stream_iterator.h" 3 12329: template > 12329: class ostream_iterator 12329: : public iterator 12329: { 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef _Traits traits_type; 12329: typedef basic_ostream<_CharT, _Traits> ostream_type; 12329: 12329: 12329: private: 12329: ostream_type* _M_stream; 12329: const _CharT* _M_string; 12329: 12329: public: 12329: 12329: ostream_iterator(ostream_type& __s) noexcept 12329: : _M_stream(std::__addressof(__s)), _M_string(0) {} 12329: # 225 "/usr/include/c++/12/bits/stream_iterator.h" 3 12329: ostream_iterator(ostream_type& __s, const _CharT* __c) noexcept 12329: : _M_stream(std::__addressof(__s)), _M_string(__c) { } 12329: 12329: 12329: ostream_iterator(const ostream_iterator& __obj) noexcept 12329: : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } 12329: 12329: 12329: ostream_iterator& operator=(const ostream_iterator&) = default; 12329: 12329: 12329: 12329: 12329: ostream_iterator& 12329: operator=(const _Tp& __value) 12329: { 12329: 12329: 12329: ; 12329: *_M_stream << __value; 12329: if (_M_string) 12329: *_M_stream << _M_string; 12329: return *this; 12329: } 12329: 12329: 12329: ostream_iterator& 12329: operator*() noexcept 12329: { return *this; } 12329: 12329: ostream_iterator& 12329: operator++() noexcept 12329: { return *this; } 12329: 12329: ostream_iterator& 12329: operator++(int) noexcept 12329: { return *this; } 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: 12329: 12329: } 12329: # 66 "/usr/include/c++/12/iterator" 2 3 12329: # 1 "/usr/include/c++/12/bits/streambuf_iterator.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/streambuf_iterator.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/streambuf_iterator.h" 3 12329: 12329: # 1 "/usr/include/c++/12/streambuf" 1 3 12329: # 36 "/usr/include/c++/12/streambuf" 3 12329: 12329: # 37 "/usr/include/c++/12/streambuf" 3 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/ios_base.h" 1 3 12329: # 37 "/usr/include/c++/12/bits/ios_base.h" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/ios_base.h" 3 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/locale_classes.h" 1 3 12329: # 37 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 62 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: class locale 12329: { 12329: public: 12329: 12329: 12329: typedef int category; 12329: 12329: 12329: class facet; 12329: class id; 12329: class _Impl; 12329: 12329: friend class facet; 12329: friend class _Impl; 12329: 12329: template 12329: friend bool 12329: has_facet(const locale&) throw(); 12329: 12329: template 12329: friend const _Facet& 12329: use_facet(const locale&); 12329: 12329: template 12329: friend struct __use_cache; 12329: # 98 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: static const category none = 0; 12329: static const category ctype = 1L << 0; 12329: static const category numeric = 1L << 1; 12329: static const category collate = 1L << 2; 12329: static const category time = 1L << 3; 12329: static const category monetary = 1L << 4; 12329: static const category messages = 1L << 5; 12329: static const category all = (ctype | numeric | collate | 12329: time | monetary | messages); 12329: # 117 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: locale() throw(); 12329: # 126 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: locale(const locale& __other) throw(); 12329: # 136 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: explicit 12329: locale(const char* __s); 12329: # 151 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: locale(const locale& __base, const char* __s, category __cat); 12329: # 162 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: explicit 12329: locale(const std::string& __s) : locale(__s.c_str()) { } 12329: # 177 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: locale(const locale& __base, const std::string& __s, category __cat) 12329: : locale(__base, __s.c_str(), __cat) { } 12329: # 192 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: locale(const locale& __base, const locale& __add, category __cat); 12329: # 205 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: template 12329: locale(const locale& __other, _Facet* __f); 12329: 12329: 12329: ~locale() throw(); 12329: # 219 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: const locale& 12329: operator=(const locale& __other) throw(); 12329: # 234 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: template 12329: locale 12329: combine(const locale& __other) const; 12329: 12329: 12329: 12329: 12329: 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: string 12329: name() const; 12329: # 254 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: bool 12329: operator==(const locale& __other) const throw(); 12329: # 264 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: bool 12329: operator!=(const locale& __other) const throw() 12329: { return !(this->operator==(__other)); } 12329: # 284 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: template 12329: bool 12329: operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, 12329: const basic_string<_Char, _Traits, _Alloc>& __s2) const; 12329: # 300 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: static locale 12329: global(const locale& __loc); 12329: 12329: 12329: 12329: 12329: static const locale& 12329: classic(); 12329: 12329: private: 12329: 12329: _Impl* _M_impl; 12329: 12329: 12329: static _Impl* _S_classic; 12329: 12329: 12329: static _Impl* _S_global; 12329: 12329: 12329: 12329: 12329: 12329: static const char* const* const _S_categories; 12329: # 335 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: enum { _S_categories_size = 6 + 6 }; 12329: 12329: 12329: static __gthread_once_t _S_once; 12329: 12329: 12329: explicit 12329: locale(_Impl*) throw(); 12329: 12329: static void 12329: _S_initialize(); 12329: 12329: static void 12329: _S_initialize_once() throw(); 12329: 12329: static category 12329: _S_normalize_category(category); 12329: 12329: void 12329: _M_coalesce(const locale& __base, const locale& __add, category __cat); 12329: 12329: 12329: static const id* const _S_twinned_facets[]; 12329: 12329: }; 12329: # 373 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: class locale::facet 12329: { 12329: private: 12329: friend class locale; 12329: friend class locale::_Impl; 12329: 12329: mutable _Atomic_word _M_refcount; 12329: 12329: 12329: static __c_locale _S_c_locale; 12329: 12329: 12329: static const char _S_c_name[2]; 12329: 12329: 12329: static __gthread_once_t _S_once; 12329: 12329: 12329: static void 12329: _S_initialize_once(); 12329: 12329: protected: 12329: # 404 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: explicit 12329: facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) 12329: { } 12329: 12329: 12329: virtual 12329: ~facet(); 12329: 12329: static void 12329: _S_create_c_locale(__c_locale& __cloc, const char* __s, 12329: __c_locale __old = 0); 12329: 12329: static __c_locale 12329: _S_clone_c_locale(__c_locale& __cloc) throw(); 12329: 12329: static void 12329: _S_destroy_c_locale(__c_locale& __cloc); 12329: 12329: static __c_locale 12329: _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); 12329: 12329: 12329: 12329: static __c_locale 12329: _S_get_c_locale(); 12329: 12329: __attribute__ ((__const__)) static const char* 12329: _S_get_c_name() throw(); 12329: # 440 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: facet(const facet&) = delete; 12329: 12329: facet& 12329: operator=(const facet&) = delete; 12329: 12329: 12329: private: 12329: void 12329: _M_add_reference() const throw() 12329: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 12329: 12329: void 12329: _M_remove_reference() const throw() 12329: { 12329: 12329: ; 12329: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 12329: { 12329: ; 12329: try 12329: { delete this; } 12329: catch(...) 12329: { } 12329: } 12329: } 12329: 12329: const facet* _M_sso_shim(const id*) const; 12329: const facet* _M_cow_shim(const id*) const; 12329: 12329: protected: 12329: class __shim; 12329: }; 12329: # 485 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: class locale::id 12329: { 12329: private: 12329: friend class locale; 12329: friend class locale::_Impl; 12329: 12329: template 12329: friend const _Facet& 12329: use_facet(const locale&); 12329: 12329: template 12329: friend bool 12329: has_facet(const locale&) throw(); 12329: 12329: 12329: 12329: 12329: mutable size_t _M_index; 12329: 12329: 12329: static _Atomic_word _S_refcount; 12329: 12329: void 12329: operator=(const id&); 12329: 12329: id(const id&); 12329: 12329: public: 12329: 12329: 12329: 12329: id() { } 12329: 12329: size_t 12329: _M_id() const throw(); 12329: }; 12329: 12329: 12329: 12329: class locale::_Impl 12329: { 12329: public: 12329: 12329: friend class locale; 12329: friend class locale::facet; 12329: 12329: template 12329: friend bool 12329: has_facet(const locale&) throw(); 12329: 12329: template 12329: friend const _Facet& 12329: use_facet(const locale&); 12329: 12329: template 12329: friend struct __use_cache; 12329: 12329: private: 12329: 12329: _Atomic_word _M_refcount; 12329: const facet** _M_facets; 12329: size_t _M_facets_size; 12329: const facet** _M_caches; 12329: char** _M_names; 12329: static const locale::id* const _S_id_ctype[]; 12329: static const locale::id* const _S_id_numeric[]; 12329: static const locale::id* const _S_id_collate[]; 12329: static const locale::id* const _S_id_time[]; 12329: static const locale::id* const _S_id_monetary[]; 12329: static const locale::id* const _S_id_messages[]; 12329: static const locale::id* const* const _S_facet_categories[]; 12329: 12329: void 12329: _M_add_reference() throw() 12329: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 12329: 12329: void 12329: _M_remove_reference() throw() 12329: { 12329: 12329: ; 12329: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 12329: { 12329: ; 12329: try 12329: { delete this; } 12329: catch(...) 12329: { } 12329: } 12329: } 12329: 12329: _Impl(const _Impl&, size_t); 12329: _Impl(const char*, size_t); 12329: _Impl(size_t) throw(); 12329: 12329: ~_Impl() throw(); 12329: 12329: _Impl(const _Impl&); 12329: 12329: void 12329: operator=(const _Impl&); 12329: 12329: bool 12329: _M_check_same_name() 12329: { 12329: bool __ret = true; 12329: if (_M_names[1]) 12329: 12329: for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) 12329: __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; 12329: return __ret; 12329: } 12329: 12329: void 12329: _M_replace_categories(const _Impl*, category); 12329: 12329: void 12329: _M_replace_category(const _Impl*, const locale::id* const*); 12329: 12329: void 12329: _M_replace_facet(const _Impl*, const locale::id*); 12329: 12329: void 12329: _M_install_facet(const locale::id*, const facet*); 12329: 12329: template 12329: void 12329: _M_init_facet(_Facet* __facet) 12329: { _M_install_facet(&_Facet::id, __facet); } 12329: 12329: template 12329: void 12329: _M_init_facet_unchecked(_Facet* __facet) 12329: { 12329: __facet->_M_add_reference(); 12329: _M_facets[_Facet::id._M_id()] = __facet; 12329: } 12329: 12329: void 12329: _M_install_cache(const facet*, size_t); 12329: 12329: void _M_init_extra(facet**); 12329: void _M_init_extra(void*, void*, const char*, const char*); 12329: 12329: 12329: 12329: 12329: }; 12329: # 647 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: template 12329: class __cxx11:: collate : public locale::facet 12329: { 12329: public: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef basic_string<_CharT> string_type; 12329: 12329: 12329: protected: 12329: 12329: 12329: __c_locale _M_c_locale_collate; 12329: 12329: public: 12329: 12329: static locale::id id; 12329: # 674 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: explicit 12329: collate(size_t __refs = 0) 12329: : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) 12329: { } 12329: # 688 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: explicit 12329: collate(__c_locale __cloc, size_t __refs = 0) 12329: : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) 12329: { } 12329: # 705 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: int 12329: compare(const _CharT* __lo1, const _CharT* __hi1, 12329: const _CharT* __lo2, const _CharT* __hi2) const 12329: { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } 12329: # 724 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: string_type 12329: transform(const _CharT* __lo, const _CharT* __hi) const 12329: { return this->do_transform(__lo, __hi); } 12329: # 738 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: long 12329: hash(const _CharT* __lo, const _CharT* __hi) const 12329: { return this->do_hash(__lo, __hi); } 12329: 12329: 12329: int 12329: _M_compare(const _CharT*, const _CharT*) const throw(); 12329: 12329: size_t 12329: _M_transform(_CharT*, const _CharT*, size_t) const throw(); 12329: 12329: protected: 12329: 12329: virtual 12329: ~collate() 12329: { _S_destroy_c_locale(_M_c_locale_collate); } 12329: # 767 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: virtual int 12329: do_compare(const _CharT* __lo1, const _CharT* __hi1, 12329: const _CharT* __lo2, const _CharT* __hi2) const; 12329: # 781 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: virtual string_type 12329: do_transform(const _CharT* __lo, const _CharT* __hi) const; 12329: # 794 "/usr/include/c++/12/bits/locale_classes.h" 3 12329: virtual long 12329: do_hash(const _CharT* __lo, const _CharT* __hi) const; 12329: }; 12329: 12329: template 12329: locale::id collate<_CharT>::id; 12329: 12329: 12329: template<> 12329: int 12329: collate::_M_compare(const char*, const char*) const throw(); 12329: 12329: template<> 12329: size_t 12329: collate::_M_transform(char*, const char*, size_t) const throw(); 12329: 12329: 12329: template<> 12329: int 12329: collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); 12329: 12329: template<> 12329: size_t 12329: collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); 12329: 12329: 12329: 12329: template 12329: class __cxx11:: collate_byname : public collate<_CharT> 12329: { 12329: public: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef basic_string<_CharT> string_type; 12329: 12329: 12329: explicit 12329: collate_byname(const char* __s, size_t __refs = 0) 12329: : collate<_CharT>(__refs) 12329: { 12329: if (__builtin_strcmp(__s, "C") != 0 12329: && __builtin_strcmp(__s, "POSIX") != 0) 12329: { 12329: this->_S_destroy_c_locale(this->_M_c_locale_collate); 12329: this->_S_create_c_locale(this->_M_c_locale_collate, __s); 12329: } 12329: } 12329: 12329: 12329: explicit 12329: collate_byname(const string& __s, size_t __refs = 0) 12329: : collate_byname(__s.c_str(), __refs) { } 12329: 12329: 12329: protected: 12329: virtual 12329: ~collate_byname() { } 12329: }; 12329: 12329: 12329: } 12329: 12329: # 1 "/usr/include/c++/12/bits/locale_classes.tcc" 1 3 12329: # 37 "/usr/include/c++/12/bits/locale_classes.tcc" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/locale_classes.tcc" 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: locale:: 12329: locale(const locale& __other, _Facet* __f) 12329: { 12329: _M_impl = new _Impl(*__other._M_impl, 1); 12329: 12329: try 12329: { _M_impl->_M_install_facet(&_Facet::id, __f); } 12329: catch(...) 12329: { 12329: _M_impl->_M_remove_reference(); 12329: throw; 12329: } 12329: delete [] _M_impl->_M_names[0]; 12329: _M_impl->_M_names[0] = 0; 12329: } 12329: 12329: template 12329: locale 12329: locale:: 12329: combine(const locale& __other) const 12329: { 12329: _Impl* __tmp = new _Impl(*_M_impl, 1); 12329: try 12329: { 12329: __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); 12329: } 12329: catch(...) 12329: { 12329: __tmp->_M_remove_reference(); 12329: throw; 12329: } 12329: return locale(__tmp); 12329: } 12329: 12329: template 12329: bool 12329: locale:: 12329: operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, 12329: const basic_string<_CharT, _Traits, _Alloc>& __s2) const 12329: { 12329: typedef std::collate<_CharT> __collate_type; 12329: const __collate_type& __collate = use_facet<__collate_type>(*this); 12329: return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), 12329: __s2.data(), __s2.data() + __s2.length()) < 0); 12329: } 12329: # 102 "/usr/include/c++/12/bits/locale_classes.tcc" 3 12329: template 12329: bool 12329: has_facet(const locale& __loc) throw() 12329: { 12329: const size_t __i = _Facet::id._M_id(); 12329: const locale::facet** __facets = __loc._M_impl->_M_facets; 12329: return (__i < __loc._M_impl->_M_facets_size 12329: 12329: && dynamic_cast(__facets[__i])); 12329: 12329: 12329: 12329: } 12329: # 130 "/usr/include/c++/12/bits/locale_classes.tcc" 3 12329: template 12329: const _Facet& 12329: use_facet(const locale& __loc) 12329: { 12329: const size_t __i = _Facet::id._M_id(); 12329: const locale::facet** __facets = __loc._M_impl->_M_facets; 12329: if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) 12329: __throw_bad_cast(); 12329: 12329: return dynamic_cast(*__facets[__i]); 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: template 12329: int 12329: collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () 12329: { return 0; } 12329: 12329: 12329: template 12329: size_t 12329: collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () 12329: { return 0; } 12329: 12329: template 12329: int 12329: collate<_CharT>:: 12329: do_compare(const _CharT* __lo1, const _CharT* __hi1, 12329: const _CharT* __lo2, const _CharT* __hi2) const 12329: { 12329: 12329: 12329: const string_type __one(__lo1, __hi1); 12329: const string_type __two(__lo2, __hi2); 12329: 12329: const _CharT* __p = __one.c_str(); 12329: const _CharT* __pend = __one.data() + __one.length(); 12329: const _CharT* __q = __two.c_str(); 12329: const _CharT* __qend = __two.data() + __two.length(); 12329: 12329: 12329: 12329: 12329: for (;;) 12329: { 12329: const int __res = _M_compare(__p, __q); 12329: if (__res) 12329: return __res; 12329: 12329: __p += char_traits<_CharT>::length(__p); 12329: __q += char_traits<_CharT>::length(__q); 12329: if (__p == __pend && __q == __qend) 12329: return 0; 12329: else if (__p == __pend) 12329: return -1; 12329: else if (__q == __qend) 12329: return 1; 12329: 12329: __p++; 12329: __q++; 12329: } 12329: } 12329: 12329: template 12329: typename collate<_CharT>::string_type 12329: collate<_CharT>:: 12329: do_transform(const _CharT* __lo, const _CharT* __hi) const 12329: { 12329: string_type __ret; 12329: 12329: 12329: const string_type __str(__lo, __hi); 12329: 12329: const _CharT* __p = __str.c_str(); 12329: const _CharT* __pend = __str.data() + __str.length(); 12329: 12329: size_t __len = (__hi - __lo) * 2; 12329: 12329: _CharT* __c = new _CharT[__len]; 12329: 12329: try 12329: { 12329: 12329: 12329: 12329: for (;;) 12329: { 12329: 12329: size_t __res = _M_transform(__c, __p, __len); 12329: 12329: 12329: if (__res >= __len) 12329: { 12329: __len = __res + 1; 12329: delete [] __c, __c = 0; 12329: __c = new _CharT[__len]; 12329: __res = _M_transform(__c, __p, __len); 12329: } 12329: 12329: __ret.append(__c, __res); 12329: __p += char_traits<_CharT>::length(__p); 12329: if (__p == __pend) 12329: break; 12329: 12329: __p++; 12329: __ret.push_back(_CharT()); 12329: } 12329: } 12329: catch(...) 12329: { 12329: delete [] __c; 12329: throw; 12329: } 12329: 12329: delete [] __c; 12329: 12329: return __ret; 12329: } 12329: 12329: template 12329: long 12329: collate<_CharT>:: 12329: do_hash(const _CharT* __lo, const _CharT* __hi) const 12329: { 12329: unsigned long __val = 0; 12329: for (; __lo < __hi; ++__lo) 12329: __val = 12329: *__lo + ((__val << 7) 12329: | (__val >> (__gnu_cxx::__numeric_traits:: 12329: __digits - 7))); 12329: return static_cast(__val); 12329: } 12329: 12329: 12329: 12329: 12329: extern template class collate; 12329: extern template class collate_byname; 12329: 12329: extern template 12329: const collate& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: 12329: extern template class collate; 12329: extern template class collate_byname; 12329: 12329: extern template 12329: const collate& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: 12329: 12329: 12329: } 12329: # 858 "/usr/include/c++/12/bits/locale_classes.h" 2 3 12329: # 42 "/usr/include/c++/12/bits/ios_base.h" 2 3 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/system_error" 1 3 12329: # 32 "/usr/include/c++/12/system_error" 3 12329: 12329: # 33 "/usr/include/c++/12/system_error" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/error_constants.h" 1 3 12329: # 34 "/usr/include/aarch64-linux-gnu/c++/12/bits/error_constants.h" 3 12329: # 1 "/usr/include/c++/12/cerrno" 1 3 12329: # 39 "/usr/include/c++/12/cerrno" 3 12329: 12329: # 40 "/usr/include/c++/12/cerrno" 3 12329: # 35 "/usr/include/aarch64-linux-gnu/c++/12/bits/error_constants.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: enum class errc 12329: { 12329: address_family_not_supported = 97, 12329: address_in_use = 98, 12329: address_not_available = 99, 12329: already_connected = 106, 12329: argument_list_too_long = 7, 12329: argument_out_of_domain = 33, 12329: bad_address = 14, 12329: bad_file_descriptor = 9, 12329: 12329: 12329: bad_message = 74, 12329: 12329: 12329: broken_pipe = 32, 12329: connection_aborted = 103, 12329: connection_already_in_progress = 114, 12329: connection_refused = 111, 12329: connection_reset = 104, 12329: cross_device_link = 18, 12329: destination_address_required = 89, 12329: device_or_resource_busy = 16, 12329: directory_not_empty = 39, 12329: executable_format_error = 8, 12329: file_exists = 17, 12329: file_too_large = 27, 12329: filename_too_long = 36, 12329: function_not_supported = 38, 12329: host_unreachable = 113, 12329: 12329: 12329: identifier_removed = 43, 12329: 12329: 12329: illegal_byte_sequence = 84, 12329: inappropriate_io_control_operation = 25, 12329: interrupted = 4, 12329: invalid_argument = 22, 12329: invalid_seek = 29, 12329: io_error = 5, 12329: is_a_directory = 21, 12329: message_size = 90, 12329: network_down = 100, 12329: network_reset = 102, 12329: network_unreachable = 101, 12329: no_buffer_space = 105, 12329: no_child_process = 10, 12329: 12329: 12329: no_link = 67, 12329: 12329: 12329: no_lock_available = 37, 12329: 12329: 12329: no_message_available = 61, 12329: 12329: 12329: no_message = 42, 12329: no_protocol_option = 92, 12329: no_space_on_device = 28, 12329: 12329: 12329: no_stream_resources = 63, 12329: 12329: 12329: no_such_device_or_address = 6, 12329: no_such_device = 19, 12329: no_such_file_or_directory = 2, 12329: no_such_process = 3, 12329: not_a_directory = 20, 12329: not_a_socket = 88, 12329: 12329: 12329: not_a_stream = 60, 12329: 12329: 12329: not_connected = 107, 12329: not_enough_memory = 12, 12329: 12329: 12329: not_supported = 95, 12329: 12329: 12329: 12329: operation_canceled = 125, 12329: 12329: 12329: operation_in_progress = 115, 12329: operation_not_permitted = 1, 12329: operation_not_supported = 95, 12329: operation_would_block = 11, 12329: 12329: 12329: owner_dead = 130, 12329: 12329: 12329: permission_denied = 13, 12329: 12329: 12329: protocol_error = 71, 12329: 12329: 12329: protocol_not_supported = 93, 12329: read_only_file_system = 30, 12329: resource_deadlock_would_occur = 35, 12329: resource_unavailable_try_again = 11, 12329: result_out_of_range = 34, 12329: 12329: 12329: state_not_recoverable = 131, 12329: 12329: 12329: 12329: stream_timeout = 62, 12329: 12329: 12329: 12329: text_file_busy = 26, 12329: 12329: 12329: timed_out = 110, 12329: too_many_files_open_in_system = 23, 12329: too_many_files_open = 24, 12329: too_many_links = 31, 12329: too_many_symbolic_link_levels = 40, 12329: 12329: 12329: value_too_large = 75, 12329: 12329: 12329: wrong_protocol_type = 91 12329: }; 12329: 12329: 12329: } 12329: # 40 "/usr/include/c++/12/system_error" 2 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: class error_code; 12329: class error_condition; 12329: class system_error; 12329: 12329: 12329: template 12329: struct is_error_code_enum : public false_type { }; 12329: 12329: 12329: template 12329: struct is_error_condition_enum : public false_type { }; 12329: 12329: template<> 12329: struct is_error_condition_enum 12329: : public true_type { }; 12329: # 80 "/usr/include/c++/12/system_error" 3 12329: inline namespace _V2 { 12329: # 97 "/usr/include/c++/12/system_error" 3 12329: class error_category 12329: { 12329: public: 12329: constexpr error_category() noexcept = default; 12329: 12329: virtual ~error_category(); 12329: 12329: error_category(const error_category&) = delete; 12329: error_category& operator=(const error_category&) = delete; 12329: 12329: virtual const char* 12329: name() const noexcept = 0; 12329: 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: virtual __cow_string 12329: _M_message(int) const; 12329: 12329: public: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: virtual string 12329: message(int) const = 0; 12329: # 133 "/usr/include/c++/12/system_error" 3 12329: public: 12329: virtual error_condition 12329: default_error_condition(int __i) const noexcept; 12329: 12329: virtual bool 12329: equivalent(int __i, const error_condition& __cond) const noexcept; 12329: 12329: virtual bool 12329: equivalent(const error_code& __code, int __i) const noexcept; 12329: 12329: bool 12329: operator==(const error_category& __other) const noexcept 12329: { return this == &__other; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: bool 12329: operator!=(const error_category& __other) const noexcept 12329: { return this != &__other; } 12329: 12329: bool 12329: operator<(const error_category& __other) const noexcept 12329: { return less()(this, &__other); } 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: __attribute__ ((__const__)) const error_category& generic_category() noexcept; 12329: 12329: 12329: __attribute__ ((__const__)) const error_category& system_category() noexcept; 12329: 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: error_code make_error_code(errc) noexcept; 12329: # 196 "/usr/include/c++/12/system_error" 3 12329: class error_code 12329: { 12329: public: 12329: error_code() noexcept 12329: : _M_value(0), _M_cat(&system_category()) { } 12329: 12329: error_code(int __v, const error_category& __cat) noexcept 12329: : _M_value(__v), _M_cat(&__cat) { } 12329: 12329: template::value>::type> 12329: error_code(_ErrorCodeEnum __e) noexcept 12329: { *this = make_error_code(__e); } 12329: 12329: void 12329: assign(int __v, const error_category& __cat) noexcept 12329: { 12329: _M_value = __v; 12329: _M_cat = &__cat; 12329: } 12329: 12329: void 12329: clear() noexcept 12329: { assign(0, system_category()); } 12329: 12329: 12329: template 12329: typename enable_if::value, 12329: error_code&>::type 12329: operator=(_ErrorCodeEnum __e) noexcept 12329: { return *this = make_error_code(__e); } 12329: 12329: int 12329: value() const noexcept { return _M_value; } 12329: 12329: const error_category& 12329: category() const noexcept { return *_M_cat; } 12329: 12329: error_condition 12329: default_error_condition() const noexcept; 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: string 12329: message() const 12329: { return category().message(value()); } 12329: 12329: explicit operator bool() const noexcept 12329: { return _M_value != 0; } 12329: 12329: 12329: private: 12329: int _M_value; 12329: const error_category* _M_cat; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: inline error_code 12329: make_error_code(errc __e) noexcept 12329: { return error_code(static_cast(__e), generic_category()); } 12329: # 268 "/usr/include/c++/12/system_error" 3 12329: inline bool 12329: operator<(const error_code& __lhs, const error_code& __rhs) noexcept 12329: { 12329: return (__lhs.category() < __rhs.category() 12329: || (__lhs.category() == __rhs.category() 12329: && __lhs.value() < __rhs.value())); 12329: } 12329: 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) 12329: { return (__os << __e.category().name() << ':' << __e.value()); } 12329: 12329: 12329: 12329: error_condition make_error_condition(errc) noexcept; 12329: # 297 "/usr/include/c++/12/system_error" 3 12329: class error_condition 12329: { 12329: public: 12329: error_condition() noexcept 12329: : _M_value(0), _M_cat(&generic_category()) { } 12329: 12329: error_condition(int __v, const error_category& __cat) noexcept 12329: : _M_value(__v), _M_cat(&__cat) { } 12329: 12329: template::value>::type> 12329: error_condition(_ErrorConditionEnum __e) noexcept 12329: { *this = make_error_condition(__e); } 12329: 12329: void 12329: assign(int __v, const error_category& __cat) noexcept 12329: { 12329: _M_value = __v; 12329: _M_cat = &__cat; 12329: } 12329: 12329: 12329: template 12329: typename enable_if::value, error_condition&>::type 12329: operator=(_ErrorConditionEnum __e) noexcept 12329: { return *this = make_error_condition(__e); } 12329: 12329: void 12329: clear() noexcept 12329: { assign(0, generic_category()); } 12329: 12329: 12329: int 12329: value() const noexcept { return _M_value; } 12329: 12329: const error_category& 12329: category() const noexcept { return *_M_cat; } 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: string 12329: message() const 12329: { return category().message(value()); } 12329: 12329: explicit operator bool() const noexcept 12329: { return _M_value != 0; } 12329: 12329: 12329: private: 12329: int _M_value; 12329: const error_category* _M_cat; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: inline error_condition 12329: make_error_condition(errc __e) noexcept 12329: { return error_condition(static_cast(__e), generic_category()); } 12329: 12329: 12329: 12329: 12329: inline bool 12329: operator==(const error_code& __lhs, const error_code& __rhs) noexcept 12329: { return (__lhs.category() == __rhs.category() 12329: && __lhs.value() == __rhs.value()); } 12329: 12329: 12329: inline bool 12329: operator==(const error_code& __lhs, const error_condition& __rhs) noexcept 12329: { 12329: return (__lhs.category().equivalent(__lhs.value(), __rhs) 12329: || __rhs.category().equivalent(__lhs, __rhs.value())); 12329: } 12329: 12329: 12329: inline bool 12329: operator==(const error_condition& __lhs, 12329: const error_condition& __rhs) noexcept 12329: { 12329: return (__lhs.category() == __rhs.category() 12329: && __lhs.value() == __rhs.value()); 12329: } 12329: # 397 "/usr/include/c++/12/system_error" 3 12329: inline bool 12329: operator<(const error_condition& __lhs, 12329: const error_condition& __rhs) noexcept 12329: { 12329: return (__lhs.category() < __rhs.category() 12329: || (__lhs.category() == __rhs.category() 12329: && __lhs.value() < __rhs.value())); 12329: } 12329: 12329: 12329: inline bool 12329: operator==(const error_condition& __lhs, const error_code& __rhs) noexcept 12329: { 12329: return (__rhs.category().equivalent(__rhs.value(), __lhs) 12329: || __lhs.category().equivalent(__rhs, __lhs.value())); 12329: } 12329: 12329: 12329: inline bool 12329: operator!=(const error_code& __lhs, const error_code& __rhs) noexcept 12329: { return !(__lhs == __rhs); } 12329: 12329: 12329: inline bool 12329: operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept 12329: { return !(__lhs == __rhs); } 12329: 12329: 12329: inline bool 12329: operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept 12329: { return !(__lhs == __rhs); } 12329: 12329: 12329: inline bool 12329: operator!=(const error_condition& __lhs, 12329: const error_condition& __rhs) noexcept 12329: { return !(__lhs == __rhs); } 12329: # 446 "/usr/include/c++/12/system_error" 3 12329: class system_error : public std::runtime_error 12329: { 12329: private: 12329: error_code _M_code; 12329: 12329: public: 12329: system_error(error_code __ec = error_code()) 12329: : runtime_error(__ec.message()), _M_code(__ec) { } 12329: 12329: system_error(error_code __ec, const string& __what) 12329: : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { } 12329: 12329: system_error(error_code __ec, const char* __what) 12329: : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } 12329: 12329: system_error(int __v, const error_category& __ecat, const char* __what) 12329: : system_error(error_code(__v, __ecat), __what) { } 12329: 12329: system_error(int __v, const error_category& __ecat) 12329: : runtime_error(error_code(__v, __ecat).message()), 12329: _M_code(__v, __ecat) { } 12329: 12329: system_error(int __v, const error_category& __ecat, const string& __what) 12329: : runtime_error(__what + ": " + error_code(__v, __ecat).message()), 12329: _M_code(__v, __ecat) { } 12329: 12329: 12329: system_error (const system_error &) = default; 12329: system_error &operator= (const system_error &) = default; 12329: 12329: 12329: virtual ~system_error() noexcept; 12329: 12329: const error_code& 12329: code() const noexcept { return _M_code; } 12329: }; 12329: 12329: 12329: } 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: struct hash 12329: : public __hash_base 12329: { 12329: size_t 12329: operator()(const error_code& __e) const noexcept 12329: { 12329: const size_t __tmp = std::_Hash_impl::hash(__e.value()); 12329: return std::_Hash_impl::__hash_combine(&__e.category(), __tmp); 12329: } 12329: }; 12329: # 526 "/usr/include/c++/12/system_error" 3 12329: 12329: } 12329: # 47 "/usr/include/c++/12/bits/ios_base.h" 2 3 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: enum _Ios_Fmtflags 12329: { 12329: _S_boolalpha = 1L << 0, 12329: _S_dec = 1L << 1, 12329: _S_fixed = 1L << 2, 12329: _S_hex = 1L << 3, 12329: _S_internal = 1L << 4, 12329: _S_left = 1L << 5, 12329: _S_oct = 1L << 6, 12329: _S_right = 1L << 7, 12329: _S_scientific = 1L << 8, 12329: _S_showbase = 1L << 9, 12329: _S_showpoint = 1L << 10, 12329: _S_showpos = 1L << 11, 12329: _S_skipws = 1L << 12, 12329: _S_unitbuf = 1L << 13, 12329: _S_uppercase = 1L << 14, 12329: _S_adjustfield = _S_left | _S_right | _S_internal, 12329: _S_basefield = _S_dec | _S_oct | _S_hex, 12329: _S_floatfield = _S_scientific | _S_fixed, 12329: _S_ios_fmtflags_end = 1L << 16, 12329: _S_ios_fmtflags_max = 0x7fffffff, 12329: _S_ios_fmtflags_min = ~0x7fffffff 12329: }; 12329: 12329: inline constexpr _Ios_Fmtflags 12329: operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 12329: { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } 12329: 12329: inline constexpr _Ios_Fmtflags 12329: operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 12329: { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } 12329: 12329: inline constexpr _Ios_Fmtflags 12329: operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 12329: { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } 12329: 12329: inline constexpr _Ios_Fmtflags 12329: operator~(_Ios_Fmtflags __a) 12329: { return _Ios_Fmtflags(~static_cast(__a)); } 12329: 12329: inline const _Ios_Fmtflags& 12329: operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 12329: { return __a = __a | __b; } 12329: 12329: inline const _Ios_Fmtflags& 12329: operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 12329: { return __a = __a & __b; } 12329: 12329: inline const _Ios_Fmtflags& 12329: operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 12329: { return __a = __a ^ __b; } 12329: 12329: 12329: enum _Ios_Openmode 12329: { 12329: _S_app = 1L << 0, 12329: _S_ate = 1L << 1, 12329: _S_bin = 1L << 2, 12329: _S_in = 1L << 3, 12329: _S_out = 1L << 4, 12329: _S_trunc = 1L << 5, 12329: _S_noreplace = 1L << 6, 12329: _S_ios_openmode_end = 1L << 16, 12329: _S_ios_openmode_max = 0x7fffffff, 12329: _S_ios_openmode_min = ~0x7fffffff 12329: }; 12329: 12329: inline constexpr _Ios_Openmode 12329: operator&(_Ios_Openmode __a, _Ios_Openmode __b) 12329: { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } 12329: 12329: inline constexpr _Ios_Openmode 12329: operator|(_Ios_Openmode __a, _Ios_Openmode __b) 12329: { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } 12329: 12329: inline constexpr _Ios_Openmode 12329: operator^(_Ios_Openmode __a, _Ios_Openmode __b) 12329: { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } 12329: 12329: inline constexpr _Ios_Openmode 12329: operator~(_Ios_Openmode __a) 12329: { return _Ios_Openmode(~static_cast(__a)); } 12329: 12329: inline const _Ios_Openmode& 12329: operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) 12329: { return __a = __a | __b; } 12329: 12329: inline const _Ios_Openmode& 12329: operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) 12329: { return __a = __a & __b; } 12329: 12329: inline const _Ios_Openmode& 12329: operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) 12329: { return __a = __a ^ __b; } 12329: 12329: 12329: enum _Ios_Iostate 12329: { 12329: _S_goodbit = 0, 12329: _S_badbit = 1L << 0, 12329: _S_eofbit = 1L << 1, 12329: _S_failbit = 1L << 2, 12329: _S_ios_iostate_end = 1L << 16, 12329: _S_ios_iostate_max = 0x7fffffff, 12329: _S_ios_iostate_min = ~0x7fffffff 12329: }; 12329: 12329: inline constexpr _Ios_Iostate 12329: operator&(_Ios_Iostate __a, _Ios_Iostate __b) 12329: { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } 12329: 12329: inline constexpr _Ios_Iostate 12329: operator|(_Ios_Iostate __a, _Ios_Iostate __b) 12329: { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } 12329: 12329: inline constexpr _Ios_Iostate 12329: operator^(_Ios_Iostate __a, _Ios_Iostate __b) 12329: { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } 12329: 12329: inline constexpr _Ios_Iostate 12329: operator~(_Ios_Iostate __a) 12329: { return _Ios_Iostate(~static_cast(__a)); } 12329: 12329: inline const _Ios_Iostate& 12329: operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) 12329: { return __a = __a | __b; } 12329: 12329: inline const _Ios_Iostate& 12329: operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) 12329: { return __a = __a & __b; } 12329: 12329: inline const _Ios_Iostate& 12329: operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) 12329: { return __a = __a ^ __b; } 12329: 12329: 12329: enum _Ios_Seekdir 12329: { 12329: _S_beg = 0, 12329: _S_cur = 1, 12329: _S_end = 2, 12329: _S_ios_seekdir_end = 1L << 16 12329: }; 12329: 12329: 12329: 12329: enum class io_errc { stream = 1 }; 12329: 12329: template <> struct is_error_code_enum : public true_type { }; 12329: 12329: const error_category& iostream_category() noexcept; 12329: 12329: inline error_code 12329: make_error_code(io_errc __e) noexcept 12329: { return error_code(static_cast(__e), iostream_category()); } 12329: 12329: inline error_condition 12329: make_error_condition(io_errc __e) noexcept 12329: { return error_condition(static_cast(__e), iostream_category()); } 12329: # 229 "/usr/include/c++/12/bits/ios_base.h" 3 12329: class ios_base 12329: { 12329: # 247 "/usr/include/c++/12/bits/ios_base.h" 3 12329: public: 12329: # 256 "/usr/include/c++/12/bits/ios_base.h" 3 12329: class __attribute ((__abi_tag__ ("cxx11"))) failure : public system_error 12329: { 12329: public: 12329: explicit 12329: failure(const string& __str); 12329: 12329: 12329: explicit 12329: failure(const string&, const error_code&); 12329: 12329: explicit 12329: failure(const char*, const error_code& = io_errc::stream); 12329: 12329: 12329: virtual 12329: ~failure() throw(); 12329: 12329: virtual const char* 12329: what() const throw(); 12329: }; 12329: # 342 "/usr/include/c++/12/bits/ios_base.h" 3 12329: typedef _Ios_Fmtflags fmtflags; 12329: 12329: 12329: static const fmtflags boolalpha = _S_boolalpha; 12329: 12329: 12329: static const fmtflags dec = _S_dec; 12329: 12329: 12329: static const fmtflags fixed = _S_fixed; 12329: 12329: 12329: static const fmtflags hex = _S_hex; 12329: 12329: 12329: 12329: 12329: static const fmtflags internal = _S_internal; 12329: 12329: 12329: 12329: static const fmtflags left = _S_left; 12329: 12329: 12329: static const fmtflags oct = _S_oct; 12329: 12329: 12329: 12329: static const fmtflags right = _S_right; 12329: 12329: 12329: static const fmtflags scientific = _S_scientific; 12329: 12329: 12329: 12329: static const fmtflags showbase = _S_showbase; 12329: 12329: 12329: 12329: static const fmtflags showpoint = _S_showpoint; 12329: 12329: 12329: static const fmtflags showpos = _S_showpos; 12329: 12329: 12329: static const fmtflags skipws = _S_skipws; 12329: 12329: 12329: static const fmtflags unitbuf = _S_unitbuf; 12329: 12329: 12329: 12329: static const fmtflags uppercase = _S_uppercase; 12329: 12329: 12329: static const fmtflags adjustfield = _S_adjustfield; 12329: 12329: 12329: static const fmtflags basefield = _S_basefield; 12329: 12329: 12329: static const fmtflags floatfield = _S_floatfield; 12329: # 417 "/usr/include/c++/12/bits/ios_base.h" 3 12329: typedef _Ios_Iostate iostate; 12329: 12329: 12329: 12329: static const iostate badbit = _S_badbit; 12329: 12329: 12329: static const iostate eofbit = _S_eofbit; 12329: 12329: 12329: 12329: 12329: static const iostate failbit = _S_failbit; 12329: 12329: 12329: static const iostate goodbit = _S_goodbit; 12329: # 448 "/usr/include/c++/12/bits/ios_base.h" 3 12329: typedef _Ios_Openmode openmode; 12329: 12329: 12329: static const openmode app = _S_app; 12329: 12329: 12329: static const openmode ate = _S_ate; 12329: 12329: 12329: 12329: 12329: static const openmode binary = _S_bin; 12329: 12329: 12329: static const openmode in = _S_in; 12329: 12329: 12329: static const openmode out = _S_out; 12329: 12329: 12329: static const openmode trunc = _S_trunc; 12329: 12329: static const openmode __noreplace = _S_noreplace; 12329: # 488 "/usr/include/c++/12/bits/ios_base.h" 3 12329: typedef _Ios_Seekdir seekdir; 12329: 12329: 12329: static const seekdir beg = _S_beg; 12329: 12329: 12329: static const seekdir cur = _S_cur; 12329: 12329: 12329: static const seekdir end = _S_end; 12329: 12329: 12329: 12329: typedef int io_state 12329: __attribute__ ((__deprecated__ ("use '" "std::iostate" "' instead"))); 12329: typedef int open_mode 12329: __attribute__ ((__deprecated__ ("use '" "std::openmode" "' instead"))); 12329: typedef int seek_dir 12329: __attribute__ ((__deprecated__ ("use '" "std::seekdir" "' instead"))); 12329: 12329: typedef std::streampos streampos 12329: __attribute__ ((__deprecated__ ("use '" "std::streampos" "' instead"))); 12329: typedef std::streamoff streamoff 12329: __attribute__ ((__deprecated__ ("use '" "std::streamoff" "' instead"))); 12329: # 521 "/usr/include/c++/12/bits/ios_base.h" 3 12329: enum event 12329: { 12329: erase_event, 12329: imbue_event, 12329: copyfmt_event 12329: }; 12329: # 538 "/usr/include/c++/12/bits/ios_base.h" 3 12329: typedef void (*event_callback) (event __e, ios_base& __b, int __i); 12329: # 550 "/usr/include/c++/12/bits/ios_base.h" 3 12329: void 12329: register_callback(event_callback __fn, int __index); 12329: 12329: protected: 12329: streamsize _M_precision; 12329: streamsize _M_width; 12329: fmtflags _M_flags; 12329: iostate _M_exception; 12329: iostate _M_streambuf_state; 12329: 12329: 12329: 12329: struct _Callback_list 12329: { 12329: 12329: _Callback_list* _M_next; 12329: ios_base::event_callback _M_fn; 12329: int _M_index; 12329: _Atomic_word _M_refcount; 12329: 12329: _Callback_list(ios_base::event_callback __fn, int __index, 12329: _Callback_list* __cb) 12329: : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } 12329: 12329: void 12329: _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 12329: 12329: 12329: int 12329: _M_remove_reference() 12329: { 12329: 12329: ; 12329: int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); 12329: if (__res == 0) 12329: { 12329: ; 12329: } 12329: return __res; 12329: } 12329: }; 12329: 12329: _Callback_list* _M_callbacks; 12329: 12329: void 12329: _M_call_callbacks(event __ev) throw(); 12329: 12329: void 12329: _M_dispose_callbacks(void) throw(); 12329: 12329: 12329: struct _Words 12329: { 12329: void* _M_pword; 12329: long _M_iword; 12329: _Words() : _M_pword(0), _M_iword(0) { } 12329: }; 12329: 12329: 12329: _Words _M_word_zero; 12329: 12329: 12329: 12329: enum { _S_local_word_size = 8 }; 12329: _Words _M_local_word[_S_local_word_size]; 12329: 12329: 12329: int _M_word_size; 12329: _Words* _M_word; 12329: 12329: _Words& 12329: _M_grow_words(int __index, bool __iword); 12329: 12329: 12329: locale _M_ios_locale; 12329: 12329: void 12329: _M_init() throw(); 12329: 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: class Init 12329: { 12329: friend class ios_base; 12329: public: 12329: Init(); 12329: ~Init(); 12329: 12329: 12329: Init(const Init&) = default; 12329: Init& operator=(const Init&) = default; 12329: 12329: 12329: private: 12329: static _Atomic_word _S_refcount; 12329: static bool _S_synced_with_stdio; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: fmtflags 12329: flags() const 12329: { return _M_flags; } 12329: # 668 "/usr/include/c++/12/bits/ios_base.h" 3 12329: fmtflags 12329: flags(fmtflags __fmtfl) 12329: { 12329: fmtflags __old = _M_flags; 12329: _M_flags = __fmtfl; 12329: return __old; 12329: } 12329: # 684 "/usr/include/c++/12/bits/ios_base.h" 3 12329: fmtflags 12329: setf(fmtflags __fmtfl) 12329: { 12329: fmtflags __old = _M_flags; 12329: _M_flags |= __fmtfl; 12329: return __old; 12329: } 12329: # 701 "/usr/include/c++/12/bits/ios_base.h" 3 12329: fmtflags 12329: setf(fmtflags __fmtfl, fmtflags __mask) 12329: { 12329: fmtflags __old = _M_flags; 12329: _M_flags &= ~__mask; 12329: _M_flags |= (__fmtfl & __mask); 12329: return __old; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: unsetf(fmtflags __mask) 12329: { _M_flags &= ~__mask; } 12329: # 727 "/usr/include/c++/12/bits/ios_base.h" 3 12329: streamsize 12329: precision() const 12329: { return _M_precision; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: streamsize 12329: precision(streamsize __prec) 12329: { 12329: streamsize __old = _M_precision; 12329: _M_precision = __prec; 12329: return __old; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: streamsize 12329: width() const 12329: { return _M_width; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: streamsize 12329: width(streamsize __wide) 12329: { 12329: streamsize __old = _M_width; 12329: _M_width = __wide; 12329: return __old; 12329: } 12329: # 778 "/usr/include/c++/12/bits/ios_base.h" 3 12329: static bool 12329: sync_with_stdio(bool __sync = true); 12329: # 790 "/usr/include/c++/12/bits/ios_base.h" 3 12329: locale 12329: imbue(const locale& __loc) throw(); 12329: # 801 "/usr/include/c++/12/bits/ios_base.h" 3 12329: locale 12329: getloc() const 12329: { return _M_ios_locale; } 12329: # 812 "/usr/include/c++/12/bits/ios_base.h" 3 12329: const locale& 12329: _M_getloc() const 12329: { return _M_ios_locale; } 12329: # 831 "/usr/include/c++/12/bits/ios_base.h" 3 12329: static int 12329: xalloc() throw(); 12329: # 847 "/usr/include/c++/12/bits/ios_base.h" 3 12329: long& 12329: iword(int __ix) 12329: { 12329: _Words& __word = ((unsigned)__ix < (unsigned)_M_word_size) 12329: ? _M_word[__ix] : _M_grow_words(__ix, true); 12329: return __word._M_iword; 12329: } 12329: # 868 "/usr/include/c++/12/bits/ios_base.h" 3 12329: void*& 12329: pword(int __ix) 12329: { 12329: _Words& __word = ((unsigned)__ix < (unsigned)_M_word_size) 12329: ? _M_word[__ix] : _M_grow_words(__ix, false); 12329: return __word._M_pword; 12329: } 12329: # 885 "/usr/include/c++/12/bits/ios_base.h" 3 12329: virtual ~ios_base(); 12329: 12329: protected: 12329: ios_base() throw (); 12329: # 899 "/usr/include/c++/12/bits/ios_base.h" 3 12329: public: 12329: ios_base(const ios_base&) = delete; 12329: 12329: ios_base& 12329: operator=(const ios_base&) = delete; 12329: 12329: protected: 12329: void 12329: _M_move(ios_base&) noexcept; 12329: 12329: void 12329: _M_swap(ios_base& __rhs) noexcept; 12329: 12329: }; 12329: 12329: 12329: 12329: inline ios_base& 12329: boolalpha(ios_base& __base) 12329: { 12329: __base.setf(ios_base::boolalpha); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: noboolalpha(ios_base& __base) 12329: { 12329: __base.unsetf(ios_base::boolalpha); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: showbase(ios_base& __base) 12329: { 12329: __base.setf(ios_base::showbase); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: noshowbase(ios_base& __base) 12329: { 12329: __base.unsetf(ios_base::showbase); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: showpoint(ios_base& __base) 12329: { 12329: __base.setf(ios_base::showpoint); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: noshowpoint(ios_base& __base) 12329: { 12329: __base.unsetf(ios_base::showpoint); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: showpos(ios_base& __base) 12329: { 12329: __base.setf(ios_base::showpos); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: noshowpos(ios_base& __base) 12329: { 12329: __base.unsetf(ios_base::showpos); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: skipws(ios_base& __base) 12329: { 12329: __base.setf(ios_base::skipws); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: noskipws(ios_base& __base) 12329: { 12329: __base.unsetf(ios_base::skipws); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: uppercase(ios_base& __base) 12329: { 12329: __base.setf(ios_base::uppercase); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: nouppercase(ios_base& __base) 12329: { 12329: __base.unsetf(ios_base::uppercase); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: unitbuf(ios_base& __base) 12329: { 12329: __base.setf(ios_base::unitbuf); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: nounitbuf(ios_base& __base) 12329: { 12329: __base.unsetf(ios_base::unitbuf); 12329: return __base; 12329: } 12329: 12329: 12329: 12329: inline ios_base& 12329: internal(ios_base& __base) 12329: { 12329: __base.setf(ios_base::internal, ios_base::adjustfield); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: left(ios_base& __base) 12329: { 12329: __base.setf(ios_base::left, ios_base::adjustfield); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: right(ios_base& __base) 12329: { 12329: __base.setf(ios_base::right, ios_base::adjustfield); 12329: return __base; 12329: } 12329: 12329: 12329: 12329: inline ios_base& 12329: dec(ios_base& __base) 12329: { 12329: __base.setf(ios_base::dec, ios_base::basefield); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: hex(ios_base& __base) 12329: { 12329: __base.setf(ios_base::hex, ios_base::basefield); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: oct(ios_base& __base) 12329: { 12329: __base.setf(ios_base::oct, ios_base::basefield); 12329: return __base; 12329: } 12329: 12329: 12329: 12329: inline ios_base& 12329: fixed(ios_base& __base) 12329: { 12329: __base.setf(ios_base::fixed, ios_base::floatfield); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: scientific(ios_base& __base) 12329: { 12329: __base.setf(ios_base::scientific, ios_base::floatfield); 12329: return __base; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: inline ios_base& 12329: hexfloat(ios_base& __base) 12329: { 12329: __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); 12329: return __base; 12329: } 12329: 12329: 12329: inline ios_base& 12329: defaultfloat(ios_base& __base) 12329: { 12329: __base.unsetf(ios_base::floatfield); 12329: return __base; 12329: } 12329: 12329: 12329: 12329: } 12329: # 42 "/usr/include/c++/12/streambuf" 2 3 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: template 12329: streamsize 12329: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, 12329: basic_streambuf<_CharT, _Traits>*, bool&); 12329: # 121 "/usr/include/c++/12/streambuf" 3 12329: template 12329: class basic_streambuf 12329: { 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef _Traits traits_type; 12329: typedef typename traits_type::int_type int_type; 12329: typedef typename traits_type::pos_type pos_type; 12329: typedef typename traits_type::off_type off_type; 12329: 12329: 12329: 12329: 12329: typedef basic_streambuf __streambuf_type; 12329: 12329: 12329: friend class basic_ios; 12329: friend class basic_istream; 12329: friend class basic_ostream; 12329: friend class istreambuf_iterator; 12329: friend class ostreambuf_iterator; 12329: 12329: friend streamsize 12329: __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); 12329: 12329: template 12329: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 12329: _CharT2*>::__type 12329: __copy_move_a2(istreambuf_iterator<_CharT2>, 12329: istreambuf_iterator<_CharT2>, _CharT2*); 12329: 12329: template 12329: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 12329: istreambuf_iterator<_CharT2> >::__type 12329: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 12329: const _CharT2&); 12329: 12329: template 12329: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 12329: void>::__type 12329: advance(istreambuf_iterator<_CharT2>&, _Distance); 12329: 12329: friend void __istream_extract(istream&, char*, streamsize); 12329: 12329: template 12329: friend basic_istream<_CharT2, _Traits2>& 12329: operator>>(basic_istream<_CharT2, _Traits2>&, 12329: basic_string<_CharT2, _Traits2, _Alloc>&); 12329: 12329: template 12329: friend basic_istream<_CharT2, _Traits2>& 12329: getline(basic_istream<_CharT2, _Traits2>&, 12329: basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); 12329: 12329: protected: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: char_type* _M_in_beg; 12329: char_type* _M_in_cur; 12329: char_type* _M_in_end; 12329: char_type* _M_out_beg; 12329: char_type* _M_out_cur; 12329: char_type* _M_out_end; 12329: 12329: 12329: locale _M_buf_locale; 12329: 12329: public: 12329: 12329: virtual 12329: ~basic_streambuf() 12329: { } 12329: # 213 "/usr/include/c++/12/streambuf" 3 12329: locale 12329: pubimbue(const locale& __loc) 12329: { 12329: locale __tmp(this->getloc()); 12329: this->imbue(__loc); 12329: _M_buf_locale = __loc; 12329: return __tmp; 12329: } 12329: # 230 "/usr/include/c++/12/streambuf" 3 12329: locale 12329: getloc() const 12329: { return _M_buf_locale; } 12329: # 243 "/usr/include/c++/12/streambuf" 3 12329: basic_streambuf* 12329: pubsetbuf(char_type* __s, streamsize __n) 12329: { return this->setbuf(__s, __n); } 12329: # 255 "/usr/include/c++/12/streambuf" 3 12329: pos_type 12329: pubseekoff(off_type __off, ios_base::seekdir __way, 12329: ios_base::openmode __mode = ios_base::in | ios_base::out) 12329: { return this->seekoff(__off, __way, __mode); } 12329: # 267 "/usr/include/c++/12/streambuf" 3 12329: pos_type 12329: pubseekpos(pos_type __sp, 12329: ios_base::openmode __mode = ios_base::in | ios_base::out) 12329: { return this->seekpos(__sp, __mode); } 12329: 12329: 12329: 12329: 12329: int 12329: pubsync() { return this->sync(); } 12329: # 288 "/usr/include/c++/12/streambuf" 3 12329: streamsize 12329: in_avail() 12329: { 12329: const streamsize __ret = this->egptr() - this->gptr(); 12329: return __ret ? __ret : this->showmanyc(); 12329: } 12329: # 302 "/usr/include/c++/12/streambuf" 3 12329: int_type 12329: snextc() 12329: { 12329: int_type __ret = traits_type::eof(); 12329: if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), 12329: __ret), true)) 12329: __ret = this->sgetc(); 12329: return __ret; 12329: } 12329: # 320 "/usr/include/c++/12/streambuf" 3 12329: int_type 12329: sbumpc() 12329: { 12329: int_type __ret; 12329: if (__builtin_expect(this->gptr() < this->egptr(), true)) 12329: { 12329: __ret = traits_type::to_int_type(*this->gptr()); 12329: this->gbump(1); 12329: } 12329: else 12329: __ret = this->uflow(); 12329: return __ret; 12329: } 12329: # 342 "/usr/include/c++/12/streambuf" 3 12329: int_type 12329: sgetc() 12329: { 12329: int_type __ret; 12329: if (__builtin_expect(this->gptr() < this->egptr(), true)) 12329: __ret = traits_type::to_int_type(*this->gptr()); 12329: else 12329: __ret = this->underflow(); 12329: return __ret; 12329: } 12329: # 361 "/usr/include/c++/12/streambuf" 3 12329: streamsize 12329: sgetn(char_type* __s, streamsize __n) 12329: { return this->xsgetn(__s, __n); } 12329: # 376 "/usr/include/c++/12/streambuf" 3 12329: int_type 12329: sputbackc(char_type __c) 12329: { 12329: int_type __ret; 12329: const bool __testpos = this->eback() < this->gptr(); 12329: if (__builtin_expect(!__testpos || 12329: !traits_type::eq(__c, this->gptr()[-1]), false)) 12329: __ret = this->pbackfail(traits_type::to_int_type(__c)); 12329: else 12329: { 12329: this->gbump(-1); 12329: __ret = traits_type::to_int_type(*this->gptr()); 12329: } 12329: return __ret; 12329: } 12329: # 401 "/usr/include/c++/12/streambuf" 3 12329: int_type 12329: sungetc() 12329: { 12329: int_type __ret; 12329: if (__builtin_expect(this->eback() < this->gptr(), true)) 12329: { 12329: this->gbump(-1); 12329: __ret = traits_type::to_int_type(*this->gptr()); 12329: } 12329: else 12329: __ret = this->pbackfail(); 12329: return __ret; 12329: } 12329: # 428 "/usr/include/c++/12/streambuf" 3 12329: int_type 12329: sputc(char_type __c) 12329: { 12329: int_type __ret; 12329: if (__builtin_expect(this->pptr() < this->epptr(), true)) 12329: { 12329: *this->pptr() = __c; 12329: this->pbump(1); 12329: __ret = traits_type::to_int_type(__c); 12329: } 12329: else 12329: __ret = this->overflow(traits_type::to_int_type(__c)); 12329: return __ret; 12329: } 12329: # 454 "/usr/include/c++/12/streambuf" 3 12329: streamsize 12329: sputn(const char_type* __s, streamsize __n) 12329: { return this->xsputn(__s, __n); } 12329: 12329: protected: 12329: # 468 "/usr/include/c++/12/streambuf" 3 12329: basic_streambuf() 12329: : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), 12329: _M_out_beg(0), _M_out_cur(0), _M_out_end(0), 12329: _M_buf_locale(locale()) 12329: { } 12329: # 486 "/usr/include/c++/12/streambuf" 3 12329: char_type* 12329: eback() const { return _M_in_beg; } 12329: 12329: char_type* 12329: gptr() const { return _M_in_cur; } 12329: 12329: char_type* 12329: egptr() const { return _M_in_end; } 12329: # 502 "/usr/include/c++/12/streambuf" 3 12329: void 12329: gbump(int __n) { _M_in_cur += __n; } 12329: # 513 "/usr/include/c++/12/streambuf" 3 12329: void 12329: setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) 12329: { 12329: _M_in_beg = __gbeg; 12329: _M_in_cur = __gnext; 12329: _M_in_end = __gend; 12329: } 12329: # 533 "/usr/include/c++/12/streambuf" 3 12329: char_type* 12329: pbase() const { return _M_out_beg; } 12329: 12329: char_type* 12329: pptr() const { return _M_out_cur; } 12329: 12329: char_type* 12329: epptr() const { return _M_out_end; } 12329: # 549 "/usr/include/c++/12/streambuf" 3 12329: void 12329: pbump(int __n) { _M_out_cur += __n; } 12329: # 559 "/usr/include/c++/12/streambuf" 3 12329: void 12329: setp(char_type* __pbeg, char_type* __pend) 12329: { 12329: _M_out_beg = _M_out_cur = __pbeg; 12329: _M_out_end = __pend; 12329: } 12329: # 580 "/usr/include/c++/12/streambuf" 3 12329: virtual void 12329: imbue(const locale& __loc __attribute__ ((__unused__))) 12329: { } 12329: # 595 "/usr/include/c++/12/streambuf" 3 12329: virtual basic_streambuf* 12329: setbuf(char_type*, streamsize) 12329: { return this; } 12329: # 606 "/usr/include/c++/12/streambuf" 3 12329: virtual pos_type 12329: seekoff(off_type, ios_base::seekdir, 12329: ios_base::openmode = ios_base::in | ios_base::out) 12329: { return pos_type(off_type(-1)); } 12329: # 618 "/usr/include/c++/12/streambuf" 3 12329: virtual pos_type 12329: seekpos(pos_type, 12329: ios_base::openmode = ios_base::in | ios_base::out) 12329: { return pos_type(off_type(-1)); } 12329: # 631 "/usr/include/c++/12/streambuf" 3 12329: virtual int 12329: sync() { return 0; } 12329: # 653 "/usr/include/c++/12/streambuf" 3 12329: virtual streamsize 12329: showmanyc() { return 0; } 12329: # 669 "/usr/include/c++/12/streambuf" 3 12329: virtual streamsize 12329: xsgetn(char_type* __s, streamsize __n); 12329: # 691 "/usr/include/c++/12/streambuf" 3 12329: virtual int_type 12329: underflow() 12329: { return traits_type::eof(); } 12329: # 704 "/usr/include/c++/12/streambuf" 3 12329: virtual int_type 12329: uflow() 12329: { 12329: int_type __ret = traits_type::eof(); 12329: const bool __testeof = traits_type::eq_int_type(this->underflow(), 12329: __ret); 12329: if (!__testeof) 12329: { 12329: __ret = traits_type::to_int_type(*this->gptr()); 12329: this->gbump(1); 12329: } 12329: return __ret; 12329: } 12329: # 728 "/usr/include/c++/12/streambuf" 3 12329: virtual int_type 12329: pbackfail(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 12329: { return traits_type::eof(); } 12329: # 746 "/usr/include/c++/12/streambuf" 3 12329: virtual streamsize 12329: xsputn(const char_type* __s, streamsize __n); 12329: # 772 "/usr/include/c++/12/streambuf" 3 12329: virtual int_type 12329: overflow(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 12329: { return traits_type::eof(); } 12329: 12329: 12329: 12329: public: 12329: # 787 "/usr/include/c++/12/streambuf" 3 12329: __attribute__ ((__deprecated__ ("use '" "std::basic_streambuf::sbumpc" "' instead"))) 12329: void 12329: stossc() 12329: { 12329: if (this->gptr() < this->egptr()) 12329: this->gbump(1); 12329: else 12329: this->uflow(); 12329: } 12329: 12329: 12329: 12329: void 12329: __safe_gbump(streamsize __n) { _M_in_cur += __n; } 12329: 12329: void 12329: __safe_pbump(streamsize __n) { _M_out_cur += __n; } 12329: 12329: 12329: 12329: 12329: protected: 12329: 12329: basic_streambuf(const basic_streambuf&); 12329: 12329: basic_streambuf& 12329: operator=(const basic_streambuf&); 12329: 12329: 12329: void 12329: swap(basic_streambuf& __sb) 12329: { 12329: std::swap(_M_in_beg, __sb._M_in_beg); 12329: std::swap(_M_in_cur, __sb._M_in_cur); 12329: std::swap(_M_in_end, __sb._M_in_end); 12329: std::swap(_M_out_beg, __sb._M_out_beg); 12329: std::swap(_M_out_cur, __sb._M_out_cur); 12329: std::swap(_M_out_end, __sb._M_out_end); 12329: std::swap(_M_buf_locale, __sb._M_buf_locale); 12329: } 12329: 12329: }; 12329: 12329: 12329: template 12329: std::basic_streambuf<_CharT, _Traits>:: 12329: basic_streambuf(const basic_streambuf&) = default; 12329: 12329: template 12329: std::basic_streambuf<_CharT, _Traits>& 12329: std::basic_streambuf<_CharT, _Traits>:: 12329: operator=(const basic_streambuf&) = default; 12329: 12329: 12329: 12329: template<> 12329: streamsize 12329: __copy_streambufs_eof(basic_streambuf* __sbin, 12329: basic_streambuf* __sbout, bool& __ineof); 12329: 12329: template<> 12329: streamsize 12329: __copy_streambufs_eof(basic_streambuf* __sbin, 12329: basic_streambuf* __sbout, bool& __ineof); 12329: 12329: 12329: 12329: 12329: 12329: } 12329: 12329: # 1 "/usr/include/c++/12/bits/streambuf.tcc" 1 3 12329: # 37 "/usr/include/c++/12/bits/streambuf.tcc" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/streambuf.tcc" 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: streamsize 12329: basic_streambuf<_CharT, _Traits>:: 12329: xsgetn(char_type* __s, streamsize __n) 12329: { 12329: streamsize __ret = 0; 12329: while (__ret < __n) 12329: { 12329: const streamsize __buf_len = this->egptr() - this->gptr(); 12329: if (__buf_len) 12329: { 12329: const streamsize __remaining = __n - __ret; 12329: const streamsize __len = std::min(__buf_len, __remaining); 12329: traits_type::copy(__s, this->gptr(), __len); 12329: __ret += __len; 12329: __s += __len; 12329: this->__safe_gbump(__len); 12329: } 12329: 12329: if (__ret < __n) 12329: { 12329: const int_type __c = this->uflow(); 12329: if (!traits_type::eq_int_type(__c, traits_type::eof())) 12329: { 12329: traits_type::assign(*__s++, traits_type::to_char_type(__c)); 12329: ++__ret; 12329: } 12329: else 12329: break; 12329: } 12329: } 12329: return __ret; 12329: } 12329: 12329: template 12329: streamsize 12329: basic_streambuf<_CharT, _Traits>:: 12329: xsputn(const char_type* __s, streamsize __n) 12329: { 12329: streamsize __ret = 0; 12329: while (__ret < __n) 12329: { 12329: const streamsize __buf_len = this->epptr() - this->pptr(); 12329: if (__buf_len) 12329: { 12329: const streamsize __remaining = __n - __ret; 12329: const streamsize __len = std::min(__buf_len, __remaining); 12329: traits_type::copy(this->pptr(), __s, __len); 12329: __ret += __len; 12329: __s += __len; 12329: this->__safe_pbump(__len); 12329: } 12329: 12329: if (__ret < __n) 12329: { 12329: int_type __c = this->overflow(traits_type::to_int_type(*__s)); 12329: if (!traits_type::eq_int_type(__c, traits_type::eof())) 12329: { 12329: ++__ret; 12329: ++__s; 12329: } 12329: else 12329: break; 12329: } 12329: } 12329: return __ret; 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: streamsize 12329: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, 12329: basic_streambuf<_CharT, _Traits>* __sbout, 12329: bool& __ineof) 12329: { 12329: streamsize __ret = 0; 12329: __ineof = true; 12329: typename _Traits::int_type __c = __sbin->sgetc(); 12329: while (!_Traits::eq_int_type(__c, _Traits::eof())) 12329: { 12329: __c = __sbout->sputc(_Traits::to_char_type(__c)); 12329: if (_Traits::eq_int_type(__c, _Traits::eof())) 12329: { 12329: __ineof = false; 12329: break; 12329: } 12329: ++__ret; 12329: __c = __sbin->snextc(); 12329: } 12329: return __ret; 12329: } 12329: 12329: template 12329: inline streamsize 12329: __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, 12329: basic_streambuf<_CharT, _Traits>* __sbout) 12329: { 12329: bool __ineof; 12329: return __copy_streambufs_eof(__sbin, __sbout, __ineof); 12329: } 12329: 12329: 12329: 12329: 12329: extern template class basic_streambuf; 12329: 12329: extern template 12329: streamsize 12329: __copy_streambufs(basic_streambuf*, 12329: basic_streambuf*); 12329: 12329: 12329: extern template class basic_streambuf; 12329: 12329: extern template 12329: streamsize 12329: __copy_streambufs(basic_streambuf*, 12329: basic_streambuf*); 12329: 12329: 12329: 12329: 12329: } 12329: # 859 "/usr/include/c++/12/streambuf" 2 3 12329: # 36 "/usr/include/c++/12/bits/streambuf_iterator.h" 2 3 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: template 12329: class istreambuf_iterator 12329: : public iterator 12329: { 12329: public: 12329: # 69 "/usr/include/c++/12/bits/streambuf_iterator.h" 3 12329: typedef _CharT char_type; 12329: typedef _Traits traits_type; 12329: typedef typename _Traits::int_type int_type; 12329: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 12329: typedef basic_istream<_CharT, _Traits> istream_type; 12329: 12329: 12329: template 12329: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 12329: ostreambuf_iterator<_CharT2> >::__type 12329: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 12329: ostreambuf_iterator<_CharT2>); 12329: 12329: template 12329: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 12329: _CharT2*>::__type 12329: __copy_move_a2(istreambuf_iterator<_CharT2>, 12329: istreambuf_iterator<_CharT2>, _CharT2*); 12329: 12329: template 12329: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 12329: _CharT2*>::__type 12329: __copy_n_a(istreambuf_iterator<_CharT2>, _Size, _CharT2*, bool); 12329: 12329: template 12329: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 12329: istreambuf_iterator<_CharT2> >::__type 12329: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 12329: const _CharT2&); 12329: 12329: template 12329: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 12329: void>::__type 12329: advance(istreambuf_iterator<_CharT2>&, _Distance); 12329: 12329: private: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: mutable streambuf_type* _M_sbuf; 12329: int_type _M_c; 12329: 12329: public: 12329: 12329: constexpr istreambuf_iterator() noexcept 12329: : _M_sbuf(0), _M_c(traits_type::eof()) { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: istreambuf_iterator(const istreambuf_iterator&) noexcept = default; 12329: 12329: ~istreambuf_iterator() = default; 12329: 12329: 12329: 12329: istreambuf_iterator(istream_type& __s) noexcept 12329: : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } 12329: 12329: 12329: istreambuf_iterator(streambuf_type* __s) noexcept 12329: : _M_sbuf(__s), _M_c(traits_type::eof()) { } 12329: 12329: 12329: istreambuf_iterator& 12329: operator=(const istreambuf_iterator&) noexcept = default; 12329: 12329: 12329: 12329: 12329: 12329: 12329: char_type 12329: operator*() const 12329: { 12329: int_type __c = _M_get(); 12329: # 160 "/usr/include/c++/12/bits/streambuf_iterator.h" 3 12329: return traits_type::to_char_type(__c); 12329: } 12329: 12329: 12329: istreambuf_iterator& 12329: operator++() 12329: { 12329: 12329: 12329: 12329: ; 12329: 12329: _M_sbuf->sbumpc(); 12329: _M_c = traits_type::eof(); 12329: return *this; 12329: } 12329: 12329: 12329: istreambuf_iterator 12329: operator++(int) 12329: { 12329: 12329: 12329: 12329: ; 12329: 12329: istreambuf_iterator __old = *this; 12329: __old._M_c = _M_sbuf->sbumpc(); 12329: _M_c = traits_type::eof(); 12329: return __old; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: bool 12329: equal(const istreambuf_iterator& __b) const 12329: { return _M_at_eof() == __b._M_at_eof(); } 12329: 12329: private: 12329: int_type 12329: _M_get() const 12329: { 12329: int_type __ret = _M_c; 12329: if (_M_sbuf && _S_is_eof(__ret) && _S_is_eof(__ret = _M_sbuf->sgetc())) 12329: _M_sbuf = 0; 12329: return __ret; 12329: } 12329: 12329: bool 12329: _M_at_eof() const 12329: { return _S_is_eof(_M_get()); } 12329: 12329: static bool 12329: _S_is_eof(int_type __c) 12329: { 12329: const int_type __eof = traits_type::eof(); 12329: return traits_type::eq_int_type(__c, __eof); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template 12329: 12329: inline bool 12329: operator==(const istreambuf_iterator<_CharT, _Traits>& __a, 12329: const istreambuf_iterator<_CharT, _Traits>& __b) 12329: { return __a.equal(__b); } 12329: 12329: 12329: template 12329: 12329: inline bool 12329: operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, 12329: const istreambuf_iterator<_CharT, _Traits>& __b) 12329: { return !__a.equal(__b); } 12329: 12329: 12329: 12329: template 12329: class ostreambuf_iterator 12329: : public iterator 12329: { 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef _Traits traits_type; 12329: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 12329: typedef basic_ostream<_CharT, _Traits> ostream_type; 12329: 12329: 12329: template 12329: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 12329: ostreambuf_iterator<_CharT2> >::__type 12329: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 12329: ostreambuf_iterator<_CharT2>); 12329: 12329: private: 12329: streambuf_type* _M_sbuf; 12329: bool _M_failed; 12329: 12329: public: 12329: # 283 "/usr/include/c++/12/bits/streambuf_iterator.h" 3 12329: ostreambuf_iterator(ostream_type& __s) noexcept 12329: : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } 12329: 12329: 12329: ostreambuf_iterator(streambuf_type* __s) noexcept 12329: : _M_sbuf(__s), _M_failed(!_M_sbuf) { } 12329: 12329: 12329: ostreambuf_iterator& 12329: operator=(_CharT __c) 12329: { 12329: if (!_M_failed && 12329: _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) 12329: _M_failed = true; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: ostreambuf_iterator& 12329: operator*() 12329: { return *this; } 12329: 12329: 12329: ostreambuf_iterator& 12329: operator++(int) 12329: { return *this; } 12329: 12329: 12329: ostreambuf_iterator& 12329: operator++() 12329: { return *this; } 12329: 12329: 12329: 12329: bool 12329: failed() const noexcept 12329: { return _M_failed; } 12329: 12329: ostreambuf_iterator& 12329: _M_put(const _CharT* __ws, streamsize __len) 12329: { 12329: if (__builtin_expect(!_M_failed, true) 12329: && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, 12329: false)) 12329: _M_failed = true; 12329: return *this; 12329: } 12329: }; 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: template 12329: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 12329: ostreambuf_iterator<_CharT> >::__type 12329: copy(istreambuf_iterator<_CharT> __first, 12329: istreambuf_iterator<_CharT> __last, 12329: ostreambuf_iterator<_CharT> __result) 12329: { 12329: if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) 12329: { 12329: bool __ineof; 12329: __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); 12329: if (!__ineof) 12329: __result._M_failed = true; 12329: } 12329: return __result; 12329: } 12329: 12329: template 12329: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 12329: ostreambuf_iterator<_CharT> >::__type 12329: __copy_move_a2(_CharT* __first, _CharT* __last, 12329: ostreambuf_iterator<_CharT> __result) 12329: { 12329: const streamsize __num = __last - __first; 12329: if (__num > 0) 12329: __result._M_put(__first, __num); 12329: return __result; 12329: } 12329: 12329: template 12329: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 12329: ostreambuf_iterator<_CharT> >::__type 12329: __copy_move_a2(const _CharT* __first, const _CharT* __last, 12329: ostreambuf_iterator<_CharT> __result) 12329: { 12329: const streamsize __num = __last - __first; 12329: if (__num > 0) 12329: __result._M_put(__first, __num); 12329: return __result; 12329: } 12329: 12329: template 12329: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 12329: _CharT*>::__type 12329: __copy_move_a2(istreambuf_iterator<_CharT> __first, 12329: istreambuf_iterator<_CharT> __last, _CharT* __result) 12329: { 12329: typedef istreambuf_iterator<_CharT> __is_iterator_type; 12329: typedef typename __is_iterator_type::traits_type traits_type; 12329: typedef typename __is_iterator_type::streambuf_type streambuf_type; 12329: typedef typename traits_type::int_type int_type; 12329: 12329: if (__first._M_sbuf && !__last._M_sbuf) 12329: { 12329: streambuf_type* __sb = __first._M_sbuf; 12329: int_type __c = __sb->sgetc(); 12329: while (!traits_type::eq_int_type(__c, traits_type::eof())) 12329: { 12329: const streamsize __n = __sb->egptr() - __sb->gptr(); 12329: if (__n > 1) 12329: { 12329: traits_type::copy(__result, __sb->gptr(), __n); 12329: __sb->__safe_gbump(__n); 12329: __result += __n; 12329: __c = __sb->underflow(); 12329: } 12329: else 12329: { 12329: *__result++ = traits_type::to_char_type(__c); 12329: __c = __sb->snextc(); 12329: } 12329: } 12329: } 12329: return __result; 12329: } 12329: 12329: template 12329: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 12329: _CharT*>::__type 12329: __copy_n_a(istreambuf_iterator<_CharT> __it, _Size __n, _CharT* __result, 12329: bool __strict __attribute__((__unused__))) 12329: { 12329: if (__n == 0) 12329: return __result; 12329: 12329: 12329: 12329: ; 12329: _CharT* __beg = __result; 12329: __result += __it._M_sbuf->sgetn(__beg, __n); 12329: 12329: 12329: ; 12329: return __result; 12329: } 12329: 12329: template 12329: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 12329: istreambuf_iterator<_CharT> >::__type 12329: find(istreambuf_iterator<_CharT> __first, 12329: istreambuf_iterator<_CharT> __last, const _CharT& __val) 12329: { 12329: typedef istreambuf_iterator<_CharT> __is_iterator_type; 12329: typedef typename __is_iterator_type::traits_type traits_type; 12329: typedef typename __is_iterator_type::streambuf_type streambuf_type; 12329: typedef typename traits_type::int_type int_type; 12329: const int_type __eof = traits_type::eof(); 12329: 12329: if (__first._M_sbuf && !__last._M_sbuf) 12329: { 12329: const int_type __ival = traits_type::to_int_type(__val); 12329: streambuf_type* __sb = __first._M_sbuf; 12329: int_type __c = __sb->sgetc(); 12329: while (!traits_type::eq_int_type(__c, __eof) 12329: && !traits_type::eq_int_type(__c, __ival)) 12329: { 12329: streamsize __n = __sb->egptr() - __sb->gptr(); 12329: if (__n > 1) 12329: { 12329: const _CharT* __p = traits_type::find(__sb->gptr(), 12329: __n, __val); 12329: if (__p) 12329: __n = __p - __sb->gptr(); 12329: __sb->__safe_gbump(__n); 12329: __c = __sb->sgetc(); 12329: } 12329: else 12329: __c = __sb->snextc(); 12329: } 12329: 12329: __first._M_c = __eof; 12329: } 12329: 12329: return __first; 12329: } 12329: 12329: template 12329: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 12329: void>::__type 12329: advance(istreambuf_iterator<_CharT>& __i, _Distance __n) 12329: { 12329: if (__n == 0) 12329: return; 12329: 12329: do { if (std::__is_constant_evaluated() && !bool(__n > 0)) __builtin_unreachable(); } while (false); 12329: 12329: 12329: ; 12329: 12329: typedef istreambuf_iterator<_CharT> __is_iterator_type; 12329: typedef typename __is_iterator_type::traits_type traits_type; 12329: typedef typename __is_iterator_type::streambuf_type streambuf_type; 12329: typedef typename traits_type::int_type int_type; 12329: const int_type __eof = traits_type::eof(); 12329: 12329: streambuf_type* __sb = __i._M_sbuf; 12329: while (__n > 0) 12329: { 12329: streamsize __size = __sb->egptr() - __sb->gptr(); 12329: if (__size > __n) 12329: { 12329: __sb->__safe_gbump(__n); 12329: break; 12329: } 12329: 12329: __sb->__safe_gbump(__size); 12329: __n -= __size; 12329: if (traits_type::eq_int_type(__sb->underflow(), __eof)) 12329: { 12329: 12329: 12329: ; 12329: break; 12329: } 12329: } 12329: 12329: __i._M_c = __eof; 12329: } 12329: 12329: 12329: 12329: 12329: } 12329: # 67 "/usr/include/c++/12/iterator" 2 3 12329: # 11 "/usr/include/boost/iterator/iterator_traits.hpp" 2 3 4 12329: 12329: namespace boost { 12329: namespace iterators { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct iterator_value 12329: { 12329: typedef typename std::iterator_traits::value_type type; 12329: }; 12329: 12329: template 12329: struct iterator_reference 12329: { 12329: typedef typename std::iterator_traits::reference type; 12329: }; 12329: 12329: 12329: template 12329: struct iterator_pointer 12329: { 12329: typedef typename std::iterator_traits::pointer type; 12329: }; 12329: 12329: template 12329: struct iterator_difference 12329: { 12329: typedef typename std::iterator_traits::difference_type type; 12329: }; 12329: 12329: template 12329: struct iterator_category 12329: { 12329: typedef typename std::iterator_traits::iterator_category type; 12329: }; 12329: 12329: } 12329: 12329: using iterators::iterator_value; 12329: using iterators::iterator_reference; 12329: using iterators::iterator_pointer; 12329: using iterators::iterator_difference; 12329: using iterators::iterator_category; 12329: 12329: } 12329: # 27 "/usr/include/boost/range/iterator_range_core.hpp" 2 3 4 12329: # 1 "/usr/include/boost/iterator/iterator_facade.hpp" 1 3 4 12329: # 11 "/usr/include/boost/iterator/iterator_facade.hpp" 3 4 12329: # 1 "/usr/include/boost/iterator/interoperable.hpp" 1 3 4 12329: # 10 "/usr/include/boost/iterator/interoperable.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/bool.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/bool.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/bool_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/bool_fwd.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/adl_barrier.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/adl_barrier.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/adl.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/config/adl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/msvc.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/config/adl.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/intel.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/config/adl.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/gcc.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/aux_/config/adl.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/workaround.hpp" 1 3 4 12329: # 21 "/usr/include/boost/mpl/aux_/config/adl.hpp" 2 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/adl_barrier.hpp" 2 3 4 12329: # 33 "/usr/include/boost/mpl/aux_/adl_barrier.hpp" 3 4 12329: namespace mpl_ { namespace aux {} } 12329: namespace boost { namespace mpl { using namespace mpl_; 12329: namespace aux { using namespace mpl_::aux; } 12329: }} 12329: # 18 "/usr/include/boost/mpl/bool_fwd.hpp" 2 3 4 12329: 12329: namespace mpl_ { 12329: 12329: template< bool C_ > struct bool_; 12329: 12329: 12329: typedef bool_ true_; 12329: typedef bool_ false_; 12329: 12329: } 12329: 12329: namespace boost { namespace mpl { using ::mpl_::bool_; } } 12329: namespace boost { namespace mpl { using ::mpl_::true_; } } 12329: namespace boost { namespace mpl { using ::mpl_::false_; } } 12329: # 18 "/usr/include/boost/mpl/bool.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/integral_c_tag.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/integral_c_tag.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/static_constant.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/integral_c_tag.hpp" 2 3 4 12329: 12329: namespace mpl_ { 12329: struct integral_c_tag { static const int value = 0; }; 12329: } 12329: namespace boost { namespace mpl { using ::mpl_::integral_c_tag; } } 12329: # 19 "/usr/include/boost/mpl/bool.hpp" 2 3 4 12329: 12329: 12329: namespace mpl_ { 12329: 12329: template< bool C_ > struct bool_ 12329: { 12329: static const bool value = C_; 12329: typedef integral_c_tag tag; 12329: typedef bool_ type; 12329: typedef bool value_type; 12329: constexpr operator bool() const { return this->value; } 12329: }; 12329: 12329: 12329: template< bool C_ > 12329: bool const bool_::value; 12329: 12329: 12329: } 12329: # 11 "/usr/include/boost/iterator/interoperable.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/or.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/or.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/use_preprocessed.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/or.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/nested_type_wknd.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/aux_/nested_type_wknd.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: template< typename T > struct nested_type_wknd 12329: : T::type 12329: { 12329: }; 12329: }}} 12329: # 24 "/usr/include/boost/mpl/or.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/na_spec.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/na_spec.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/lambda_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/lambda_fwd.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/void_fwd.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/void_fwd.hpp" 3 4 12329: namespace mpl_ { 12329: 12329: struct void_; 12329: 12329: } 12329: namespace boost { namespace mpl { using ::mpl_::void_; } } 12329: # 18 "/usr/include/boost/mpl/lambda_fwd.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/na.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/na.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/na_fwd.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/na_fwd.hpp" 3 4 12329: namespace mpl_ { 12329: 12329: 12329: struct na 12329: { 12329: typedef na type; 12329: enum { value = 0 }; 12329: }; 12329: 12329: } 12329: namespace boost { namespace mpl { using ::mpl_::na; } } 12329: # 19 "/usr/include/boost/mpl/aux_/na.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/config/ctps.hpp" 1 3 4 12329: # 21 "/usr/include/boost/mpl/aux_/na.hpp" 2 3 4 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< typename T > 12329: struct is_na 12329: : false_ 12329: { 12329: 12329: 12329: 12329: }; 12329: 12329: template<> 12329: struct is_na 12329: : true_ 12329: { 12329: 12329: 12329: 12329: }; 12329: 12329: template< typename T > 12329: struct is_not_na 12329: : true_ 12329: { 12329: 12329: 12329: 12329: }; 12329: 12329: template<> 12329: struct is_not_na 12329: : false_ 12329: { 12329: 12329: 12329: 12329: }; 12329: 12329: 12329: template< typename T, typename U > struct if_na 12329: { 12329: typedef T type; 12329: }; 12329: 12329: template< typename U > struct if_na 12329: { 12329: typedef U type; 12329: }; 12329: # 93 "/usr/include/boost/mpl/aux_/na.hpp" 3 4 12329: }} 12329: # 19 "/usr/include/boost/mpl/lambda_fwd.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/lambda.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/config/lambda.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/ttp.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/config/lambda.hpp" 2 3 4 12329: # 20 "/usr/include/boost/mpl/lambda_fwd.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/int.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/int.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/int_fwd.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/int_fwd.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/nttp_decl.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/nttp_decl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/nttp.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/nttp_decl.hpp" 2 3 4 12329: # 19 "/usr/include/boost/mpl/int_fwd.hpp" 2 3 4 12329: 12329: namespace mpl_ { 12329: 12329: template< int N > struct int_; 12329: 12329: } 12329: namespace boost { namespace mpl { using ::mpl_::int_; } } 12329: # 18 "/usr/include/boost/mpl/int.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/static_cast.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 2 3 4 12329: # 40 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 12329: namespace mpl_ { 12329: 12329: template< int N > 12329: struct int_ 12329: { 12329: static const int value = N; 12329: 12329: 12329: 12329: 12329: 12329: typedef int_ type; 12329: 12329: typedef int value_type; 12329: typedef integral_c_tag tag; 12329: # 72 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 12329: typedef mpl_::int_< static_cast((value + 1)) > next; 12329: typedef mpl_::int_< static_cast((value - 1)) > prior; 12329: 12329: 12329: 12329: 12329: 12329: 12329: constexpr operator int() const { return static_cast(this->value); } 12329: }; 12329: 12329: 12329: template< int N > 12329: int const mpl_::int_< N >::value; 12329: 12329: 12329: } 12329: # 21 "/usr/include/boost/mpl/int.hpp" 2 3 4 12329: # 24 "/usr/include/boost/mpl/lambda_fwd.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/lambda_arity_param.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/lambda_fwd.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/template_arity_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/template_arity_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: template< typename F > struct template_arity; 12329: 12329: }}} 12329: # 26 "/usr/include/boost/mpl/lambda_fwd.hpp" 2 3 4 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename T = na 12329: , typename Tag = void_ 12329: , typename Arity = int_< aux::template_arity::value > 12329: 12329: 12329: > 12329: struct lambda; 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/arity.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/arity.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/dtp.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/arity.hpp" 2 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessor/params.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/preprocessor/params.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/preprocessor.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/preprocessor/params.hpp" 2 3 4 12329: # 45 "/usr/include/boost/mpl/aux_/preprocessor/params.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/comma_if.hpp" 1 3 4 12329: # 46 "/usr/include/boost/mpl/aux_/preprocessor/params.hpp" 2 3 4 12329: # 27 "/usr/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessor/enum.hpp" 1 3 4 12329: # 28 "/usr/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/limits/arity.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/preprocessor/logical/and.hpp" 1 3 4 12329: # 19 "/usr/include/boost/preprocessor/logical/and.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/logical/bitand.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/logical/and.hpp" 2 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/identity.hpp" 1 3 4 12329: # 15 "/usr/include/boost/preprocessor/identity.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/facilities/identity.hpp" 1 3 4 12329: # 16 "/usr/include/boost/preprocessor/identity.hpp" 2 3 4 12329: # 24 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/empty.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4 12329: # 66 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/arithmetic/add.hpp" 1 3 4 12329: # 17 "/usr/include/boost/preprocessor/arithmetic/add.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/arithmetic/dec.hpp" 1 3 4 12329: # 18 "/usr/include/boost/preprocessor/arithmetic/add.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/preprocessor/control/while.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/control/while.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 12329: # 21 "/usr/include/boost/preprocessor/control/while.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/list/fold_left.hpp" 1 3 4 12329: # 18 "/usr/include/boost/preprocessor/list/fold_left.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/control/while.hpp" 1 3 4 12329: # 19 "/usr/include/boost/preprocessor/list/fold_left.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 12329: # 21 "/usr/include/boost/preprocessor/list/fold_left.hpp" 2 3 4 12329: # 41 "/usr/include/boost/preprocessor/list/fold_left.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/list/detail/fold_left.hpp" 1 3 4 12329: # 17 "/usr/include/boost/preprocessor/list/detail/fold_left.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/control/expr_iif.hpp" 1 3 4 12329: # 18 "/usr/include/boost/preprocessor/list/detail/fold_left.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/preprocessor/list/adt.hpp" 1 3 4 12329: # 18 "/usr/include/boost/preprocessor/list/adt.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/detail/is_binary.hpp" 1 3 4 12329: # 16 "/usr/include/boost/preprocessor/detail/is_binary.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/detail/check.hpp" 1 3 4 12329: # 17 "/usr/include/boost/preprocessor/detail/is_binary.hpp" 2 3 4 12329: # 19 "/usr/include/boost/preprocessor/list/adt.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/logical/compl.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/list/adt.hpp" 2 3 4 12329: # 20 "/usr/include/boost/preprocessor/list/detail/fold_left.hpp" 2 3 4 12329: # 42 "/usr/include/boost/preprocessor/list/fold_left.hpp" 2 3 4 12329: # 22 "/usr/include/boost/preprocessor/control/while.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/list/fold_right.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/list/fold_right.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 12329: # 21 "/usr/include/boost/preprocessor/list/fold_right.hpp" 2 3 4 12329: # 37 "/usr/include/boost/preprocessor/list/fold_right.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/list/detail/fold_right.hpp" 1 3 4 12329: # 18 "/usr/include/boost/preprocessor/list/detail/fold_right.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/list/reverse.hpp" 1 3 4 12329: # 19 "/usr/include/boost/preprocessor/list/detail/fold_right.hpp" 2 3 4 12329: # 38 "/usr/include/boost/preprocessor/list/fold_right.hpp" 2 3 4 12329: # 23 "/usr/include/boost/preprocessor/control/while.hpp" 2 3 4 12329: # 48 "/usr/include/boost/preprocessor/control/while.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/control/detail/while.hpp" 1 3 4 12329: # 49 "/usr/include/boost/preprocessor/control/while.hpp" 2 3 4 12329: # 21 "/usr/include/boost/preprocessor/arithmetic/add.hpp" 2 3 4 12329: # 67 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/arithmetic/sub.hpp" 1 3 4 12329: # 68 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4 12329: # 29 "/usr/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/config/eti.hpp" 1 3 4 12329: # 32 "/usr/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/config/overload_resolution.hpp" 1 3 4 12329: # 36 "/usr/include/boost/mpl/aux_/na_spec.hpp" 2 3 4 12329: # 25 "/usr/include/boost/mpl/or.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/lambda_support.hpp" 1 3 4 12329: # 26 "/usr/include/boost/mpl/or.hpp" 2 3 4 12329: # 43 "/usr/include/boost/mpl/or.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 16 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/compiler.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/preprocessor/stringize.hpp" 1 3 4 12329: # 21 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/or.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/or.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: namespace aux { 12329: 12329: template< bool C_, typename T1, typename T2, typename T3, typename T4 > 12329: struct or_impl 12329: : true_ 12329: { 12329: }; 12329: 12329: template< typename T1, typename T2, typename T3, typename T4 > 12329: struct or_impl< false,T1,T2,T3,T4 > 12329: : or_impl< 12329: ::boost::mpl::aux::nested_type_wknd::value 12329: , T2, T3, T4 12329: , false_ 12329: > 12329: { 12329: }; 12329: 12329: template<> 12329: struct or_impl< 12329: false 12329: , false_, false_, false_, false_ 12329: > 12329: : false_ 12329: { 12329: }; 12329: 12329: } 12329: 12329: template< 12329: typename T1 = na 12329: , typename T2 = na 12329: , typename T3 = false_, typename T4 = false_, typename T5 = false_ 12329: > 12329: struct or_ 12329: 12329: : aux::or_impl< 12329: ::boost::mpl::aux::nested_type_wknd::value 12329: , T2, T3, T4, T5 12329: > 12329: 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template<> struct or_< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : or_< T1 , T2 > { }; }; template< typename Tag > struct lambda< or_< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef or_< na , na > result_; typedef or_< na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct template_arity< or_< T1 , T2 , T3 , T4 , T5 > > : int_<5> { }; template<> struct template_arity< or_< na , na > > : int_<-1> { }; } 12329: 12329: 12329: 12329: 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 44 "/usr/include/boost/mpl/or.hpp" 2 3 4 12329: # 12 "/usr/include/boost/iterator/interoperable.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/type_traits/is_convertible.hpp" 1 3 4 12329: # 28 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_abstract.hpp" 1 3 4 12329: # 63 "/usr/include/boost/type_traits/is_abstract.hpp" 3 4 12329: namespace boost { 12329: 12329: namespace detail{ 12329: 12329: 12329: template 12329: struct is_abstract_imp 12329: { 12329: static const bool value = __is_abstract(T); 12329: }; 12329: # 140 "/usr/include/boost/type_traits/is_abstract.hpp" 3 4 12329: } 12329: 12329: 12329: template struct is_abstract : public integral_constant::value> {}; 12329: 12329: 12329: 12329: 12329: } 12329: # 29 "/usr/include/boost/type_traits/is_convertible.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/type_traits/add_lvalue_reference.hpp" 1 3 4 12329: # 11 "/usr/include/boost/type_traits/add_lvalue_reference.hpp" 3 4 12329: namespace boost{ 12329: 12329: template struct add_lvalue_reference 12329: { 12329: typedef typename boost::add_reference::type type; 12329: }; 12329: 12329: 12329: template struct add_lvalue_reference 12329: { 12329: typedef T& type; 12329: }; 12329: 12329: 12329: 12329: 12329: template using add_lvalue_reference_t = typename add_lvalue_reference::type; 12329: 12329: 12329: 12329: } 12329: # 31 "/usr/include/boost/type_traits/is_convertible.hpp" 2 3 4 12329: # 45 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4 12329: namespace boost { 12329: # 59 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4 12329: namespace detail { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct or_helper 12329: { 12329: static const bool value = (A::value || B::value || C::value); 12329: }; 12329: 12329: template, boost::is_function, boost::is_array >::value> 12329: struct is_convertible_basic_impl 12329: { 12329: 12329: static const bool value = is_void::value; 12329: }; 12329: 12329: template 12329: class is_convertible_basic_impl 12329: { 12329: typedef char one; 12329: typedef int two; 12329: 12329: template 12329: static void test_aux(To1); 12329: 12329: template 12329: static decltype(test_aux(boost::declval()), one()) test(int); 12329: 12329: template 12329: static two test(...); 12329: 12329: public: 12329: static const bool value = sizeof(test(0)) == 1; 12329: }; 12329: # 362 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4 12329: template 12329: struct is_convertible_impl 12329: { 12329: static const bool value = ( ::boost::detail::is_convertible_basic_impl::value && !::boost::is_array::value && !::boost::is_function::value); 12329: }; 12329: 12329: 12329: template 12329: struct is_convertible_impl_select 12329: { 12329: template 12329: struct rebind 12329: { 12329: typedef is_convertible_impl type; 12329: }; 12329: }; 12329: 12329: template <> 12329: struct is_convertible_impl_select 12329: { 12329: template 12329: struct rebind 12329: { 12329: typedef true_type type; 12329: }; 12329: }; 12329: 12329: template <> 12329: struct is_convertible_impl_select 12329: { 12329: template 12329: struct rebind 12329: { 12329: typedef false_type type; 12329: }; 12329: }; 12329: 12329: template <> 12329: struct is_convertible_impl_select 12329: { 12329: template 12329: struct rebind 12329: { 12329: typedef false_type type; 12329: }; 12329: }; 12329: 12329: template 12329: struct is_convertible_impl_dispatch_base 12329: { 12329: 12329: typedef is_convertible_impl_select< 12329: ::boost::is_arithmetic::value, 12329: ::boost::is_arithmetic::value, 12329: 12329: 12329: 12329: 12329: false 12329: 12329: > selector; 12329: 12329: 12329: 12329: typedef typename selector::template rebind isc_binder; 12329: typedef typename isc_binder::type type; 12329: }; 12329: 12329: template 12329: struct is_convertible_impl_dispatch 12329: : public is_convertible_impl_dispatch_base::type 12329: {}; 12329: # 442 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: template <> struct is_convertible_impl_dispatch : public true_type{}; 12329: 12329: 12329: 12329: 12329: 12329: template struct is_convertible_impl_dispatch : public false_type{}; 12329: template struct is_convertible_impl_dispatch : public false_type{}; 12329: 12329: 12329: template struct is_convertible_impl_dispatch : public false_type{}; 12329: template struct is_convertible_impl_dispatch : public false_type{}; 12329: template struct is_convertible_impl_dispatch : public false_type{}; 12329: template struct is_convertible_impl_dispatch : public false_type{}; 12329: template struct is_convertible_impl_dispatch : public false_type{}; 12329: template struct is_convertible_impl_dispatch : public false_type{}; 12329: 12329: 12329: } 12329: 12329: template 12329: struct is_convertible : public integral_constant::value> 12329: { 12329: static_assert(boost::is_complete::value || boost::is_void::value || boost::is_array::value, "Destination argument type to is_convertible must be a complete type"); 12329: static_assert(boost::is_complete::value || boost::is_void::value || boost::is_array::value, "From argument type to is_convertible must be a complete type"); 12329: }; 12329: # 504 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4 12329: } 12329: # 14 "/usr/include/boost/iterator/interoperable.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/iterator/detail/config_def.hpp" 1 3 4 12329: # 16 "/usr/include/boost/iterator/interoperable.hpp" 2 3 4 12329: 12329: namespace boost { 12329: namespace iterators { 12329: # 34 "/usr/include/boost/iterator/interoperable.hpp" 3 4 12329: template 12329: struct is_interoperable 12329: 12329: 12329: 12329: : mpl::or_< 12329: is_convertible< A, B > 12329: , is_convertible< B, A > > 12329: 12329: { 12329: }; 12329: 12329: } 12329: 12329: using iterators::is_interoperable; 12329: 12329: } 12329: 12329: # 1 "/usr/include/boost/iterator/detail/config_undef.hpp" 1 3 4 12329: # 53 "/usr/include/boost/iterator/interoperable.hpp" 2 3 4 12329: # 12 "/usr/include/boost/iterator/iterator_facade.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/iterator/iterator_categories.hpp" 1 3 4 12329: # 10 "/usr/include/boost/iterator/iterator_categories.hpp" 3 4 12329: # 1 "/usr/include/boost/iterator/detail/config_def.hpp" 1 3 4 12329: # 11 "/usr/include/boost/iterator/iterator_categories.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/eval_if.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/eval_if.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/if.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/if.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/value_wknd.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/value_wknd.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/integral.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/value_wknd.hpp" 2 3 4 12329: # 73 "/usr/include/boost/mpl/aux_/value_wknd.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: template< typename T > struct value_type_wknd 12329: { 12329: typedef typename T::value_type type; 12329: }; 12329: # 87 "/usr/include/boost/mpl/aux_/value_wknd.hpp" 3 4 12329: }}} 12329: # 18 "/usr/include/boost/mpl/if.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template< 12329: bool C 12329: , typename T1 12329: , typename T2 12329: > 12329: struct if_c 12329: { 12329: typedef T1 type; 12329: }; 12329: 12329: template< 12329: typename T1 12329: , typename T2 12329: > 12329: struct if_c 12329: { 12329: typedef T2 type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename T1 = na 12329: , typename T2 = na 12329: , typename T3 = na 12329: > 12329: struct if_ 12329: { 12329: private: 12329: 12329: typedef if_c< 12329: 12329: 12329: 12329: static_cast(T1::value) 12329: 12329: , T2 12329: , T3 12329: > almost_type_; 12329: 12329: public: 12329: typedef typename almost_type_::type type; 12329: 12329: 12329: }; 12329: # 131 "/usr/include/boost/mpl/if.hpp" 3 4 12329: template<> struct if_< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : if_< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< if_< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef if_< na , na , na > result_; typedef if_< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< if_< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< if_< na , na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/eval_if.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename C = na 12329: , typename F1 = na 12329: , typename F2 = na 12329: > 12329: struct eval_if 12329: 12329: 12329: 12329: 12329: { 12329: typedef typename if_::type f_; 12329: typedef typename f_::type type; 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: 12329: 12329: template< 12329: bool C 12329: , typename F1 12329: , typename F2 12329: > 12329: struct eval_if_c 12329: 12329: 12329: 12329: 12329: { 12329: typedef typename if_c::type f_; 12329: typedef typename f_::type type; 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template<> struct eval_if< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : eval_if< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< eval_if< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef eval_if< na , na , na > result_; typedef eval_if< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< eval_if< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< eval_if< na , na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 15 "/usr/include/boost/iterator/iterator_categories.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/identity.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/identity.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename T = na 12329: > 12329: struct identity 12329: { 12329: typedef T type; 12329: 12329: }; 12329: 12329: template< 12329: typename T = na 12329: > 12329: struct make_identity 12329: { 12329: typedef identity type; 12329: 12329: }; 12329: 12329: template<> struct identity< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : identity< T1 > { }; }; template< typename Tag > struct lambda< identity< na > , Tag , int_<-1> > { typedef false_ is_le; typedef identity< na > result_; typedef identity< na > type; }; namespace aux { template< typename T1 > struct template_arity< identity< T1 > > : int_<1> { }; template<> struct template_arity< identity< na > > : int_<-1> { }; } 12329: template<> struct make_identity< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : make_identity< T1 > { }; }; template< typename Tag > struct lambda< make_identity< na > , Tag , int_<-1> > { typedef false_ is_le; typedef make_identity< na > result_; typedef make_identity< na > type; }; namespace aux { template< typename T1 > struct template_arity< make_identity< T1 > > : int_<1> { }; template<> struct template_arity< make_identity< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 16 "/usr/include/boost/iterator/iterator_categories.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/placeholders.hpp" 1 3 4 12329: # 24 "/usr/include/boost/mpl/placeholders.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/arg.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/arg.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/arg_fwd.hpp" 1 3 4 12329: # 21 "/usr/include/boost/mpl/arg_fwd.hpp" 3 4 12329: namespace mpl_ { 12329: 12329: template< int N > struct arg; 12329: 12329: } 12329: namespace boost { namespace mpl { using ::mpl_::arg; } } 12329: # 24 "/usr/include/boost/mpl/arg.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/na_assert.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/na_assert.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/assert.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/assert.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/not.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/not.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: namespace aux { 12329: 12329: template< long C_ > 12329: struct not_impl 12329: : bool_ 12329: { 12329: }; 12329: 12329: } 12329: 12329: 12329: template< 12329: typename T = na 12329: > 12329: struct not_ 12329: : aux::not_impl< 12329: ::boost::mpl::aux::nested_type_wknd::value 12329: > 12329: { 12329: 12329: }; 12329: 12329: template<> struct not_< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : not_< T1 > { }; }; template< typename Tag > struct lambda< not_< na > , Tag , int_<-1> > { typedef false_ is_le; typedef not_< na > result_; typedef not_< na > type; }; namespace aux { template< typename T1 > struct template_arity< not_< T1 > > : int_<1> { }; template<> struct template_arity< not_< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/assert.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/yes_no.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/yes_no.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/arrays.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/yes_no.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: typedef char (&no_tag)[1]; 12329: typedef char (&yes_tag)[2]; 12329: 12329: template< bool C_ > struct yes_no_tag 12329: { 12329: typedef no_tag type; 12329: }; 12329: 12329: template<> struct yes_no_tag 12329: { 12329: typedef yes_tag type; 12329: }; 12329: 12329: 12329: template< long n > struct weighted_tag 12329: { 12329: 12329: typedef char (&type)[n]; 12329: 12329: 12329: 12329: 12329: }; 12329: # 56 "/usr/include/boost/mpl/aux_/yes_no.hpp" 3 4 12329: }}} 12329: # 21 "/usr/include/boost/mpl/assert.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/config/gpu.hpp" 1 3 4 12329: # 29 "/usr/include/boost/mpl/assert.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/config/pp_counter.hpp" 1 3 4 12329: # 31 "/usr/include/boost/mpl/assert.hpp" 2 3 4 12329: # 66 "/usr/include/boost/mpl/assert.hpp" 3 4 12329: namespace mpl_ { 12329: 12329: struct failed {}; 12329: # 79 "/usr/include/boost/mpl/assert.hpp" 3 4 12329: template< bool C > struct assert { typedef void* type; }; 12329: template<> struct assert { typedef assert type; }; 12329: 12329: template< bool C > 12329: int assertion_failed( typename assert::type ); 12329: 12329: template< bool C > 12329: struct assertion 12329: { 12329: static int failed( assert ); 12329: }; 12329: 12329: template<> 12329: struct assertion 12329: { 12329: static int failed( void* ); 12329: }; 12329: 12329: struct assert_ 12329: { 12329: 12329: template< typename T1, typename T2 = na, typename T3 = na, typename T4 = na > struct types {}; 12329: 12329: static assert_ const arg; 12329: enum relations { equal = 1, not_equal, greater, greater_equal, less, less_equal }; 12329: }; 12329: # 127 "/usr/include/boost/mpl/assert.hpp" 3 4 12329: boost::mpl::aux::weighted_tag<1>::type operator==( assert_, assert_ ); 12329: boost::mpl::aux::weighted_tag<2>::type operator!=( assert_, assert_ ); 12329: boost::mpl::aux::weighted_tag<3>::type operator>( assert_, assert_ ); 12329: boost::mpl::aux::weighted_tag<4>::type operator>=( assert_, assert_ ); 12329: boost::mpl::aux::weighted_tag<5>::type operator<( assert_, assert_ ); 12329: boost::mpl::aux::weighted_tag<6>::type operator<=( assert_, assert_ ); 12329: 12329: template< assert_::relations r, long x, long y > struct assert_relation {}; 12329: # 171 "/usr/include/boost/mpl/assert.hpp" 3 4 12329: template< bool > struct assert_arg_pred_impl { typedef int type; }; 12329: template<> struct assert_arg_pred_impl { typedef void* type; }; 12329: 12329: template< typename P > struct assert_arg_pred 12329: { 12329: typedef typename P::type p_type; 12329: typedef typename assert_arg_pred_impl< p_type::value >::type type; 12329: }; 12329: 12329: template< typename P > struct assert_arg_pred_not 12329: { 12329: typedef typename P::type p_type; 12329: enum { p = !p_type::value }; 12329: typedef typename assert_arg_pred_impl

::type type; 12329: }; 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wparentheses" 12329: 12329: 12329: template< typename Pred > 12329: failed ************ (Pred::************ 12329: assert_arg( void (*)(Pred), typename assert_arg_pred::type ) 12329: ); 12329: 12329: template< typename Pred > 12329: failed ************ (boost::mpl::not_::************ 12329: assert_not_arg( void (*)(Pred), typename assert_arg_pred_not::type ) 12329: ); 12329: 12329: 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: 12329: template< typename Pred > 12329: assert 12329: assert_arg( void (*)(Pred), typename assert_arg_pred_not::type ); 12329: 12329: template< typename Pred > 12329: assert 12329: assert_not_arg( void (*)(Pred), typename assert_arg_pred::type ); 12329: # 257 "/usr/include/boost/mpl/assert.hpp" 3 4 12329: } 12329: # 24 "/usr/include/boost/mpl/aux_/na_assert.hpp" 2 3 4 12329: # 26 "/usr/include/boost/mpl/arg.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/arity_spec.hpp" 1 3 4 12329: # 27 "/usr/include/boost/mpl/arg.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/arg_typedef.hpp" 1 3 4 12329: # 28 "/usr/include/boost/mpl/arg.hpp" 2 3 4 12329: # 37 "/usr/include/boost/mpl/arg.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/arg.hpp" 1 3 4 12329: # 13 "/usr/include/boost/mpl/aux_/preprocessed/gcc/arg.hpp" 3 4 12329: namespace mpl_ { 12329: template<> struct arg< -1 > 12329: { 12329: static const int value = -1; 12329: 12329: 12329: 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: typedef U1 type; 12329: enum { mpl_assertion_in_line_27 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (boost::mpl::is_na))0, 1 ) ) ) }; 12329: }; 12329: }; 12329: 12329: template<> struct arg<1> 12329: { 12329: static const int value = 1; 12329: typedef arg<2> next; 12329: 12329: 12329: 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: typedef U1 type; 12329: enum { mpl_assertion_in_line_45 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (boost::mpl::is_na))0, 1 ) ) ) }; 12329: }; 12329: }; 12329: 12329: template<> struct arg<2> 12329: { 12329: static const int value = 2; 12329: typedef arg<3> next; 12329: 12329: 12329: 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: typedef U2 type; 12329: enum { mpl_assertion_in_line_63 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (boost::mpl::is_na))0, 1 ) ) ) }; 12329: }; 12329: }; 12329: 12329: template<> struct arg<3> 12329: { 12329: static const int value = 3; 12329: typedef arg<4> next; 12329: 12329: 12329: 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: typedef U3 type; 12329: enum { mpl_assertion_in_line_81 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (boost::mpl::is_na))0, 1 ) ) ) }; 12329: }; 12329: }; 12329: 12329: template<> struct arg<4> 12329: { 12329: static const int value = 4; 12329: typedef arg<5> next; 12329: 12329: 12329: 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: typedef U4 type; 12329: enum { mpl_assertion_in_line_99 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (boost::mpl::is_na))0, 1 ) ) ) }; 12329: }; 12329: }; 12329: 12329: template<> struct arg<5> 12329: { 12329: static const int value = 5; 12329: typedef arg<6> next; 12329: 12329: 12329: 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: typedef U5 type; 12329: enum { mpl_assertion_in_line_117 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (boost::mpl::is_na))0, 1 ) ) ) }; 12329: }; 12329: }; 12329: 12329: 12329: 12329: } 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 38 "/usr/include/boost/mpl/arg.hpp" 2 3 4 12329: # 25 "/usr/include/boost/mpl/placeholders.hpp" 2 3 4 12329: # 43 "/usr/include/boost/mpl/placeholders.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp" 1 3 4 12329: # 13 "/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp" 3 4 12329: namespace mpl_ { 12329: typedef arg< -1 > _; 12329: } 12329: namespace boost { namespace mpl { 12329: 12329: using ::mpl_::_; 12329: 12329: namespace placeholders { 12329: using mpl_::_; 12329: } 12329: 12329: }} 12329: 12329: 12329: 12329: namespace mpl_ { 12329: typedef arg<1> _1; 12329: 12329: } 12329: namespace boost { namespace mpl { 12329: 12329: using ::mpl_::_1; 12329: 12329: namespace placeholders { 12329: using mpl_::_1; 12329: } 12329: 12329: }} 12329: namespace mpl_ { 12329: typedef arg<2> _2; 12329: 12329: } 12329: namespace boost { namespace mpl { 12329: 12329: using ::mpl_::_2; 12329: 12329: namespace placeholders { 12329: using mpl_::_2; 12329: } 12329: 12329: }} 12329: namespace mpl_ { 12329: typedef arg<3> _3; 12329: 12329: } 12329: namespace boost { namespace mpl { 12329: 12329: using ::mpl_::_3; 12329: 12329: namespace placeholders { 12329: using mpl_::_3; 12329: } 12329: 12329: }} 12329: namespace mpl_ { 12329: typedef arg<4> _4; 12329: 12329: } 12329: namespace boost { namespace mpl { 12329: 12329: using ::mpl_::_4; 12329: 12329: namespace placeholders { 12329: using mpl_::_4; 12329: } 12329: 12329: }} 12329: namespace mpl_ { 12329: typedef arg<5> _5; 12329: 12329: } 12329: namespace boost { namespace mpl { 12329: 12329: using ::mpl_::_5; 12329: 12329: namespace placeholders { 12329: using mpl_::_5; 12329: } 12329: 12329: }} 12329: namespace mpl_ { 12329: typedef arg<6> _6; 12329: 12329: } 12329: namespace boost { namespace mpl { 12329: 12329: using ::mpl_::_6; 12329: 12329: namespace placeholders { 12329: using mpl_::_6; 12329: } 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 44 "/usr/include/boost/mpl/placeholders.hpp" 2 3 4 12329: # 17 "/usr/include/boost/iterator/iterator_categories.hpp" 2 3 4 12329: # 25 "/usr/include/boost/iterator/iterator_categories.hpp" 3 4 12329: namespace boost { 12329: namespace iterators { 12329: 12329: 12329: 12329: 12329: 12329: struct no_traversal_tag {}; 12329: 12329: struct incrementable_traversal_tag 12329: : no_traversal_tag 12329: { 12329: 12329: 12329: }; 12329: 12329: struct single_pass_traversal_tag 12329: : incrementable_traversal_tag 12329: { 12329: 12329: 12329: }; 12329: 12329: struct forward_traversal_tag 12329: : single_pass_traversal_tag 12329: { 12329: 12329: 12329: }; 12329: 12329: struct bidirectional_traversal_tag 12329: : forward_traversal_tag 12329: { 12329: 12329: 12329: }; 12329: 12329: struct random_access_traversal_tag 12329: : bidirectional_traversal_tag 12329: { 12329: 12329: 12329: }; 12329: 12329: namespace detail 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct old_category_to_traversal 12329: : mpl::eval_if< 12329: is_convertible 12329: , mpl::identity 12329: , mpl::eval_if< 12329: is_convertible 12329: , mpl::identity 12329: , mpl::eval_if< 12329: is_convertible 12329: , mpl::identity 12329: , mpl::eval_if< 12329: is_convertible 12329: , mpl::identity 12329: , mpl::eval_if< 12329: is_convertible 12329: , mpl::identity 12329: , void 12329: > 12329: > 12329: > 12329: > 12329: > 12329: {}; 12329: 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: struct iterator_category_to_traversal 12329: : mpl::eval_if< 12329: is_convertible 12329: , mpl::identity 12329: , boost::iterators::detail::old_category_to_traversal 12329: > 12329: {}; 12329: 12329: 12329: template 12329: struct iterator_traversal 12329: : iterator_category_to_traversal< 12329: typename std::iterator_traits::iterator_category 12329: > 12329: {}; 12329: # 146 "/usr/include/boost/iterator/iterator_categories.hpp" 3 4 12329: template 12329: struct pure_traversal_tag 12329: : mpl::eval_if< 12329: is_convertible 12329: , mpl::identity 12329: , mpl::eval_if< 12329: is_convertible 12329: , mpl::identity 12329: , mpl::eval_if< 12329: is_convertible 12329: , mpl::identity 12329: , mpl::eval_if< 12329: is_convertible 12329: , mpl::identity 12329: , mpl::eval_if< 12329: is_convertible 12329: , mpl::identity 12329: , void 12329: > 12329: > 12329: > 12329: > 12329: > 12329: { 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: struct pure_iterator_traversal 12329: : pure_traversal_tag::type> 12329: {}; 12329: # 194 "/usr/include/boost/iterator/iterator_categories.hpp" 3 4 12329: } 12329: 12329: using iterators::no_traversal_tag; 12329: using iterators::incrementable_traversal_tag; 12329: using iterators::single_pass_traversal_tag; 12329: using iterators::forward_traversal_tag; 12329: using iterators::bidirectional_traversal_tag; 12329: using iterators::random_access_traversal_tag; 12329: using iterators::iterator_category_to_traversal; 12329: using iterators::iterator_traversal; 12329: 12329: 12329: 12329: 12329: namespace detail { 12329: using iterators::pure_traversal_tag; 12329: } 12329: 12329: } 12329: 12329: # 1 "/usr/include/boost/iterator/detail/config_undef.hpp" 1 3 4 12329: # 215 "/usr/include/boost/iterator/iterator_categories.hpp" 2 3 4 12329: # 14 "/usr/include/boost/iterator/iterator_facade.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/iterator/detail/facade_iterator_category.hpp" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/core/use_default.hpp" 1 3 4 12329: # 11 "/usr/include/boost/core/use_default.hpp" 3 4 12329: namespace boost { 12329: 12329: struct use_default { }; 12329: 12329: } 12329: # 8 "/usr/include/boost/iterator/detail/facade_iterator_category.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/and.hpp" 1 3 4 12329: # 42 "/usr/include/boost/mpl/and.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: namespace aux { 12329: 12329: template< bool C_, typename T1, typename T2, typename T3, typename T4 > 12329: struct and_impl 12329: : false_ 12329: { 12329: }; 12329: 12329: template< typename T1, typename T2, typename T3, typename T4 > 12329: struct and_impl< true,T1,T2,T3,T4 > 12329: : and_impl< 12329: ::boost::mpl::aux::nested_type_wknd::value 12329: , T2, T3, T4 12329: , true_ 12329: > 12329: { 12329: }; 12329: 12329: template<> 12329: struct and_impl< 12329: true 12329: , true_, true_, true_, true_ 12329: > 12329: : true_ 12329: { 12329: }; 12329: 12329: } 12329: 12329: template< 12329: typename T1 = na 12329: , typename T2 = na 12329: , typename T3 = true_, typename T4 = true_, typename T5 = true_ 12329: > 12329: struct and_ 12329: 12329: : aux::and_impl< 12329: ::boost::mpl::aux::nested_type_wknd::value 12329: , T2, T3, T4, T5 12329: > 12329: 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template<> struct and_< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : and_< T1 , T2 > { }; }; template< typename Tag > struct lambda< and_< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef and_< na , na > result_; typedef and_< na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct template_arity< and_< T1 , T2 , T3 , T4 , T5 > > : int_<5> { }; template<> struct template_arity< and_< na , na > > : int_<-1> { }; } 12329: 12329: 12329: 12329: 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 43 "/usr/include/boost/mpl/and.hpp" 2 3 4 12329: # 13 "/usr/include/boost/iterator/detail/facade_iterator_category.hpp" 2 3 4 12329: # 25 "/usr/include/boost/iterator/detail/facade_iterator_category.hpp" 3 4 12329: # 1 "/usr/include/boost/iterator/detail/config_def.hpp" 1 3 4 12329: # 26 "/usr/include/boost/iterator/detail/facade_iterator_category.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/detail/indirect_traits.hpp" 1 3 4 12329: # 11 "/usr/include/boost/detail/indirect_traits.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_class.hpp" 1 3 4 12329: # 31 "/usr/include/boost/type_traits/is_class.hpp" 3 4 12329: namespace boost { 12329: 12329: namespace detail { 12329: # 96 "/usr/include/boost/type_traits/is_class.hpp" 3 4 12329: template 12329: struct is_class_impl 12329: { 12329: static const bool value = __is_class(T); 12329: }; 12329: 12329: 12329: } 12329: 12329: template struct is_class : public integral_constant::value> {}; 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 12 "/usr/include/boost/detail/indirect_traits.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/remove_pointer.hpp" 1 3 4 12329: # 20 "/usr/include/boost/type_traits/remove_pointer.hpp" 3 4 12329: namespace boost { 12329: # 68 "/usr/include/boost/type_traits/remove_pointer.hpp" 3 4 12329: template struct remove_pointer{ typedef T type; }; 12329: template struct remove_pointer{ typedef T type; }; 12329: template struct remove_pointer{ typedef T type; }; 12329: template struct remove_pointer{ typedef T type; }; 12329: template struct remove_pointer{ typedef T type; }; 12329: 12329: 12329: 12329: 12329: 12329: template using remove_pointer_t = typename remove_pointer::type; 12329: 12329: 12329: 12329: } 12329: # 19 "/usr/include/boost/detail/indirect_traits.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/detail/select_type.hpp" 1 3 4 12329: # 16 "/usr/include/boost/detail/select_type.hpp" 3 4 12329: namespace boost { namespace detail { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template struct if_true 12329: { 12329: template 12329: struct then { typedef T type; }; 12329: }; 12329: 12329: template <> 12329: struct if_true 12329: { 12329: template 12329: struct then { typedef F type; }; 12329: }; 12329: }} 12329: # 22 "/usr/include/boost/detail/indirect_traits.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace detail { 12329: 12329: namespace indirect_traits { 12329: 12329: template 12329: struct is_reference_to_const : boost::false_type 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_const : boost::true_type 12329: { 12329: }; 12329: # 45 "/usr/include/boost/detail/indirect_traits.hpp" 3 4 12329: template 12329: struct is_reference_to_function : boost::false_type 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_function : is_function 12329: { 12329: }; 12329: 12329: template 12329: struct is_pointer_to_function : boost::false_type 12329: { 12329: }; 12329: 12329: 12329: 12329: template 12329: struct is_pointer_to_function : is_function 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_member_function_pointer_impl : boost::false_type 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_member_function_pointer_impl 12329: : is_member_function_pointer::type> 12329: { 12329: }; 12329: 12329: 12329: template 12329: struct is_reference_to_member_function_pointer 12329: : is_reference_to_member_function_pointer_impl 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_function_pointer_aux 12329: : boost::integral_constant::value && 12329: is_pointer_to_function< 12329: typename remove_cv< 12329: typename remove_reference::type 12329: >::type 12329: >::value 12329: > 12329: { 12329: 12329: }; 12329: 12329: template 12329: struct is_reference_to_function_pointer 12329: : boost::detail::if_true< 12329: is_reference_to_function::value 12329: >::template then< 12329: boost::false_type 12329: , is_reference_to_function_pointer_aux 12329: >::type 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_non_const 12329: : boost::integral_constant::value && 12329: !is_reference_to_const::value 12329: > 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_volatile : boost::false_type 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_volatile : boost::true_type 12329: { 12329: }; 12329: # 137 "/usr/include/boost/detail/indirect_traits.hpp" 3 4 12329: template 12329: struct is_reference_to_pointer : boost::false_type 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_pointer : boost::true_type 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_pointer : boost::true_type 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_pointer : boost::true_type 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_pointer : boost::true_type 12329: { 12329: }; 12329: 12329: template 12329: struct is_reference_to_class 12329: : boost::integral_constant::value && 12329: is_class< 12329: typename remove_cv< 12329: typename remove_reference::type 12329: >::type 12329: >::value 12329: > 12329: { 12329: }; 12329: 12329: template 12329: struct is_pointer_to_class 12329: : boost::integral_constant::value && 12329: is_class< 12329: typename remove_cv< 12329: typename remove_pointer::type 12329: >::type 12329: >::value 12329: > 12329: { 12329: }; 12329: 12329: 12329: } 12329: 12329: using namespace indirect_traits; 12329: 12329: }} 12329: # 29 "/usr/include/boost/iterator/detail/facade_iterator_category.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { 12329: namespace iterators { 12329: 12329: using boost::use_default; 12329: 12329: namespace detail { 12329: 12329: struct input_output_iterator_tag 12329: : std::input_iterator_tag 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: operator std::output_iterator_tag() const 12329: { 12329: return std::output_iterator_tag(); 12329: } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct iterator_writability_disabled 12329: 12329: : mpl::or_< 12329: is_const 12329: , boost::detail::indirect_traits::is_reference_to_const 12329: , is_const 12329: > 12329: 12329: 12329: 12329: {}; 12329: # 84 "/usr/include/boost/iterator/detail/facade_iterator_category.hpp" 3 4 12329: template 12329: struct iterator_facade_default_category 12329: : mpl::eval_if< 12329: mpl::and_< 12329: is_reference 12329: , is_convertible 12329: > 12329: , mpl::eval_if< 12329: is_convertible 12329: , mpl::identity 12329: , mpl::if_< 12329: is_convertible 12329: , std::bidirectional_iterator_tag 12329: , std::forward_iterator_tag 12329: > 12329: > 12329: , typename mpl::eval_if< 12329: mpl::and_< 12329: is_convertible 12329: 12329: 12329: , is_convertible 12329: > 12329: , mpl::identity 12329: , mpl::identity 12329: > 12329: > 12329: { 12329: }; 12329: 12329: 12329: template 12329: struct is_iterator_category 12329: : mpl::or_< 12329: is_convertible 12329: , is_convertible 12329: > 12329: { 12329: }; 12329: 12329: template 12329: struct is_iterator_traversal 12329: : is_convertible 12329: {}; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct iterator_category_with_traversal 12329: : Category, Traversal 12329: { 12329: 12329: 12329: 12329: enum { mpl_assertion_in_line_142 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) ( is_convertible< typename iterator_category_to_traversal::type , Traversal >))0, 1 ) ) ) } 12329: 12329: 12329: 12329: ; 12329: 12329: enum { mpl_assertion_in_line_148 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_arg( (void (*) (is_iterator_category))0, 1 ) ) ) }; 12329: enum { mpl_assertion_in_line_149 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (is_iterator_category))0, 1 ) ) ) }; 12329: enum { mpl_assertion_in_line_150 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (is_iterator_traversal))0, 1 ) ) ) }; 12329: 12329: enum { mpl_assertion_in_line_152 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_arg( (void (*) (is_iterator_traversal))0, 1 ) ) ) }; 12329: 12329: }; 12329: 12329: 12329: 12329: template 12329: struct facade_iterator_category_impl 12329: { 12329: enum { mpl_assertion_in_line_161 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_not_arg( (void (*) (is_iterator_category))0, 1 ) ) ) }; 12329: 12329: typedef typename iterator_facade_default_category< 12329: Traversal,ValueParam,Reference 12329: >::type category; 12329: 12329: typedef typename mpl::if_< 12329: is_same< 12329: Traversal 12329: , typename iterator_category_to_traversal::type 12329: > 12329: , category 12329: , iterator_category_with_traversal 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: struct facade_iterator_category 12329: : mpl::eval_if< 12329: is_iterator_category 12329: , mpl::identity 12329: , facade_iterator_category_impl 12329: > 12329: { 12329: }; 12329: 12329: }}} 12329: 12329: # 1 "/usr/include/boost/iterator/detail/config_undef.hpp" 1 3 4 12329: # 193 "/usr/include/boost/iterator/detail/facade_iterator_category.hpp" 2 3 4 12329: # 16 "/usr/include/boost/iterator/iterator_facade.hpp" 2 3 4 12329: # 1 "/usr/include/boost/iterator/detail/enable_if.hpp" 1 3 4 12329: # 13 "/usr/include/boost/iterator/detail/enable_if.hpp" 3 4 12329: # 1 "/usr/include/boost/iterator/detail/config_def.hpp" 1 3 4 12329: # 14 "/usr/include/boost/iterator/detail/enable_if.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: namespace iterators 12329: { 12329: 12329: 12329: 12329: template 12329: struct enabled 12329: { 12329: template 12329: struct base 12329: { 12329: typedef T type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: struct enabled 12329: { 12329: template 12329: struct base 12329: { 12329: # 62 "/usr/include/boost/iterator/detail/enable_if.hpp" 3 4 12329: }; 12329: }; 12329: 12329: 12329: template 12329: struct enable_if 12329: 12329: : enabled<(Cond::value)>::template base 12329: 12329: 12329: 12329: { 12329: }; 12329: 12329: } 12329: 12329: } 12329: 12329: # 1 "/usr/include/boost/iterator/detail/config_undef.hpp" 1 3 4 12329: # 82 "/usr/include/boost/iterator/detail/enable_if.hpp" 2 3 4 12329: # 17 "/usr/include/boost/iterator/iterator_facade.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/add_const.hpp" 1 3 4 12329: # 15 "/usr/include/boost/type_traits/add_const.hpp" 3 4 12329: namespace boost { 12329: # 30 "/usr/include/boost/type_traits/add_const.hpp" 3 4 12329: template struct add_const 12329: { 12329: typedef T const type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template struct add_const 12329: { 12329: typedef T& type; 12329: }; 12329: 12329: 12329: 12329: template using add_const_t = typename add_const::type; 12329: 12329: 12329: 12329: } 12329: # 23 "/usr/include/boost/iterator/iterator_facade.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/remove_const.hpp" 1 3 4 12329: # 18 "/usr/include/boost/type_traits/remove_const.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: template struct remove_const{ typedef T type; }; 12329: template struct remove_const{ typedef T type; }; 12329: 12329: 12329: template struct remove_const{ typedef T type[N]; }; 12329: 12329: template struct remove_const{ typedef T type[]; }; 12329: 12329: 12329: 12329: 12329: 12329: template using remove_const_t = typename remove_const::type; 12329: 12329: 12329: 12329: } 12329: # 26 "/usr/include/boost/iterator/iterator_facade.hpp" 2 3 4 12329: # 35 "/usr/include/boost/iterator/iterator_facade.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/always.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/always.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessor/default_params.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/always.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Value > struct always 12329: { 12329: template< 12329: typename T1 = na , typename T2 = na , typename T3 = na , typename T4 = na , typename T5 = na 12329: > 12329: struct apply 12329: { 12329: typedef Value type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: }} 12329: # 36 "/usr/include/boost/iterator/iterator_facade.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/apply.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/apply.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply_fwd.hpp" 1 3 4 12329: # 31 "/usr/include/boost/mpl/apply_fwd.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename F, typename T1 = na, typename T2 = na, typename T3 = na 12329: , typename T4 = na, typename T5 = na 12329: > 12329: struct apply; 12329: 12329: template< 12329: typename F 12329: > 12329: struct apply0; 12329: 12329: template< 12329: typename F, typename T1 12329: > 12329: struct apply1; 12329: 12329: template< 12329: typename F, typename T1, typename T2 12329: > 12329: struct apply2; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3 12329: > 12329: struct apply3; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: > 12329: struct apply4; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: > 12329: struct apply5; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 32 "/usr/include/boost/mpl/apply_fwd.hpp" 2 3 4 12329: # 23 "/usr/include/boost/mpl/apply.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/apply_wrap.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/has_apply.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/has_apply.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/has_xxx.hpp" 1 3 4 12329: # 21 "/usr/include/boost/mpl/has_xxx.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/type_wrapper.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/aux_/type_wrapper.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: template< typename T > struct type_wrapper 12329: { 12329: typedef T type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template< typename T > struct wrapped_type; 12329: 12329: template< typename T > struct wrapped_type< type_wrapper > 12329: { 12329: typedef T type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: }}} 12329: # 22 "/usr/include/boost/mpl/has_xxx.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/config/has_xxx.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/has_xxx.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/msvc_typename.hpp" 1 3 4 12329: # 26 "/usr/include/boost/mpl/has_xxx.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/preprocessor/array/elem.hpp" 1 3 4 12329: # 15 "/usr/include/boost/preprocessor/array/elem.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/array/data.hpp" 1 3 4 12329: # 16 "/usr/include/boost/preprocessor/array/elem.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/array/size.hpp" 1 3 4 12329: # 17 "/usr/include/boost/preprocessor/array/elem.hpp" 2 3 4 12329: # 31 "/usr/include/boost/mpl/has_xxx.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/preprocessor/repetition/enum_trailing_params.hpp" 1 3 4 12329: # 35 "/usr/include/boost/mpl/has_xxx.hpp" 2 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/has_apply.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/has_apply.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/has_apply.hpp" 2 3 4 12329: 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_apply { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: }}} 12329: # 24 "/usr/include/boost/mpl/apply_wrap.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/msvc_never_true.hpp" 1 3 4 12329: # 26 "/usr/include/boost/mpl/apply_wrap.hpp" 2 3 4 12329: # 34 "/usr/include/boost/mpl/apply_wrap.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename F 12329: 12329: , typename has_apply_ = typename aux::has_apply::type 12329: 12329: > 12329: struct apply_wrap0 12329: 12329: : F::template apply< > 12329: { 12329: }; 12329: 12329: template< typename F > 12329: struct apply_wrap0< F,true_ > 12329: : F::apply 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1 12329: 12329: > 12329: struct apply_wrap1 12329: 12329: : F::template apply 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2 12329: 12329: > 12329: struct apply_wrap2 12329: 12329: : F::template apply< T1,T2 > 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3 12329: 12329: > 12329: struct apply_wrap3 12329: 12329: : F::template apply< T1,T2,T3 > 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: 12329: > 12329: struct apply_wrap4 12329: 12329: : F::template apply< T1,T2,T3,T4 > 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: 12329: > 12329: struct apply_wrap5 12329: 12329: : F::template apply< T1,T2,T3,T4,T5 > 12329: { 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 35 "/usr/include/boost/mpl/apply_wrap.hpp" 2 3 4 12329: # 24 "/usr/include/boost/mpl/apply.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/placeholders.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/apply.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/lambda.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/lambda.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/bind.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/bind.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/bind_fwd.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/bind_fwd.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/bind.hpp" 1 3 4 12329: # 26 "/usr/include/boost/mpl/bind_fwd.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename F, typename T1 = na, typename T2 = na, typename T3 = na 12329: , typename T4 = na, typename T5 = na 12329: > 12329: struct bind; 12329: 12329: template< 12329: typename F 12329: > 12329: struct bind0; 12329: 12329: template< 12329: typename F, typename T1 12329: > 12329: struct bind1; 12329: 12329: template< 12329: typename F, typename T1, typename T2 12329: > 12329: struct bind2; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3 12329: > 12329: struct bind3; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: > 12329: struct bind4; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: > 12329: struct bind5; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 33 "/usr/include/boost/mpl/bind_fwd.hpp" 2 3 4 12329: # 24 "/usr/include/boost/mpl/bind.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/placeholders.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/bind.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/next.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/next.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/next_prior.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/next_prior.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/common_name_wknd.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/next_prior.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: 12329: template< 12329: typename T = na 12329: > 12329: struct next 12329: { 12329: typedef typename T::next type; 12329: 12329: }; 12329: 12329: template< 12329: typename T = na 12329: > 12329: struct prior 12329: { 12329: typedef typename T::prior type; 12329: 12329: }; 12329: 12329: template<> struct next< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : next< T1 > { }; }; template< typename Tag > struct lambda< next< na > , Tag , int_<-1> > { typedef false_ is_le; typedef next< na > result_; typedef next< na > type; }; namespace aux { template< typename T1 > struct template_arity< next< T1 > > : int_<1> { }; template<> struct template_arity< next< na > > : int_<-1> { }; } 12329: template<> struct prior< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : prior< T1 > { }; }; template< typename Tag > struct lambda< prior< na > , Tag , int_<-1> > { typedef false_ is_le; typedef prior< na > result_; typedef prior< na > type; }; namespace aux { template< typename T1 > struct template_arity< prior< T1 > > : int_<1> { }; template<> struct template_arity< prior< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/next.hpp" 2 3 4 12329: # 26 "/usr/include/boost/mpl/bind.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/protect.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/protect.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename T = na 12329: , int not_le_ = 0 12329: > 12329: struct protect : T 12329: { 12329: 12329: 12329: 12329: typedef protect type; 12329: 12329: }; 12329: # 48 "/usr/include/boost/mpl/protect.hpp" 3 4 12329: template<> struct protect< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : protect< T1 > { }; }; 12329: 12329: namespace aux { template< typename T1 > struct template_arity< protect< T1 > > : int_<1> { }; template<> struct template_arity< protect< na > > : int_<-1> { }; } 12329: 12329: 12329: }} 12329: # 27 "/usr/include/boost/mpl/bind.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 28 "/usr/include/boost/mpl/bind.hpp" 2 3 4 12329: # 50 "/usr/include/boost/mpl/bind.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp" 1 3 4 12329: # 13 "/usr/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: namespace aux { 12329: 12329: template< 12329: typename T, typename U1, typename U2, typename U3, typename U4 12329: , typename U5 12329: > 12329: struct resolve_bind_arg 12329: { 12329: typedef T type; 12329: }; 12329: 12329: template< 12329: typename T 12329: , typename Arg 12329: > 12329: struct replace_unnamed_arg 12329: { 12329: typedef Arg next; 12329: typedef T type; 12329: }; 12329: 12329: template< 12329: typename Arg 12329: > 12329: struct replace_unnamed_arg< arg< -1 >, Arg > 12329: { 12329: typedef typename Arg::next next; 12329: typedef Arg type; 12329: }; 12329: 12329: template< 12329: int N, typename U1, typename U2, typename U3, typename U4, typename U5 12329: > 12329: struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > 12329: { 12329: typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename U1, typename U2, typename U3, typename U4 12329: , typename U5 12329: > 12329: struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > 12329: { 12329: typedef bind< F,T1,T2,T3,T4,T5 > f_; 12329: typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; 12329: }; 12329: 12329: } 12329: 12329: template< 12329: typename F 12329: > 12329: struct bind0 12329: { 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: private: 12329: typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; 12329: typedef typename r0::type a0; 12329: typedef typename r0::next n1; 12329: typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; 12329: 12329: public: 12329: typedef typename apply_wrap0< 12329: f_ 12329: >::type type; 12329: 12329: }; 12329: }; 12329: 12329: namespace aux { 12329: 12329: template< 12329: typename F, typename U1, typename U2, typename U3, typename U4 12329: , typename U5 12329: > 12329: struct resolve_bind_arg< 12329: bind0, U1, U2, U3, U4, U5 12329: > 12329: { 12329: typedef bind0 f_; 12329: typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; 12329: }; 12329: 12329: } 12329: 12329: 12329: namespace aux { template< typename T1 > struct template_arity< bind0< T1> > : int_<1> { }; } 12329: 12329: template< 12329: typename F 12329: > 12329: struct bind< F,na,na,na,na,na > 12329: : bind0 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1 12329: > 12329: struct bind1 12329: { 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: private: 12329: typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; 12329: typedef typename r0::type a0; 12329: typedef typename r0::next n1; 12329: typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; 12329: 12329: typedef aux::replace_unnamed_arg< T1,n1 > r1; 12329: typedef typename r1::type a1; 12329: typedef typename r1::next n2; 12329: typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; 12329: 12329: public: 12329: typedef typename apply_wrap1< 12329: f_ 12329: , typename t1::type 12329: >::type type; 12329: 12329: }; 12329: }; 12329: 12329: namespace aux { 12329: 12329: template< 12329: typename F, typename T1, typename U1, typename U2, typename U3 12329: , typename U4, typename U5 12329: > 12329: struct resolve_bind_arg< 12329: bind1< F,T1 >, U1, U2, U3, U4, U5 12329: > 12329: { 12329: typedef bind1< F,T1 > f_; 12329: typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; 12329: }; 12329: 12329: } 12329: 12329: 12329: namespace aux { template< typename T1 , typename T2 > struct template_arity< bind1< T1 , T2> > : int_<2> { }; } 12329: 12329: template< 12329: typename F, typename T1 12329: > 12329: struct bind< F,T1,na,na,na,na > 12329: : bind1< F,T1 > 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2 12329: > 12329: struct bind2 12329: { 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: private: 12329: typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; 12329: typedef typename r0::type a0; 12329: typedef typename r0::next n1; 12329: typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; 12329: 12329: typedef aux::replace_unnamed_arg< T1,n1 > r1; 12329: typedef typename r1::type a1; 12329: typedef typename r1::next n2; 12329: typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; 12329: 12329: typedef aux::replace_unnamed_arg< T2,n2 > r2; 12329: typedef typename r2::type a2; 12329: typedef typename r2::next n3; 12329: typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; 12329: 12329: public: 12329: typedef typename apply_wrap2< 12329: f_ 12329: , typename t1::type, typename t2::type 12329: >::type type; 12329: 12329: }; 12329: }; 12329: 12329: namespace aux { 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename U1, typename U2 12329: , typename U3, typename U4, typename U5 12329: > 12329: struct resolve_bind_arg< 12329: bind2< F,T1,T2 >, U1, U2, U3, U4, U5 12329: > 12329: { 12329: typedef bind2< F,T1,T2 > f_; 12329: typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; 12329: }; 12329: 12329: } 12329: 12329: 12329: namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< bind2< T1 , T2 , T3> > : int_<3> { }; } 12329: 12329: template< 12329: typename F, typename T1, typename T2 12329: > 12329: struct bind< F,T1,T2,na,na,na > 12329: : bind2< F,T1,T2 > 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3 12329: > 12329: struct bind3 12329: { 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: private: 12329: typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; 12329: typedef typename r0::type a0; 12329: typedef typename r0::next n1; 12329: typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; 12329: 12329: typedef aux::replace_unnamed_arg< T1,n1 > r1; 12329: typedef typename r1::type a1; 12329: typedef typename r1::next n2; 12329: typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; 12329: 12329: typedef aux::replace_unnamed_arg< T2,n2 > r2; 12329: typedef typename r2::type a2; 12329: typedef typename r2::next n3; 12329: typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; 12329: 12329: typedef aux::replace_unnamed_arg< T3,n3 > r3; 12329: typedef typename r3::type a3; 12329: typedef typename r3::next n4; 12329: typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; 12329: 12329: public: 12329: typedef typename apply_wrap3< 12329: f_ 12329: , typename t1::type, typename t2::type, typename t3::type 12329: >::type type; 12329: 12329: }; 12329: }; 12329: 12329: namespace aux { 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename U1 12329: , typename U2, typename U3, typename U4, typename U5 12329: > 12329: struct resolve_bind_arg< 12329: bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 12329: > 12329: { 12329: typedef bind3< F,T1,T2,T3 > f_; 12329: typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; 12329: }; 12329: 12329: } 12329: 12329: 12329: namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 > struct template_arity< bind3< T1 , T2 , T3 , T4> > : int_<4> { }; } 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3 12329: > 12329: struct bind< F,T1,T2,T3,na,na > 12329: : bind3< F,T1,T2,T3 > 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: > 12329: struct bind4 12329: { 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: private: 12329: typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; 12329: typedef typename r0::type a0; 12329: typedef typename r0::next n1; 12329: typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; 12329: 12329: typedef aux::replace_unnamed_arg< T1,n1 > r1; 12329: typedef typename r1::type a1; 12329: typedef typename r1::next n2; 12329: typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; 12329: 12329: typedef aux::replace_unnamed_arg< T2,n2 > r2; 12329: typedef typename r2::type a2; 12329: typedef typename r2::next n3; 12329: typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; 12329: 12329: typedef aux::replace_unnamed_arg< T3,n3 > r3; 12329: typedef typename r3::type a3; 12329: typedef typename r3::next n4; 12329: typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; 12329: 12329: typedef aux::replace_unnamed_arg< T4,n4 > r4; 12329: typedef typename r4::type a4; 12329: typedef typename r4::next n5; 12329: typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; 12329: 12329: public: 12329: typedef typename apply_wrap4< 12329: f_ 12329: , typename t1::type, typename t2::type, typename t3::type 12329: , typename t4::type 12329: >::type type; 12329: 12329: }; 12329: }; 12329: 12329: namespace aux { 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename U1, typename U2, typename U3, typename U4, typename U5 12329: > 12329: struct resolve_bind_arg< 12329: bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 12329: > 12329: { 12329: typedef bind4< F,T1,T2,T3,T4 > f_; 12329: typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; 12329: }; 12329: 12329: } 12329: 12329: 12329: namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct template_arity< bind4< T1 , T2 , T3 , T4 , T5> > : int_<5> { }; } 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: > 12329: struct bind< F,T1,T2,T3,T4,na > 12329: : bind4< F,T1,T2,T3,T4 > 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: > 12329: struct bind5 12329: { 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: private: 12329: typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; 12329: typedef typename r0::type a0; 12329: typedef typename r0::next n1; 12329: typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; 12329: 12329: typedef aux::replace_unnamed_arg< T1,n1 > r1; 12329: typedef typename r1::type a1; 12329: typedef typename r1::next n2; 12329: typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; 12329: 12329: typedef aux::replace_unnamed_arg< T2,n2 > r2; 12329: typedef typename r2::type a2; 12329: typedef typename r2::next n3; 12329: typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; 12329: 12329: typedef aux::replace_unnamed_arg< T3,n3 > r3; 12329: typedef typename r3::type a3; 12329: typedef typename r3::next n4; 12329: typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; 12329: 12329: typedef aux::replace_unnamed_arg< T4,n4 > r4; 12329: typedef typename r4::type a4; 12329: typedef typename r4::next n5; 12329: typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; 12329: 12329: typedef aux::replace_unnamed_arg< T5,n5 > r5; 12329: typedef typename r5::type a5; 12329: typedef typename r5::next n6; 12329: typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; 12329: 12329: public: 12329: typedef typename apply_wrap5< 12329: f_ 12329: , typename t1::type, typename t2::type, typename t3::type 12329: , typename t4::type, typename t5::type 12329: >::type type; 12329: 12329: }; 12329: }; 12329: 12329: namespace aux { 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename U1, typename U2, typename U3, typename U4 12329: , typename U5 12329: > 12329: struct resolve_bind_arg< 12329: bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 12329: > 12329: { 12329: typedef bind5< F,T1,T2,T3,T4,T5 > f_; 12329: typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; 12329: }; 12329: 12329: } 12329: 12329: 12329: namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 > struct template_arity< bind5< T1 , T2 , T3 , T4 , T5 , T6> > : int_<6> { }; } 12329: 12329: 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: > 12329: struct bind 12329: : bind5< F,T1,T2,T3,T4,T5 > 12329: { 12329: }; 12329: 12329: 12329: template< template< typename T1, typename T2, typename T3 > class F, typename Tag > 12329: struct quote3; 12329: 12329: template< typename T1, typename T2, typename T3 > struct if_; 12329: 12329: template< 12329: typename Tag, typename T1, typename T2, typename T3 12329: > 12329: struct bind3< 12329: quote3< if_,Tag > 12329: , T1, T2, T3 12329: > 12329: { 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: private: 12329: typedef mpl::arg<1> n1; 12329: typedef aux::replace_unnamed_arg< T1,n1 > r1; 12329: typedef typename r1::type a1; 12329: typedef typename r1::next n2; 12329: typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; 12329: 12329: typedef aux::replace_unnamed_arg< T2,n2 > r2; 12329: typedef typename r2::type a2; 12329: typedef typename r2::next n3; 12329: typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; 12329: 12329: typedef aux::replace_unnamed_arg< T3,n3 > r3; 12329: typedef typename r3::type a3; 12329: typedef typename r3::next n4; 12329: typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; 12329: 12329: typedef typename if_< 12329: typename t1::type 12329: , t2, t3 12329: >::type f_; 12329: 12329: public: 12329: typedef typename f_::type type; 12329: }; 12329: }; 12329: 12329: template< 12329: template< typename T1, typename T2, typename T3 > class F, typename Tag 12329: > 12329: struct quote3; 12329: 12329: template< typename T1, typename T2, typename T3 > struct eval_if; 12329: 12329: template< 12329: typename Tag, typename T1, typename T2, typename T3 12329: > 12329: struct bind3< 12329: quote3< eval_if,Tag > 12329: , T1, T2, T3 12329: > 12329: { 12329: template< 12329: typename U1 = na, typename U2 = na, typename U3 = na 12329: , typename U4 = na, typename U5 = na 12329: > 12329: struct apply 12329: { 12329: private: 12329: typedef mpl::arg<1> n1; 12329: typedef aux::replace_unnamed_arg< T1,n1 > r1; 12329: typedef typename r1::type a1; 12329: typedef typename r1::next n2; 12329: typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; 12329: 12329: typedef aux::replace_unnamed_arg< T2,n2 > r2; 12329: typedef typename r2::type a2; 12329: typedef typename r2::next n3; 12329: typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; 12329: 12329: typedef aux::replace_unnamed_arg< T3,n3 > r3; 12329: typedef typename r3::type a3; 12329: typedef typename r3::next n4; 12329: typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; 12329: 12329: typedef typename eval_if< 12329: typename t1::type 12329: , t2, t3 12329: >::type f_; 12329: 12329: public: 12329: typedef typename f_::type type; 12329: }; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 51 "/usr/include/boost/mpl/bind.hpp" 2 3 4 12329: # 19 "/usr/include/boost/mpl/lambda.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/full_lambda.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/full_lambda.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/bind_fwd.hpp" 1 3 4 12329: # 24 "/usr/include/boost/mpl/aux_/full_lambda.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/quote.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/quote.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/void.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/void.hpp" 3 4 12329: namespace mpl_ { 12329: 12329: 12329: 12329: 12329: 12329: struct void_ { typedef void_ type; }; 12329: 12329: } 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< typename T > 12329: struct is_void_ 12329: : false_ 12329: { 12329: 12329: 12329: 12329: }; 12329: 12329: template<> 12329: struct is_void_ 12329: : true_ 12329: { 12329: 12329: 12329: 12329: }; 12329: 12329: template< typename T > 12329: struct is_not_void_ 12329: : true_ 12329: { 12329: 12329: 12329: 12329: }; 12329: 12329: template<> 12329: struct is_not_void_ 12329: : false_ 12329: { 12329: 12329: 12329: 12329: }; 12329: 12329: template<> struct is_void_< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : is_void_< T1 > { }; }; template< typename Tag > struct lambda< is_void_< na > , Tag , int_<-1> > { typedef false_ is_le; typedef is_void_< na > result_; typedef is_void_< na > type; }; namespace aux { template< typename T1 > struct template_arity< is_void_< T1 > > : int_<1> { }; template<> struct template_arity< is_void_< na > > : int_<-1> { }; } 12329: template<> struct is_not_void_< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : is_not_void_< T1 > { }; }; template< typename Tag > struct lambda< is_not_void_< na > , Tag , int_<-1> > { typedef false_ is_le; typedef is_not_void_< na > result_; typedef is_not_void_< na > type; }; namespace aux { template< typename T1 > struct template_arity< is_not_void_< T1 > > : int_<1> { }; template<> struct template_arity< is_not_void_< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 23 "/usr/include/boost/mpl/quote.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/has_type.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/has_type.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_type { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; 12329: }}} 12329: # 24 "/usr/include/boost/mpl/quote.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/config/bcc.hpp" 1 3 4 12329: # 27 "/usr/include/boost/mpl/quote.hpp" 2 3 4 12329: # 45 "/usr/include/boost/mpl/quote.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/quote.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/quote.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename T, bool has_type_ > 12329: struct quote_impl 12329: { 12329: typedef typename T::type type; 12329: }; 12329: 12329: template< typename T > 12329: struct quote_impl< T,false > 12329: { 12329: typedef T type; 12329: }; 12329: 12329: template< 12329: template< typename P1 > class F 12329: , typename Tag = void_ 12329: > 12329: struct quote1 12329: { 12329: template< typename U1 > struct apply 12329: 12329: : quote_impl< 12329: F 12329: , aux::has_type< F >::value 12329: > 12329: 12329: { 12329: }; 12329: }; 12329: 12329: template< 12329: template< typename P1, typename P2 > class F 12329: , typename Tag = void_ 12329: > 12329: struct quote2 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: 12329: : quote_impl< 12329: F< U1,U2 > 12329: , aux::has_type< F< U1,U2 > >::value 12329: > 12329: 12329: { 12329: }; 12329: }; 12329: 12329: template< 12329: template< typename P1, typename P2, typename P3 > class F 12329: , typename Tag = void_ 12329: > 12329: struct quote3 12329: { 12329: template< typename U1, typename U2, typename U3 > struct apply 12329: 12329: : quote_impl< 12329: F< U1,U2,U3 > 12329: , aux::has_type< F< U1,U2,U3 > >::value 12329: > 12329: 12329: { 12329: }; 12329: }; 12329: 12329: template< 12329: template< typename P1, typename P2, typename P3, typename P4 > class F 12329: , typename Tag = void_ 12329: > 12329: struct quote4 12329: { 12329: template< 12329: typename U1, typename U2, typename U3, typename U4 12329: > 12329: struct apply 12329: 12329: : quote_impl< 12329: F< U1,U2,U3,U4 > 12329: , aux::has_type< F< U1,U2,U3,U4 > >::value 12329: > 12329: 12329: { 12329: }; 12329: }; 12329: 12329: template< 12329: template< 12329: typename P1, typename P2, typename P3, typename P4 12329: , typename P5 12329: > 12329: class F 12329: , typename Tag = void_ 12329: > 12329: struct quote5 12329: { 12329: template< 12329: typename U1, typename U2, typename U3, typename U4 12329: , typename U5 12329: > 12329: struct apply 12329: 12329: : quote_impl< 12329: F< U1,U2,U3,U4,U5 > 12329: , aux::has_type< F< U1,U2,U3,U4,U5 > >::value 12329: > 12329: 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 46 "/usr/include/boost/mpl/quote.hpp" 2 3 4 12329: # 26 "/usr/include/boost/mpl/aux_/full_lambda.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/arg.hpp" 1 3 4 12329: # 27 "/usr/include/boost/mpl/aux_/full_lambda.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/template_arity.hpp" 1 3 4 12329: # 43 "/usr/include/boost/mpl/aux_/template_arity.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: template< int N > struct arity_tag 12329: { 12329: typedef char (&type)[N + 1]; 12329: }; 12329: 12329: template< 12329: int C1, int C2, int C3, int C4, int C5, int C6 12329: > 12329: struct max_arity 12329: { 12329: static const int value = ( C6 > 0 ? C6 : ( C5 > 0 ? C5 : ( C4 > 0 ? C4 : ( C3 > 0 ? C3 : ( C2 > 0 ? C2 : ( C1 > 0 ? C1 : -1 ) ) ) ) ) ) 12329: 12329: ; 12329: }; 12329: 12329: arity_tag<0>::type arity_helper(...); 12329: 12329: template< 12329: template< typename P1 > class F 12329: , typename T1 12329: > 12329: typename arity_tag<1>::type 12329: arity_helper(type_wrapper< F >, arity_tag<1>); 12329: 12329: template< 12329: template< typename P1, typename P2 > class F 12329: , typename T1, typename T2 12329: > 12329: typename arity_tag<2>::type 12329: arity_helper(type_wrapper< F< T1,T2 > >, arity_tag<2>); 12329: 12329: template< 12329: template< typename P1, typename P2, typename P3 > class F 12329: , typename T1, typename T2, typename T3 12329: > 12329: typename arity_tag<3>::type 12329: arity_helper(type_wrapper< F< T1,T2,T3 > >, arity_tag<3>); 12329: 12329: template< 12329: template< typename P1, typename P2, typename P3, typename P4 > class F 12329: , typename T1, typename T2, typename T3, typename T4 12329: > 12329: typename arity_tag<4>::type 12329: arity_helper(type_wrapper< F< T1,T2,T3,T4 > >, arity_tag<4>); 12329: 12329: template< 12329: template< 12329: typename P1, typename P2, typename P3, typename P4 12329: , typename P5 12329: > 12329: class F 12329: , typename T1, typename T2, typename T3, typename T4, typename T5 12329: > 12329: typename arity_tag<5>::type 12329: arity_helper(type_wrapper< F< T1,T2,T3,T4,T5 > >, arity_tag<5>); 12329: 12329: template< 12329: template< 12329: typename P1, typename P2, typename P3, typename P4 12329: , typename P5, typename P6 12329: > 12329: class F 12329: , typename T1, typename T2, typename T3, typename T4, typename T5 12329: , typename T6 12329: > 12329: typename arity_tag<6>::type 12329: arity_helper(type_wrapper< F< T1,T2,T3,T4,T5,T6 > >, arity_tag<6>); 12329: template< typename F, int N > 12329: struct template_arity_impl 12329: { 12329: static const int value = sizeof(::boost::mpl::aux::arity_helper(type_wrapper(), arity_tag())) - 1 12329: 12329: ; 12329: }; 12329: 12329: template< typename F > 12329: struct template_arity 12329: { 12329: static const int value = ( max_arity< template_arity_impl< F,1 >::value, template_arity_impl< F,2 >::value, template_arity_impl< F,3 >::value, template_arity_impl< F,4 >::value, template_arity_impl< F,5 >::value, template_arity_impl< F,6 >::value >::value ) 12329: 12329: ; 12329: typedef mpl::int_ type; 12329: }; 12329: 12329: }}} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 44 "/usr/include/boost/mpl/aux_/template_arity.hpp" 2 3 4 12329: # 30 "/usr/include/boost/mpl/aux_/full_lambda.hpp" 2 3 4 12329: # 44 "/usr/include/boost/mpl/aux_/full_lambda.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: namespace aux { 12329: 12329: template< 12329: bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false 12329: , bool C5 = false 12329: > 12329: struct lambda_or 12329: : true_ 12329: { 12329: }; 12329: 12329: template<> 12329: struct lambda_or< false,false,false,false,false > 12329: : false_ 12329: { 12329: }; 12329: 12329: } 12329: 12329: template< 12329: typename T 12329: , typename Tag 12329: , typename Arity 12329: > 12329: struct lambda 12329: { 12329: typedef false_ is_le; 12329: typedef T result_; 12329: typedef T type; 12329: }; 12329: 12329: template< 12329: typename T 12329: > 12329: struct is_lambda_expression 12329: : lambda::is_le 12329: { 12329: }; 12329: 12329: template< int N, typename Tag > 12329: struct lambda< arg,Tag, int_< -1 > > 12329: { 12329: typedef true_ is_le; 12329: typedef mpl::arg result_; 12329: typedef mpl::protect type; 12329: }; 12329: 12329: template< 12329: typename F 12329: , typename Tag 12329: > 12329: struct lambda< 12329: bind0 12329: , Tag 12329: , int_<1> 12329: > 12329: { 12329: typedef false_ is_le; 12329: typedef bind0< 12329: F 12329: > result_; 12329: 12329: typedef result_ type; 12329: }; 12329: 12329: namespace aux { 12329: 12329: template< 12329: typename IsLE, typename Tag 12329: , template< typename P1 > class F 12329: , typename L1 12329: > 12329: struct le_result1 12329: { 12329: typedef F< 12329: typename L1::type 12329: > result_; 12329: 12329: typedef result_ type; 12329: }; 12329: 12329: template< 12329: typename Tag 12329: , template< typename P1 > class F 12329: , typename L1 12329: > 12329: struct le_result1< true_,Tag,F,L1 > 12329: { 12329: typedef bind1< 12329: quote1< F,Tag > 12329: , typename L1::result_ 12329: > result_; 12329: 12329: typedef mpl::protect type; 12329: }; 12329: 12329: } 12329: 12329: template< 12329: template< typename P1 > class F 12329: , typename T1 12329: , typename Tag 12329: > 12329: struct lambda< 12329: F 12329: , Tag 12329: , int_<1> 12329: > 12329: { 12329: typedef lambda< T1,Tag > l1; 12329: typedef typename l1::is_le is_le1; 12329: typedef typename aux::lambda_or< 12329: is_le1::value 12329: >::type is_le; 12329: 12329: typedef aux::le_result1< 12329: is_le, Tag, F, l1 12329: > le_result_; 12329: 12329: typedef typename le_result_::result_ result_; 12329: typedef typename le_result_::type type; 12329: }; 12329: 12329: template< 12329: typename F, typename T1 12329: , typename Tag 12329: > 12329: struct lambda< 12329: bind1< F,T1 > 12329: , Tag 12329: , int_<2> 12329: > 12329: { 12329: typedef false_ is_le; 12329: typedef bind1< 12329: F 12329: , T1 12329: > result_; 12329: 12329: typedef result_ type; 12329: }; 12329: 12329: namespace aux { 12329: 12329: template< 12329: typename IsLE, typename Tag 12329: , template< typename P1, typename P2 > class F 12329: , typename L1, typename L2 12329: > 12329: struct le_result2 12329: { 12329: typedef F< 12329: typename L1::type, typename L2::type 12329: > result_; 12329: 12329: typedef result_ type; 12329: }; 12329: 12329: template< 12329: typename Tag 12329: , template< typename P1, typename P2 > class F 12329: , typename L1, typename L2 12329: > 12329: struct le_result2< true_,Tag,F,L1,L2 > 12329: { 12329: typedef bind2< 12329: quote2< F,Tag > 12329: , typename L1::result_, typename L2::result_ 12329: > result_; 12329: 12329: typedef mpl::protect type; 12329: }; 12329: 12329: } 12329: 12329: template< 12329: template< typename P1, typename P2 > class F 12329: , typename T1, typename T2 12329: , typename Tag 12329: > 12329: struct lambda< 12329: F< T1,T2 > 12329: , Tag 12329: , int_<2> 12329: > 12329: { 12329: typedef lambda< T1,Tag > l1; 12329: typedef lambda< T2,Tag > l2; 12329: 12329: typedef typename l1::is_le is_le1; 12329: typedef typename l2::is_le is_le2; 12329: 12329: 12329: typedef typename aux::lambda_or< 12329: is_le1::value, is_le2::value 12329: >::type is_le; 12329: 12329: typedef aux::le_result2< 12329: is_le, Tag, F, l1, l2 12329: > le_result_; 12329: 12329: typedef typename le_result_::result_ result_; 12329: typedef typename le_result_::type type; 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2 12329: , typename Tag 12329: > 12329: struct lambda< 12329: bind2< F,T1,T2 > 12329: , Tag 12329: , int_<3> 12329: > 12329: { 12329: typedef false_ is_le; 12329: typedef bind2< 12329: F 12329: , T1, T2 12329: > result_; 12329: 12329: typedef result_ type; 12329: }; 12329: 12329: namespace aux { 12329: 12329: template< 12329: typename IsLE, typename Tag 12329: , template< typename P1, typename P2, typename P3 > class F 12329: , typename L1, typename L2, typename L3 12329: > 12329: struct le_result3 12329: { 12329: typedef F< 12329: typename L1::type, typename L2::type, typename L3::type 12329: > result_; 12329: 12329: typedef result_ type; 12329: }; 12329: 12329: template< 12329: typename Tag 12329: , template< typename P1, typename P2, typename P3 > class F 12329: , typename L1, typename L2, typename L3 12329: > 12329: struct le_result3< true_,Tag,F,L1,L2,L3 > 12329: { 12329: typedef bind3< 12329: quote3< F,Tag > 12329: , typename L1::result_, typename L2::result_, typename L3::result_ 12329: > result_; 12329: 12329: typedef mpl::protect type; 12329: }; 12329: 12329: } 12329: 12329: template< 12329: template< typename P1, typename P2, typename P3 > class F 12329: , typename T1, typename T2, typename T3 12329: , typename Tag 12329: > 12329: struct lambda< 12329: F< T1,T2,T3 > 12329: , Tag 12329: , int_<3> 12329: > 12329: { 12329: typedef lambda< T1,Tag > l1; 12329: typedef lambda< T2,Tag > l2; 12329: typedef lambda< T3,Tag > l3; 12329: 12329: typedef typename l1::is_le is_le1; 12329: typedef typename l2::is_le is_le2; 12329: typedef typename l3::is_le is_le3; 12329: 12329: 12329: typedef typename aux::lambda_or< 12329: is_le1::value, is_le2::value, is_le3::value 12329: >::type is_le; 12329: 12329: typedef aux::le_result3< 12329: is_le, Tag, F, l1, l2, l3 12329: > le_result_; 12329: 12329: typedef typename le_result_::result_ result_; 12329: typedef typename le_result_::type type; 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3 12329: , typename Tag 12329: > 12329: struct lambda< 12329: bind3< F,T1,T2,T3 > 12329: , Tag 12329: , int_<4> 12329: > 12329: { 12329: typedef false_ is_le; 12329: typedef bind3< 12329: F 12329: , T1, T2, T3 12329: > result_; 12329: 12329: typedef result_ type; 12329: }; 12329: 12329: namespace aux { 12329: 12329: template< 12329: typename IsLE, typename Tag 12329: , template< typename P1, typename P2, typename P3, typename P4 > class F 12329: , typename L1, typename L2, typename L3, typename L4 12329: > 12329: struct le_result4 12329: { 12329: typedef F< 12329: typename L1::type, typename L2::type, typename L3::type 12329: , typename L4::type 12329: > result_; 12329: 12329: typedef result_ type; 12329: }; 12329: 12329: template< 12329: typename Tag 12329: , template< typename P1, typename P2, typename P3, typename P4 > class F 12329: , typename L1, typename L2, typename L3, typename L4 12329: > 12329: struct le_result4< true_,Tag,F,L1,L2,L3,L4 > 12329: { 12329: typedef bind4< 12329: quote4< F,Tag > 12329: , typename L1::result_, typename L2::result_, typename L3::result_ 12329: , typename L4::result_ 12329: > result_; 12329: 12329: typedef mpl::protect type; 12329: }; 12329: 12329: } 12329: 12329: template< 12329: template< typename P1, typename P2, typename P3, typename P4 > class F 12329: , typename T1, typename T2, typename T3, typename T4 12329: , typename Tag 12329: > 12329: struct lambda< 12329: F< T1,T2,T3,T4 > 12329: , Tag 12329: , int_<4> 12329: > 12329: { 12329: typedef lambda< T1,Tag > l1; 12329: typedef lambda< T2,Tag > l2; 12329: typedef lambda< T3,Tag > l3; 12329: typedef lambda< T4,Tag > l4; 12329: 12329: typedef typename l1::is_le is_le1; 12329: typedef typename l2::is_le is_le2; 12329: typedef typename l3::is_le is_le3; 12329: typedef typename l4::is_le is_le4; 12329: 12329: 12329: typedef typename aux::lambda_or< 12329: is_le1::value, is_le2::value, is_le3::value, is_le4::value 12329: >::type is_le; 12329: 12329: typedef aux::le_result4< 12329: is_le, Tag, F, l1, l2, l3, l4 12329: > le_result_; 12329: 12329: typedef typename le_result_::result_ result_; 12329: typedef typename le_result_::type type; 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename Tag 12329: > 12329: struct lambda< 12329: bind4< F,T1,T2,T3,T4 > 12329: , Tag 12329: , int_<5> 12329: > 12329: { 12329: typedef false_ is_le; 12329: typedef bind4< 12329: F 12329: , T1, T2, T3, T4 12329: > result_; 12329: 12329: typedef result_ type; 12329: }; 12329: 12329: namespace aux { 12329: 12329: template< 12329: typename IsLE, typename Tag 12329: , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F 12329: , typename L1, typename L2, typename L3, typename L4, typename L5 12329: > 12329: struct le_result5 12329: { 12329: typedef F< 12329: typename L1::type, typename L2::type, typename L3::type 12329: , typename L4::type, typename L5::type 12329: > result_; 12329: 12329: typedef result_ type; 12329: }; 12329: 12329: template< 12329: typename Tag 12329: , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F 12329: , typename L1, typename L2, typename L3, typename L4, typename L5 12329: > 12329: struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > 12329: { 12329: typedef bind5< 12329: quote5< F,Tag > 12329: , typename L1::result_, typename L2::result_, typename L3::result_ 12329: , typename L4::result_, typename L5::result_ 12329: > result_; 12329: 12329: typedef mpl::protect type; 12329: }; 12329: 12329: } 12329: 12329: template< 12329: template< 12329: typename P1, typename P2, typename P3, typename P4 12329: , typename P5 12329: > 12329: class F 12329: , typename T1, typename T2, typename T3, typename T4, typename T5 12329: , typename Tag 12329: > 12329: struct lambda< 12329: F< T1,T2,T3,T4,T5 > 12329: , Tag 12329: , int_<5> 12329: > 12329: { 12329: typedef lambda< T1,Tag > l1; 12329: typedef lambda< T2,Tag > l2; 12329: typedef lambda< T3,Tag > l3; 12329: typedef lambda< T4,Tag > l4; 12329: typedef lambda< T5,Tag > l5; 12329: 12329: typedef typename l1::is_le is_le1; 12329: typedef typename l2::is_le is_le2; 12329: typedef typename l3::is_le is_le3; 12329: typedef typename l4::is_le is_le4; 12329: typedef typename l5::is_le is_le5; 12329: 12329: 12329: typedef typename aux::lambda_or< 12329: is_le1::value, is_le2::value, is_le3::value, is_le4::value 12329: , is_le5::value 12329: >::type is_le; 12329: 12329: typedef aux::le_result5< 12329: is_le, Tag, F, l1, l2, l3, l4, l5 12329: > le_result_; 12329: 12329: typedef typename le_result_::result_ result_; 12329: typedef typename le_result_::type type; 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: , typename Tag 12329: > 12329: struct lambda< 12329: bind5< F,T1,T2,T3,T4,T5 > 12329: , Tag 12329: , int_<6> 12329: > 12329: { 12329: typedef false_ is_le; 12329: typedef bind5< 12329: F 12329: , T1, T2, T3, T4, T5 12329: > result_; 12329: 12329: typedef result_ type; 12329: }; 12329: 12329: 12329: template< typename T, typename Tag > 12329: struct lambda< mpl::protect,Tag, int_<1> > 12329: { 12329: typedef false_ is_le; 12329: typedef mpl::protect result_; 12329: typedef result_ type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: , typename Tag 12329: > 12329: struct lambda< 12329: bind< F,T1,T2,T3,T4,T5 > 12329: , Tag 12329: , int_<6> 12329: > 12329: { 12329: typedef false_ is_le; 12329: typedef bind< F,T1,T2,T3,T4,T5 > result_; 12329: typedef result_ type; 12329: }; 12329: 12329: template< 12329: typename F 12329: , typename Tag1 12329: , typename Tag2 12329: , typename Arity 12329: > 12329: struct lambda< 12329: lambda< F,Tag1,Arity > 12329: , Tag2 12329: , int_<3> 12329: > 12329: { 12329: typedef lambda< F,Tag2 > l1; 12329: typedef lambda< Tag1,Tag2 > l2; 12329: typedef typename l1::is_le is_le; 12329: typedef bind1< quote1, typename l1::result_ > arity_; 12329: typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3; 12329: typedef aux::le_result3 le_result_; 12329: typedef typename le_result_::result_ result_; 12329: typedef typename le_result_::type type; 12329: }; 12329: 12329: template<> struct lambda< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : lambda< T1 , T2 > { }; }; template< typename Tag > struct lambda< lambda< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef lambda< na , na > result_; typedef lambda< na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< lambda< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< lambda< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 45 "/usr/include/boost/mpl/aux_/full_lambda.hpp" 2 3 4 12329: # 23 "/usr/include/boost/mpl/lambda.hpp" 2 3 4 12329: # 26 "/usr/include/boost/mpl/apply.hpp" 2 3 4 12329: # 36 "/usr/include/boost/mpl/apply.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/apply.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/apply.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename F 12329: > 12329: struct apply0 12329: 12329: : apply_wrap0< 12329: typename lambda::type 12329: 12329: > 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename F 12329: > 12329: struct apply< F,na,na,na,na,na > 12329: : apply0 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1 12329: > 12329: struct apply1 12329: 12329: : apply_wrap1< 12329: typename lambda::type 12329: , T1 12329: > 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename F, typename T1 12329: > 12329: struct apply< F,T1,na,na,na,na > 12329: : apply1< F,T1 > 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2 12329: > 12329: struct apply2 12329: 12329: : apply_wrap2< 12329: typename lambda::type 12329: , T1, T2 12329: > 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2 12329: > 12329: struct apply< F,T1,T2,na,na,na > 12329: : apply2< F,T1,T2 > 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3 12329: > 12329: struct apply3 12329: 12329: : apply_wrap3< 12329: typename lambda::type 12329: , T1, T2, T3 12329: > 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3 12329: > 12329: struct apply< F,T1,T2,T3,na,na > 12329: : apply3< F,T1,T2,T3 > 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: > 12329: struct apply4 12329: 12329: : apply_wrap4< 12329: typename lambda::type 12329: , T1, T2, T3, T4 12329: > 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: > 12329: struct apply< F,T1,T2,T3,T4,na > 12329: : apply4< F,T1,T2,T3,T4 > 12329: { 12329: }; 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: > 12329: struct apply5 12329: 12329: : apply_wrap5< 12329: typename lambda::type 12329: , T1, T2, T3, T4, T5 12329: > 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename F, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: > 12329: struct apply 12329: : apply5< F,T1,T2,T3,T4,T5 > 12329: { 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 37 "/usr/include/boost/mpl/apply.hpp" 2 3 4 12329: # 37 "/usr/include/boost/iterator/iterator_facade.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/iterator/detail/config_def.hpp" 1 3 4 12329: # 42 "/usr/include/boost/iterator/iterator_facade.hpp" 2 3 4 12329: 12329: namespace boost { 12329: namespace iterators { 12329: 12329: 12329: 12329: template class iterator_facade; 12329: 12329: namespace detail 12329: { 12329: 12329: 12329: 12329: struct always_bool2 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef bool type; 12329: }; 12329: }; 12329: 12329: 12329: template< typename CategoryOrTraversal, typename Required > 12329: struct is_traversal_at_least : 12329: public boost::is_convertible< typename iterator_category_to_traversal< CategoryOrTraversal >::type, Required > 12329: {}; 12329: 12329: 12329: 12329: 12329: template < 12329: class Facade1 12329: , class Facade2 12329: , class Return 12329: > 12329: struct enable_if_interoperable : 12329: public boost::iterators::enable_if< 12329: is_interoperable< Facade1, Facade2 > 12329: , Return 12329: > 12329: {}; 12329: 12329: 12329: 12329: 12329: template < 12329: class Facade1 12329: , class Facade2 12329: , class Return 12329: > 12329: struct enable_if_interoperable_and_random_access_traversal : 12329: public boost::iterators::enable_if< 12329: mpl::and_< 12329: is_interoperable< Facade1, Facade2 > 12329: , is_traversal_at_least< typename iterator_category< Facade1 >::type, random_access_traversal_tag > 12329: , is_traversal_at_least< typename iterator_category< Facade2 >::type, random_access_traversal_tag > 12329: > 12329: , Return 12329: > 12329: {}; 12329: 12329: 12329: 12329: 12329: 12329: template < 12329: class ValueParam 12329: , class CategoryOrTraversal 12329: , class Reference 12329: , class Difference 12329: > 12329: struct iterator_facade_types 12329: { 12329: typedef typename facade_iterator_category< 12329: CategoryOrTraversal, ValueParam, Reference 12329: >::type iterator_category; 12329: 12329: typedef typename remove_const::type value_type; 12329: 12329: 12329: typedef typename mpl::eval_if< 12329: boost::iterators::detail::iterator_writability_disabled 12329: , add_pointer 12329: , add_pointer 12329: >::type pointer; 12329: # 145 "/usr/include/boost/iterator/iterator_facade.hpp" 3 4 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class postfix_increment_proxy 12329: { 12329: typedef typename iterator_value::type value_type; 12329: public: 12329: explicit postfix_increment_proxy(Iterator const& x) 12329: : stored_value(*x) 12329: {} 12329: 12329: 12329: 12329: 12329: 12329: value_type& 12329: operator*() const 12329: { 12329: return this->stored_value; 12329: } 12329: private: 12329: mutable value_type stored_value; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class writable_postfix_increment_proxy 12329: { 12329: typedef typename iterator_value::type value_type; 12329: public: 12329: explicit writable_postfix_increment_proxy(Iterator const& x) 12329: : stored_value(*x) 12329: , stored_iterator(x) 12329: {} 12329: 12329: 12329: 12329: 12329: 12329: writable_postfix_increment_proxy const& 12329: operator*() const 12329: { 12329: return *this; 12329: } 12329: 12329: 12329: operator value_type&() const 12329: { 12329: return stored_value; 12329: } 12329: 12329: 12329: template 12329: T const& operator=(T const& x) const 12329: { 12329: *this->stored_iterator = x; 12329: return x; 12329: } 12329: 12329: 12329: template 12329: T& operator=(T& x) const 12329: { 12329: *this->stored_iterator = x; 12329: return x; 12329: } 12329: 12329: 12329: operator Iterator const&() const 12329: { 12329: return stored_iterator; 12329: } 12329: 12329: private: 12329: mutable value_type stored_value; 12329: Iterator stored_iterator; 12329: }; 12329: # 259 "/usr/include/boost/iterator/iterator_facade.hpp" 3 4 12329: template 12329: struct is_non_proxy_reference 12329: : is_convertible< 12329: typename remove_reference::type 12329: const volatile* 12329: , Value const volatile* 12329: > 12329: {}; 12329: # 284 "/usr/include/boost/iterator/iterator_facade.hpp" 3 4 12329: template 12329: struct postfix_increment_result 12329: : mpl::eval_if< 12329: mpl::and_< 12329: 12329: is_convertible< 12329: Reference 12329: 12329: 12329: 12329: 12329: 12329: , typename add_lvalue_reference::type 12329: > 12329: 12329: 12329: 12329: , mpl::not_< 12329: is_convertible< 12329: typename iterator_category_to_traversal::type 12329: , forward_traversal_tag 12329: > 12329: > 12329: > 12329: , mpl::if_< 12329: is_non_proxy_reference 12329: , postfix_increment_proxy 12329: , writable_postfix_increment_proxy 12329: > 12329: , mpl::identity 12329: > 12329: {}; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct operator_arrow_dispatch 12329: { 12329: struct proxy 12329: { 12329: explicit proxy(Reference const & x) : m_ref(x) {} 12329: Reference* operator->() { return boost::addressof(m_ref); } 12329: 12329: 12329: operator Reference*() { return boost::addressof(m_ref); } 12329: Reference m_ref; 12329: }; 12329: typedef proxy result_type; 12329: static result_type apply(Reference const & x) 12329: { 12329: return result_type(x); 12329: } 12329: }; 12329: 12329: template 12329: struct operator_arrow_dispatch 12329: { 12329: typedef Pointer result_type; 12329: static result_type apply(T& x) 12329: { 12329: return boost::addressof(x); 12329: } 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: class operator_brackets_proxy 12329: { 12329: 12329: 12329: typedef typename Iterator::reference reference; 12329: typedef typename Iterator::value_type value_type; 12329: 12329: public: 12329: operator_brackets_proxy(Iterator const& iter) 12329: : m_iter(iter) 12329: {} 12329: 12329: operator reference() const 12329: { 12329: return *m_iter; 12329: } 12329: 12329: operator_brackets_proxy& operator=(value_type const& val) 12329: { 12329: *m_iter = val; 12329: return *this; 12329: } 12329: 12329: private: 12329: Iterator m_iter; 12329: }; 12329: 12329: 12329: 12329: template 12329: struct use_operator_brackets_proxy 12329: : mpl::not_< 12329: mpl::and_< 12329: 12329: 12329: boost::is_POD 12329: , iterator_writability_disabled 12329: > 12329: > 12329: {}; 12329: 12329: template 12329: struct operator_brackets_result 12329: { 12329: typedef typename mpl::if_< 12329: use_operator_brackets_proxy 12329: , operator_brackets_proxy 12329: , Value 12329: >::type type; 12329: }; 12329: 12329: template 12329: operator_brackets_proxy make_operator_brackets_result(Iterator const& iter, mpl::true_) 12329: { 12329: return operator_brackets_proxy(iter); 12329: } 12329: 12329: template 12329: typename Iterator::value_type make_operator_brackets_result(Iterator const& iter, mpl::false_) 12329: { 12329: return *iter; 12329: } 12329: 12329: struct choose_difference_type 12329: { 12329: template 12329: struct apply 12329: : 12329: 12329: 12329: 12329: mpl::eval_if< 12329: is_convertible 12329: , iterator_difference 12329: , iterator_difference 12329: > 12329: 12329: {}; 12329: 12329: }; 12329: 12329: template < 12329: class Derived 12329: , class Value 12329: , class CategoryOrTraversal 12329: , class Reference 12329: , class Difference 12329: , bool IsBidirectionalTraversal 12329: , bool IsRandomAccessTraversal 12329: > 12329: class iterator_facade_base; 12329: 12329: } 12329: # 497 "/usr/include/boost/iterator/iterator_facade.hpp" 3 4 12329: class iterator_core_access 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template friend class iterator_facade; 12329: template 12329: friend class detail::iterator_facade_base; 12329: 12329: 12329: 12329: 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::iterators::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator ==( iterator_facade const& lhs , iterator_facade const& rhs); 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::iterators::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator !=( iterator_facade const& lhs , iterator_facade const& rhs); 12329: 12329: 12329: 12329: 12329: 12329: 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::iterators::detail::enable_if_interoperable_and_random_access_traversal< Derived1, Derived2 , typename mpl::apply2::type >::type operator <( iterator_facade const& lhs , iterator_facade const& rhs); 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::iterators::detail::enable_if_interoperable_and_random_access_traversal< Derived1, Derived2 , typename mpl::apply2::type >::type operator >( iterator_facade const& lhs , iterator_facade const& rhs); 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::iterators::detail::enable_if_interoperable_and_random_access_traversal< Derived1, Derived2 , typename mpl::apply2::type >::type operator <=( iterator_facade const& lhs , iterator_facade const& rhs); 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::iterators::detail::enable_if_interoperable_and_random_access_traversal< Derived1, Derived2 , typename mpl::apply2::type >::type operator >=( iterator_facade const& lhs , iterator_facade const& rhs); 12329: 12329: 12329: 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > friend typename boost::iterators::detail::enable_if_interoperable_and_random_access_traversal< Derived1, Derived2 , typename mpl::apply2::type >::type operator -( iterator_facade const& lhs , iterator_facade const& rhs) 12329: 12329: ; 12329: 12329: template friend inline typename boost::iterators::enable_if< boost::iterators::detail::is_traversal_at_least< TC, boost::iterators::random_access_traversal_tag >, Derived >::type operator+ (iterator_facade const& , typename Derived::difference_type) 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: template friend inline typename boost::iterators::enable_if< boost::iterators::detail::is_traversal_at_least< TC, boost::iterators::random_access_traversal_tag >, Derived >::type operator+ (typename Derived::difference_type , iterator_facade const&) 12329: 12329: 12329: 12329: 12329: ; 12329: 12329: 12329: 12329: template 12329: static typename Facade::reference dereference(Facade const& f) 12329: { 12329: return f.dereference(); 12329: } 12329: 12329: template 12329: static void increment(Facade& f) 12329: { 12329: f.increment(); 12329: } 12329: 12329: template 12329: static void decrement(Facade& f) 12329: { 12329: f.decrement(); 12329: } 12329: 12329: template 12329: static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::true_) 12329: { 12329: return f1.equal(f2); 12329: } 12329: 12329: template 12329: static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::false_) 12329: { 12329: return f2.equal(f1); 12329: } 12329: 12329: template 12329: static void advance(Facade& f, typename Facade::difference_type n) 12329: { 12329: f.advance(n); 12329: } 12329: 12329: template 12329: static typename Facade1::difference_type distance_from( 12329: Facade1 const& f1, Facade2 const& f2, mpl::true_) 12329: { 12329: return -f1.distance_to(f2); 12329: } 12329: 12329: template 12329: static typename Facade2::difference_type distance_from( 12329: Facade1 const& f1, Facade2 const& f2, mpl::false_) 12329: { 12329: return f2.distance_to(f1); 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: static I& derived(iterator_facade& facade) 12329: { 12329: return *static_cast(&facade); 12329: } 12329: 12329: template 12329: static I const& derived(iterator_facade const& facade) 12329: { 12329: return *static_cast(&facade); 12329: } 12329: 12329: 12329: iterator_core_access() = delete; 12329: }; 12329: 12329: namespace detail { 12329: 12329: 12329: template < 12329: class Derived 12329: , class Value 12329: , class CategoryOrTraversal 12329: , class Reference 12329: , class Difference 12329: > 12329: class iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, false, false > 12329: 12329: 12329: 12329: 12329: 12329: 12329: { 12329: private: 12329: typedef boost::iterators::detail::iterator_facade_types< 12329: Value, CategoryOrTraversal, Reference, Difference 12329: > associated_types; 12329: 12329: typedef boost::iterators::detail::operator_arrow_dispatch< 12329: Reference 12329: , typename associated_types::pointer 12329: > operator_arrow_dispatch_; 12329: 12329: public: 12329: typedef typename associated_types::value_type value_type; 12329: typedef Reference reference; 12329: typedef Difference difference_type; 12329: 12329: typedef typename operator_arrow_dispatch_::result_type pointer; 12329: 12329: typedef typename associated_types::iterator_category iterator_category; 12329: 12329: public: 12329: reference operator*() const 12329: { 12329: return iterator_core_access::dereference(this->derived()); 12329: } 12329: 12329: pointer operator->() const 12329: { 12329: return operator_arrow_dispatch_::apply(*this->derived()); 12329: } 12329: 12329: Derived& operator++() 12329: { 12329: iterator_core_access::increment(this->derived()); 12329: return this->derived(); 12329: } 12329: 12329: protected: 12329: 12329: 12329: 12329: Derived& derived() 12329: { 12329: return *static_cast(this); 12329: } 12329: 12329: Derived const& derived() const 12329: { 12329: return *static_cast(this); 12329: } 12329: }; 12329: 12329: 12329: template < 12329: class Derived 12329: , class Value 12329: , class CategoryOrTraversal 12329: , class Reference 12329: , class Difference 12329: > 12329: class iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, true, false > : 12329: public iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, false, false > 12329: { 12329: public: 12329: Derived& operator--() 12329: { 12329: iterator_core_access::decrement(this->derived()); 12329: return this->derived(); 12329: } 12329: 12329: Derived operator--(int) 12329: { 12329: Derived tmp(this->derived()); 12329: --*this; 12329: return tmp; 12329: } 12329: }; 12329: 12329: 12329: template < 12329: class Derived 12329: , class Value 12329: , class CategoryOrTraversal 12329: , class Reference 12329: , class Difference 12329: > 12329: class iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, true, true > : 12329: public iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, true, false > 12329: { 12329: private: 12329: typedef iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, true, false > base_type; 12329: 12329: public: 12329: typedef typename base_type::reference reference; 12329: typedef typename base_type::difference_type difference_type; 12329: 12329: public: 12329: typename boost::iterators::detail::operator_brackets_result::type 12329: operator[](difference_type n) const 12329: { 12329: typedef boost::iterators::detail::use_operator_brackets_proxy use_proxy; 12329: 12329: return boost::iterators::detail::make_operator_brackets_result( 12329: this->derived() + n 12329: , use_proxy() 12329: ); 12329: } 12329: 12329: Derived& operator+=(difference_type n) 12329: { 12329: iterator_core_access::advance(this->derived(), n); 12329: return this->derived(); 12329: } 12329: 12329: Derived& operator-=(difference_type n) 12329: { 12329: iterator_core_access::advance(this->derived(), -n); 12329: return this->derived(); 12329: } 12329: 12329: Derived operator-(difference_type x) const 12329: { 12329: Derived result(this->derived()); 12329: return result -= x; 12329: } 12329: }; 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template < 12329: class Derived 12329: , class Value 12329: , class CategoryOrTraversal 12329: , class Reference = Value& 12329: , class Difference = std::ptrdiff_t 12329: > 12329: class iterator_facade : 12329: public detail::iterator_facade_base< 12329: Derived, 12329: Value, 12329: CategoryOrTraversal, 12329: Reference, 12329: Difference, 12329: detail::is_traversal_at_least< CategoryOrTraversal, bidirectional_traversal_tag >::value, 12329: detail::is_traversal_at_least< CategoryOrTraversal, random_access_traversal_tag >::value 12329: > 12329: { 12329: protected: 12329: 12329: typedef iterator_facade iterator_facade_; 12329: }; 12329: 12329: template 12329: inline typename boost::iterators::detail::postfix_increment_result::type 12329: operator++( 12329: iterator_facade& i 12329: , int 12329: ) 12329: { 12329: typename boost::iterators::detail::postfix_increment_result::type 12329: tmp(*static_cast(&i)); 12329: 12329: ++i; 12329: 12329: return tmp; 12329: } 12329: # 900 "/usr/include/boost/iterator/iterator_facade.hpp" 3 4 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::iterators::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator ==( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value ), "( is_interoperable< Derived1, Derived2 >::value )"); return iterator_core_access::equal( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::iterators::detail::enable_if_interoperable< Derived1, Derived2 , typename mpl::apply2::type >::type operator !=( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value ), "( is_interoperable< Derived1, Derived2 >::value )"); return ! iterator_core_access::equal( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } 12329: # 930 "/usr/include/boost/iterator/iterator_facade.hpp" 3 4 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::iterators::detail::enable_if_interoperable_and_random_access_traversal< Derived1, Derived2 , typename mpl::apply2::type >::type operator <( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived1 >::type, random_access_traversal_tag >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived2 >::type, random_access_traversal_tag >::value ), "( is_interoperable< Derived1, Derived2 >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived1 >::type, random_access_traversal_tag >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived2 >::type, random_access_traversal_tag >::value )"); return 0 > iterator_core_access::distance_from( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::iterators::detail::enable_if_interoperable_and_random_access_traversal< Derived1, Derived2 , typename mpl::apply2::type >::type operator >( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived1 >::type, random_access_traversal_tag >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived2 >::type, random_access_traversal_tag >::value ), "( is_interoperable< Derived1, Derived2 >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived1 >::type, random_access_traversal_tag >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived2 >::type, random_access_traversal_tag >::value )"); return 0 < iterator_core_access::distance_from( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::iterators::detail::enable_if_interoperable_and_random_access_traversal< Derived1, Derived2 , typename mpl::apply2::type >::type operator <=( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived1 >::type, random_access_traversal_tag >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived2 >::type, random_access_traversal_tag >::value ), "( is_interoperable< Derived1, Derived2 >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived1 >::type, random_access_traversal_tag >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived2 >::type, random_access_traversal_tag >::value )"); return 0 >= iterator_core_access::distance_from( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::iterators::detail::enable_if_interoperable_and_random_access_traversal< Derived1, Derived2 , typename mpl::apply2::type >::type operator >=( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived1 >::type, random_access_traversal_tag >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived2 >::type, random_access_traversal_tag >::value ), "( is_interoperable< Derived1, Derived2 >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived1 >::type, random_access_traversal_tag >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived2 >::type, random_access_traversal_tag >::value )"); return 0 <= iterator_core_access::distance_from( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } 12329: 12329: 12329: 12329: 12329: template < class Derived1, class V1, class TC1, class Reference1, class Difference1 , class Derived2, class V2, class TC2, class Reference2, class Difference2 > inline typename boost::iterators::detail::enable_if_interoperable_and_random_access_traversal< Derived1, Derived2 , typename mpl::apply2::type >::type operator -( iterator_facade const& lhs , iterator_facade const& rhs) { static_assert(( is_interoperable< Derived1, Derived2 >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived1 >::type, random_access_traversal_tag >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived2 >::type, random_access_traversal_tag >::value ), "( is_interoperable< Derived1, Derived2 >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived1 >::type, random_access_traversal_tag >::value && boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived2 >::type, random_access_traversal_tag >::value )"); return iterator_core_access::distance_from( *static_cast(&lhs) , *static_cast(&rhs) , is_convertible() ); } 12329: # 955 "/usr/include/boost/iterator/iterator_facade.hpp" 3 4 12329: template inline typename boost::iterators::enable_if< boost::iterators::detail::is_traversal_at_least< TC, boost::iterators::random_access_traversal_tag >, Derived >::type operator+ ( iterator_facade const& i , typename Derived::difference_type n ) { Derived tmp(static_cast(i)); return tmp += n; } 12329: 12329: 12329: 12329: 12329: template inline typename boost::iterators::enable_if< boost::iterators::detail::is_traversal_at_least< TC, boost::iterators::random_access_traversal_tag >, Derived >::type operator+ ( typename Derived::difference_type n , iterator_facade const& i ) { Derived tmp(static_cast(i)); return tmp += n; } 12329: # 972 "/usr/include/boost/iterator/iterator_facade.hpp" 3 4 12329: } 12329: 12329: using iterators::iterator_core_access; 12329: using iterators::iterator_facade; 12329: 12329: } 12329: 12329: # 1 "/usr/include/boost/iterator/detail/config_undef.hpp" 1 3 4 12329: # 980 "/usr/include/boost/iterator/iterator_facade.hpp" 2 3 4 12329: # 28 "/usr/include/boost/range/iterator_range_core.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/is_base_and_derived.hpp" 1 3 4 12329: # 24 "/usr/include/boost/type_traits/is_base_and_derived.hpp" 3 4 12329: namespace boost { 12329: 12329: namespace detail { 12329: # 220 "/usr/include/boost/type_traits/is_base_and_derived.hpp" 3 4 12329: template 12329: struct is_base_and_derived_impl 12329: { 12329: typedef typename remove_cv::type ncvB; 12329: typedef typename remove_cv::type ncvD; 12329: 12329: static const bool value = ((__is_base_of(B,D) && !is_same::value) && ! ::boost::is_same::value); 12329: }; 12329: 12329: } 12329: 12329: template struct is_base_and_derived 12329: : public integral_constant::value)> {}; 12329: 12329: template struct is_base_and_derived : public false_type{}; 12329: template struct is_base_and_derived : public false_type{}; 12329: template struct is_base_and_derived : public false_type{}; 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 34 "/usr/include/boost/range/iterator_range_core.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/range/functions.hpp" 1 3 4 12329: # 18 "/usr/include/boost/range/functions.hpp" 3 4 12329: # 1 "/usr/include/boost/range/begin.hpp" 1 3 4 12329: # 18 "/usr/include/boost/range/begin.hpp" 3 4 12329: # 1 "/usr/include/boost/range/config.hpp" 1 3 4 12329: # 19 "/usr/include/boost/range/begin.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/range/iterator.hpp" 1 3 4 12329: # 19 "/usr/include/boost/range/iterator.hpp" 3 4 12329: # 1 "/usr/include/boost/range/range_fwd.hpp" 1 3 4 12329: # 13 "/usr/include/boost/range/range_fwd.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: 12329: template 12329: struct range_iterator; 12329: 12329: template 12329: struct range_mutable_iterator; 12329: 12329: template 12329: struct range_const_iterator; 12329: 12329: 12329: template 12329: class iterator_range; 12329: 12329: template 12329: class sub_range; 12329: 12329: 12329: template 12329: struct range_category; 12329: 12329: template 12329: struct range_difference; 12329: 12329: template 12329: struct range_pointer; 12329: 12329: template 12329: struct range_reference; 12329: 12329: template 12329: struct range_reverse_iterator; 12329: 12329: template 12329: struct range_size; 12329: 12329: template 12329: struct range_value; 12329: 12329: template 12329: struct has_range_iterator; 12329: 12329: template 12329: struct has_range_const_iterator; 12329: 12329: } 12329: # 20 "/usr/include/boost/range/iterator.hpp" 2 3 4 12329: # 1 "/usr/include/boost/range/mutable_iterator.hpp" 1 3 4 12329: # 21 "/usr/include/boost/range/mutable_iterator.hpp" 3 4 12329: # 1 "/usr/include/boost/range/detail/extract_optional_type.hpp" 1 3 4 12329: # 22 "/usr/include/boost/range/mutable_iterator.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/utility" 1 3 4 12329: # 58 "/usr/include/c++/12/utility" 3 4 12329: 12329: # 59 "/usr/include/c++/12/utility" 3 12329: # 68 "/usr/include/c++/12/utility" 3 12329: # 1 "/usr/include/c++/12/bits/stl_relops.h" 1 3 12329: # 62 "/usr/include/c++/12/bits/stl_relops.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: namespace rel_ops 12329: { 12329: # 86 "/usr/include/c++/12/bits/stl_relops.h" 3 12329: template 12329: inline bool 12329: operator!=(const _Tp& __x, const _Tp& __y) 12329: { return !(__x == __y); } 12329: # 99 "/usr/include/c++/12/bits/stl_relops.h" 3 12329: template 12329: inline bool 12329: operator>(const _Tp& __x, const _Tp& __y) 12329: { return __y < __x; } 12329: # 112 "/usr/include/c++/12/bits/stl_relops.h" 3 12329: template 12329: inline bool 12329: operator<=(const _Tp& __x, const _Tp& __y) 12329: { return !(__y < __x); } 12329: # 125 "/usr/include/c++/12/bits/stl_relops.h" 3 12329: template 12329: inline bool 12329: operator>=(const _Tp& __x, const _Tp& __y) 12329: { return !(__x < __y); } 12329: } 12329: 12329: 12329: } 12329: # 69 "/usr/include/c++/12/utility" 2 3 12329: # 82 "/usr/include/c++/12/utility" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: inline _Tp 12329: exchange(_Tp& __obj, _Up&& __new_val) 12329: noexcept(__and_, 12329: is_nothrow_assignable<_Tp&, _Up>>::value) 12329: { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } 12329: # 220 "/usr/include/c++/12/utility" 3 12329: 12329: } 12329: # 26 "/usr/include/boost/range/mutable_iterator.hpp" 2 3 4 12329: 12329: namespace boost 12329: { 12329: 12329: 12329: 12329: 12329: 12329: namespace range_detail 12329: { 12329: 12329: template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_iterator { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; template< typename C, bool B = has_iterator::value > struct extract_iterator {}; template< typename C > struct extract_iterator< C, true > { typedef typename C::iterator type; }; 12329: 12329: template< typename C > 12329: struct range_mutable_iterator 12329: : range_detail::extract_iterator< 12329: typename remove_reference::type> 12329: {}; 12329: 12329: 12329: 12329: 12329: 12329: template< typename Iterator > 12329: struct range_mutable_iterator< std::pair > 12329: { 12329: typedef Iterator type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template< typename T, std::size_t sz > 12329: struct range_mutable_iterator< T[sz] > 12329: { 12329: typedef T* type; 12329: }; 12329: 12329: } 12329: 12329: template 12329: struct range_mutable_iterator 12329: : range_detail::range_mutable_iterator< 12329: typename remove_reference::type 12329: > 12329: { 12329: }; 12329: 12329: } 12329: 12329: # 1 "/usr/include/boost/range/detail/msvc_has_iterator_workaround.hpp" 1 3 4 12329: # 78 "/usr/include/boost/range/mutable_iterator.hpp" 2 3 4 12329: # 21 "/usr/include/boost/range/iterator.hpp" 2 3 4 12329: # 1 "/usr/include/boost/range/const_iterator.hpp" 1 3 4 12329: # 27 "/usr/include/boost/range/const_iterator.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: 12329: 12329: 12329: namespace range_detail 12329: { 12329: 12329: template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_const_iterator { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; template< typename C, bool B = has_const_iterator::value > struct extract_const_iterator {}; template< typename C > struct extract_const_iterator< C, true > { typedef typename C::const_iterator type; }; 12329: 12329: template< typename C > 12329: struct range_const_iterator_helper 12329: : extract_const_iterator 12329: {}; 12329: 12329: 12329: 12329: 12329: 12329: template< typename Iterator > 12329: struct range_const_iterator_helper > 12329: { 12329: typedef Iterator type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template< typename T, std::size_t sz > 12329: struct range_const_iterator_helper< T[sz] > 12329: { 12329: typedef const T* type; 12329: }; 12329: 12329: } 12329: 12329: template 12329: struct range_const_iterator 12329: : range_detail::range_const_iterator_helper< 12329: typename remove_reference::type 12329: > 12329: { 12329: }; 12329: 12329: } 12329: # 22 "/usr/include/boost/range/iterator.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: # 60 "/usr/include/boost/range/iterator.hpp" 3 4 12329: template< typename C, typename Enabler=void > 12329: struct range_iterator 12329: : mpl::if_c< 12329: is_const::type>::value, 12329: range_const_iterator::type>::type>, 12329: range_mutable_iterator::type> 12329: >::type 12329: { 12329: }; 12329: 12329: 12329: 12329: } 12329: # 21 "/usr/include/boost/range/begin.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: 12329: namespace range_detail 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template< typename C > 12329: constexpr inline typename range_iterator::type 12329: range_begin( C& c ) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: return c.begin(); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template< typename Iterator > 12329: constexpr inline Iterator range_begin( const std::pair& p ) 12329: { 12329: return p.first; 12329: } 12329: 12329: template< typename Iterator > 12329: constexpr inline Iterator range_begin( std::pair& p ) 12329: { 12329: return p.first; 12329: } 12329: # 71 "/usr/include/boost/range/begin.hpp" 3 4 12329: template< typename T, std::size_t sz > 12329: constexpr inline const T* range_begin( const T (&a)[sz] ) noexcept 12329: { 12329: return a; 12329: } 12329: 12329: template< typename T, std::size_t sz > 12329: constexpr inline T* range_begin( T (&a)[sz] ) noexcept 12329: { 12329: return a; 12329: } 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: namespace range_adl_barrier 12329: { 12329: 12329: template< class T > 12329: 12329: constexpr 12329: 12329: inline typename range_iterator::type begin( T& r ) 12329: { 12329: 12329: using namespace range_detail; 12329: 12329: return range_begin( r ); 12329: } 12329: 12329: template< class T > 12329: 12329: constexpr 12329: 12329: inline typename range_iterator::type begin( const T& r ) 12329: { 12329: 12329: using namespace range_detail; 12329: 12329: return range_begin( r ); 12329: } 12329: 12329: } 12329: } 12329: 12329: namespace boost 12329: { 12329: namespace range_adl_barrier 12329: { 12329: template< class T > 12329: inline typename range_iterator::type 12329: const_begin( const T& r ) 12329: { 12329: return boost::range_adl_barrier::begin( r ); 12329: } 12329: } 12329: 12329: using namespace range_adl_barrier; 12329: } 12329: # 19 "/usr/include/boost/range/functions.hpp" 2 3 4 12329: # 1 "/usr/include/boost/range/end.hpp" 1 3 4 12329: # 20 "/usr/include/boost/range/end.hpp" 3 4 12329: # 1 "/usr/include/boost/range/detail/implementation_help.hpp" 1 3 4 12329: # 15 "/usr/include/boost/range/detail/implementation_help.hpp" 3 4 12329: # 1 "/usr/include/boost/range/detail/common.hpp" 1 3 4 12329: # 19 "/usr/include/boost/range/detail/common.hpp" 3 4 12329: # 1 "/usr/include/boost/range/detail/sfinae.hpp" 1 3 4 12329: # 20 "/usr/include/boost/range/detail/sfinae.hpp" 3 4 12329: namespace boost 12329: { 12329: namespace range_detail 12329: { 12329: using type_traits::yes_type; 12329: using type_traits::no_type; 12329: 12329: 12329: 12329: 12329: 12329: yes_type is_string_impl( const char* const ); 12329: yes_type is_string_impl( const wchar_t* const ); 12329: no_type is_string_impl( ... ); 12329: 12329: template< std::size_t sz > 12329: yes_type is_char_array_impl( char (&boost_range_array)[sz] ); 12329: template< std::size_t sz > 12329: yes_type is_char_array_impl( const char (&boost_range_array)[sz] ); 12329: no_type is_char_array_impl( ... ); 12329: 12329: template< std::size_t sz > 12329: yes_type is_wchar_t_array_impl( wchar_t (&boost_range_array)[sz] ); 12329: template< std::size_t sz > 12329: yes_type is_wchar_t_array_impl( const wchar_t (&boost_range_array)[sz] ); 12329: no_type is_wchar_t_array_impl( ... ); 12329: 12329: yes_type is_char_ptr_impl( char* const ); 12329: no_type is_char_ptr_impl( ... ); 12329: 12329: yes_type is_const_char_ptr_impl( const char* const ); 12329: no_type is_const_char_ptr_impl( ... ); 12329: 12329: yes_type is_wchar_t_ptr_impl( wchar_t* const ); 12329: no_type is_wchar_t_ptr_impl( ... ); 12329: 12329: yes_type is_const_wchar_t_ptr_impl( const wchar_t* const ); 12329: no_type is_const_wchar_t_ptr_impl( ... ); 12329: 12329: 12329: 12329: 12329: 12329: template< typename Iterator > 12329: yes_type is_pair_impl( const std::pair* ); 12329: no_type is_pair_impl( ... ); 12329: 12329: 12329: 12329: 12329: 12329: struct char_or_wchar_t_array_tag {}; 12329: 12329: } 12329: 12329: } 12329: # 20 "/usr/include/boost/range/detail/common.hpp" 2 3 4 12329: # 29 "/usr/include/boost/range/detail/common.hpp" 3 4 12329: namespace boost 12329: { 12329: namespace range_detail 12329: { 12329: # 46 "/usr/include/boost/range/detail/common.hpp" 3 4 12329: typedef mpl::int_<1>::type std_container_; 12329: typedef mpl::int_<2>::type std_pair_; 12329: typedef mpl::int_<3>::type const_std_pair_; 12329: typedef mpl::int_<4>::type array_; 12329: typedef mpl::int_<5>::type const_array_; 12329: typedef mpl::int_<6>::type char_array_; 12329: typedef mpl::int_<7>::type wchar_t_array_; 12329: typedef mpl::int_<8>::type char_ptr_; 12329: typedef mpl::int_<9>::type const_char_ptr_; 12329: typedef mpl::int_<10>::type wchar_t_ptr_; 12329: typedef mpl::int_<11>::type const_wchar_t_ptr_; 12329: typedef mpl::int_<12>::type string_; 12329: 12329: template< typename C > 12329: struct range_helper 12329: { 12329: static C* c; 12329: static C ptr; 12329: 12329: static const bool is_pair_ = sizeof( boost::range_detail::is_pair_impl( c ) ) == sizeof( yes_type ); 12329: static const bool is_char_ptr_ = sizeof( boost::range_detail::is_char_ptr_impl( ptr ) ) == sizeof( yes_type ); 12329: static const bool is_const_char_ptr_ = sizeof( boost::range_detail::is_const_char_ptr_impl( ptr ) ) == sizeof( yes_type ); 12329: static const bool is_wchar_t_ptr_ = sizeof( boost::range_detail::is_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ); 12329: static const bool is_const_wchar_t_ptr_ = sizeof( boost::range_detail::is_const_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ); 12329: static const bool is_char_array_ = sizeof( boost::range_detail::is_char_array_impl( ptr ) ) == sizeof( yes_type ); 12329: static const bool is_wchar_t_array_ = sizeof( boost::range_detail::is_wchar_t_array_impl( ptr ) ) == sizeof( yes_type ); 12329: static const bool is_string_ = (is_const_char_ptr_ || is_const_wchar_t_ptr_); 12329: static const bool is_array_ = boost::is_array::value; 12329: 12329: }; 12329: 12329: template< typename C > 12329: class range 12329: { 12329: typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_pair_, 12329: boost::range_detail::std_pair_, 12329: void >::type pair_t; 12329: typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_array_, 12329: boost::range_detail::array_, 12329: pair_t >::type array_t; 12329: typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_string_, 12329: boost::range_detail::string_, 12329: array_t >::type string_t; 12329: typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_const_char_ptr_, 12329: boost::range_detail::const_char_ptr_, 12329: string_t >::type const_char_ptr_t; 12329: typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_char_ptr_, 12329: boost::range_detail::char_ptr_, 12329: const_char_ptr_t >::type char_ptr_t; 12329: typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_const_wchar_t_ptr_, 12329: boost::range_detail::const_wchar_t_ptr_, 12329: char_ptr_t >::type const_wchar_ptr_t; 12329: typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_wchar_t_ptr_, 12329: boost::range_detail::wchar_t_ptr_, 12329: const_wchar_ptr_t >::type wchar_ptr_t; 12329: typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_wchar_t_array_, 12329: boost::range_detail::wchar_t_array_, 12329: wchar_ptr_t >::type wchar_array_t; 12329: typedef typename boost::mpl::if_c< ::boost::range_detail::range_helper::is_char_array_, 12329: boost::range_detail::char_array_, 12329: wchar_array_t >::type char_array_t; 12329: public: 12329: typedef typename boost::mpl::if_c< ::boost::is_void::value, 12329: boost::range_detail::std_container_, 12329: char_array_t >::type type; 12329: }; 12329: } 12329: } 12329: # 16 "/usr/include/boost/range/detail/implementation_help.hpp" 2 3 4 12329: # 24 "/usr/include/boost/range/detail/implementation_help.hpp" 3 4 12329: namespace boost 12329: { 12329: namespace range_detail 12329: { 12329: template 12329: inline void boost_range_silence_warning( const T& ) { } 12329: 12329: 12329: 12329: 12329: 12329: inline const char* str_end( const char* s, const char* ) 12329: { 12329: return s + strlen( s ); 12329: } 12329: 12329: 12329: inline const wchar_t* str_end( const wchar_t* s, const wchar_t* ) 12329: { 12329: return s + wcslen( s ); 12329: } 12329: # 56 "/usr/include/boost/range/detail/implementation_help.hpp" 3 4 12329: template< class Char > 12329: inline Char* str_end( Char* s ) 12329: { 12329: return const_cast( str_end( s, s ) ); 12329: } 12329: 12329: template< class T, std::size_t sz > 12329: constexpr inline T* array_end( T (&boost_range_array)[sz] ) noexcept 12329: { 12329: return boost_range_array + sz; 12329: } 12329: 12329: template< class T, std::size_t sz > 12329: constexpr inline const T* array_end( const T (&boost_range_array)[sz] ) noexcept 12329: { 12329: return boost_range_array + sz; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template< class Char > 12329: inline std::size_t str_size( const Char* const& s ) 12329: { 12329: return str_end( s ) - s; 12329: } 12329: 12329: template< class T, std::size_t sz > 12329: inline std::size_t array_size( T (&boost_range_array)[sz] ) 12329: { 12329: boost_range_silence_warning( boost_range_array ); 12329: return sz; 12329: } 12329: 12329: template< class T, std::size_t sz > 12329: inline std::size_t array_size( const T (&boost_range_array)[sz] ) 12329: { 12329: boost_range_silence_warning( boost_range_array ); 12329: return sz; 12329: } 12329: 12329: inline bool is_same_address(const void* l, const void* r) 12329: { 12329: return l == r; 12329: } 12329: 12329: template 12329: inline bool is_same_object(const T1& l, const T2& r) 12329: { 12329: return range_detail::is_same_address(&l, &r); 12329: } 12329: 12329: } 12329: 12329: } 12329: # 21 "/usr/include/boost/range/end.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: 12329: namespace range_detail 12329: { 12329: 12329: 12329: 12329: 12329: 12329: template< typename C > 12329: constexpr inline typename range_iterator::type 12329: range_end( C& c ) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: return c.end(); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template< typename Iterator > 12329: constexpr inline Iterator range_end( const std::pair& p ) 12329: { 12329: return p.second; 12329: } 12329: 12329: template< typename Iterator > 12329: constexpr inline Iterator range_end( std::pair& p ) 12329: { 12329: return p.second; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template< typename T, std::size_t sz > 12329: constexpr inline const T* range_end( const T (&a)[sz] ) noexcept 12329: { 12329: return range_detail::array_end( a ); 12329: } 12329: 12329: template< typename T, std::size_t sz > 12329: constexpr inline T* range_end( T (&a)[sz] ) noexcept 12329: { 12329: return range_detail::array_end( a ); 12329: } 12329: 12329: 12329: } 12329: 12329: 12329: namespace range_adl_barrier 12329: { 12329: 12329: template< class T > 12329: 12329: constexpr 12329: 12329: inline typename range_iterator::type end( T& r ) 12329: { 12329: 12329: using namespace range_detail; 12329: 12329: return range_end( r ); 12329: } 12329: 12329: template< class T > 12329: 12329: constexpr 12329: 12329: inline typename range_iterator::type end( const T& r ) 12329: { 12329: 12329: using namespace range_detail; 12329: 12329: return range_end( r ); 12329: } 12329: 12329: } 12329: } 12329: 12329: namespace boost 12329: { 12329: namespace range_adl_barrier 12329: { 12329: template< class T > 12329: constexpr inline typename range_iterator::type 12329: const_end( const T& r ) 12329: { 12329: return boost::range_adl_barrier::end( r ); 12329: } 12329: } 12329: using namespace range_adl_barrier; 12329: } 12329: # 20 "/usr/include/boost/range/functions.hpp" 2 3 4 12329: # 1 "/usr/include/boost/range/size.hpp" 1 3 4 12329: # 21 "/usr/include/boost/range/size.hpp" 3 4 12329: # 1 "/usr/include/boost/range/size_type.hpp" 1 3 4 12329: # 19 "/usr/include/boost/range/size_type.hpp" 3 4 12329: # 1 "/usr/include/boost/range/difference_type.hpp" 1 3 4 12329: # 21 "/usr/include/boost/range/difference_type.hpp" 3 4 12329: # 1 "/usr/include/boost/range/has_range_iterator.hpp" 1 3 4 12329: # 23 "/usr/include/boost/range/has_range_iterator.hpp" 3 4 12329: namespace boost 12329: { 12329: namespace range_detail 12329: { 12329: template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_type { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; 12329: 12329: template 12329: struct has_range_iterator_impl 12329: : boost::mpl::false_ 12329: { 12329: }; 12329: 12329: template 12329: struct has_range_iterator_impl< 12329: T, 12329: typename ::boost::enable_if< 12329: typename mpl::eval_if, 12329: has_type::type> >, 12329: has_type > 12329: >::type 12329: >::type 12329: > 12329: : boost::mpl::true_ 12329: { 12329: }; 12329: 12329: template 12329: struct has_range_const_iterator_impl 12329: : boost::mpl::false_ 12329: { 12329: }; 12329: 12329: template 12329: struct has_range_const_iterator_impl< 12329: T, 12329: typename ::boost::enable_if< 12329: has_type > 12329: >::type 12329: > 12329: : boost::mpl::true_ 12329: { 12329: }; 12329: 12329: } 12329: 12329: template 12329: struct has_range_iterator 12329: : range_detail::has_range_iterator_impl< 12329: typename remove_reference::type> 12329: {}; 12329: 12329: template 12329: struct has_range_const_iterator 12329: : range_detail::has_range_const_iterator_impl< 12329: typename remove_reference::type> 12329: {}; 12329: } 12329: # 22 "/usr/include/boost/range/difference_type.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: namespace range_detail 12329: { 12329: template< class T, bool B = has_type >::value > 12329: struct range_difference 12329: { }; 12329: 12329: template< class T > 12329: struct range_difference 12329: : iterator_difference< 12329: typename range_iterator::type 12329: > 12329: { }; 12329: } 12329: 12329: template< class T > 12329: struct range_difference 12329: : range_detail::range_difference::type> 12329: { }; 12329: } 12329: # 20 "/usr/include/boost/range/size_type.hpp" 2 3 4 12329: # 1 "/usr/include/boost/range/concepts.hpp" 1 3 4 12329: # 19 "/usr/include/boost/range/concepts.hpp" 3 4 12329: # 1 "/usr/include/boost/concept_check.hpp" 1 3 4 12329: # 20 "/usr/include/boost/concept_check.hpp" 3 4 12329: # 1 "/usr/include/boost/concept/assert.hpp" 1 3 4 12329: # 35 "/usr/include/boost/concept/assert.hpp" 3 4 12329: # 1 "/usr/include/boost/concept/detail/general.hpp" 1 3 4 12329: # 9 "/usr/include/boost/concept/detail/general.hpp" 3 4 12329: # 1 "/usr/include/boost/concept/detail/backward_compatibility.hpp" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: namespace concepts {} 12329: 12329: 12329: 12329: 12329: } 12329: # 10 "/usr/include/boost/concept/detail/general.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/concept/detail/has_constraints.hpp" 1 3 4 12329: # 11 "/usr/include/boost/concept/detail/has_constraints.hpp" 3 4 12329: namespace boost { namespace concepts { 12329: 12329: namespace detail 12329: { 12329: 12329: 12329: 12329: typedef char yes; 12329: typedef char (&no)[2]; 12329: 12329: template 12329: struct wrap_constraints {}; 12329: # 31 "/usr/include/boost/concept/detail/has_constraints.hpp" 3 4 12329: template 12329: inline yes has_constraints_(Model*, wrap_constraints* = 0); 12329: inline no has_constraints_(...); 12329: 12329: } 12329: 12329: 12329: 12329: template 12329: struct not_satisfied 12329: { 12329: static const bool value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) 12329: 12329: ; 12329: typedef boost::integral_constant type; 12329: }; 12329: 12329: }} 12329: # 13 "/usr/include/boost/concept/detail/general.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace concepts { 12329: 12329: template 12329: struct requirement_; 12329: 12329: namespace detail 12329: { 12329: template struct instantiate {}; 12329: } 12329: 12329: template 12329: struct requirement 12329: { 12329: static void failed() { ((Model*)0)->~Model(); } 12329: }; 12329: 12329: struct failed {}; 12329: 12329: template 12329: struct requirement 12329: { 12329: static void failed() { ((Model*)0)->~Model(); } 12329: }; 12329: 12329: 12329: 12329: template 12329: struct constraint 12329: { 12329: static void failed() { ((Model*)0)->constraints(); } 12329: }; 12329: 12329: template 12329: struct requirement_ 12329: : boost::conditional< 12329: concepts::not_satisfied::value 12329: , constraint 12329: , requirement 12329: >::type 12329: {}; 12329: # 75 "/usr/include/boost/concept/detail/general.hpp" 3 4 12329: }} 12329: # 36 "/usr/include/boost/concept/assert.hpp" 2 3 4 12329: # 21 "/usr/include/boost/concept_check.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/conversion_traits.hpp" 1 3 4 12329: # 24 "/usr/include/boost/concept_check.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/concept/usage.hpp" 1 3 4 12329: # 11 "/usr/include/boost/concept/usage.hpp" 3 4 12329: namespace boost { namespace concepts { 12329: 12329: template 12329: struct usage_requirements 12329: { 12329: ~usage_requirements() { ((Model*)0)->~Model(); } 12329: }; 12329: # 34 "/usr/include/boost/concept/usage.hpp" 3 4 12329: }} 12329: # 32 "/usr/include/boost/concept_check.hpp" 2 3 4 12329: # 1 "/usr/include/boost/concept/detail/concept_def.hpp" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/preprocessor/seq/for_each_i.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/seq/for_each_i.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/repetition/for.hpp" 1 3 4 12329: # 21 "/usr/include/boost/preprocessor/repetition/for.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 12329: # 22 "/usr/include/boost/preprocessor/repetition/for.hpp" 2 3 4 12329: # 44 "/usr/include/boost/preprocessor/repetition/for.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/repetition/detail/for.hpp" 1 3 4 12329: # 45 "/usr/include/boost/preprocessor/repetition/for.hpp" 2 3 4 12329: # 21 "/usr/include/boost/preprocessor/seq/for_each_i.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/seq/seq.hpp" 1 3 4 12329: # 16 "/usr/include/boost/preprocessor/seq/seq.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/seq/elem.hpp" 1 3 4 12329: # 17 "/usr/include/boost/preprocessor/seq/seq.hpp" 2 3 4 12329: # 22 "/usr/include/boost/preprocessor/seq/for_each_i.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/seq/size.hpp" 1 3 4 12329: # 23 "/usr/include/boost/preprocessor/seq/for_each_i.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/seq/detail/is_empty.hpp" 1 3 4 12329: # 24 "/usr/include/boost/preprocessor/seq/for_each_i.hpp" 2 3 4 12329: # 7 "/usr/include/boost/concept/detail/concept_def.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/seq/enum.hpp" 1 3 4 12329: # 8 "/usr/include/boost/concept/detail/concept_def.hpp" 2 3 4 12329: # 33 "/usr/include/boost/concept_check.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline void function_requires(Model* = 0) 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_::failed> boost_concept_check50 __attribute__((__unused__)); 12329: } 12329: template inline void ignore_unused_variable_warning(T const&) {} 12329: # 70 "/usr/include/boost/concept_check.hpp" 3 4 12329: template < typename T > struct Integer; template < typename T > struct IntegerConcept : Integer< T > { }; template < typename T > struct Integer 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check72 __attribute__((__unused__)); ~Integer() 12329: { 12329: x.error_type_must_be_an_integer_type(); 12329: } 12329: private: 12329: T x; 12329: }; 12329: 12329: template <> struct Integer {}; 12329: template <> struct Integer {}; 12329: template <> struct Integer {}; 12329: template <> struct Integer {}; 12329: template <> struct Integer {}; 12329: template <> struct Integer {}; 12329: template <> struct Integer {}; 12329: template <> struct Integer {}; 12329: template <> struct Integer {}; 12329: 12329: template <> struct Integer< ::boost::long_long_type> {}; 12329: template <> struct Integer< ::boost::ulong_long_type> {}; 12329: 12329: 12329: 12329: 12329: 12329: template < typename T > struct SignedInteger; template < typename T > struct SignedIntegerConcept : SignedInteger< T > { }; template < typename T > struct SignedInteger { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check98 __attribute__((__unused__)); ~SignedInteger() { 12329: x.error_type_must_be_a_signed_integer_type(); 12329: } 12329: private: 12329: T x; 12329: }; 12329: template <> struct SignedInteger { }; 12329: template <> struct SignedInteger {}; 12329: template <> struct SignedInteger {}; 12329: template <> struct SignedInteger {}; 12329: 12329: template <> struct SignedInteger< ::boost::long_long_type> {}; 12329: 12329: 12329: 12329: 12329: template < typename T > struct UnsignedInteger; template < typename T > struct UnsignedIntegerConcept : UnsignedInteger< T > { }; template < typename T > struct UnsignedInteger { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check115 __attribute__((__unused__)); ~UnsignedInteger() { 12329: x.error_type_must_be_an_unsigned_integer_type(); 12329: } 12329: private: 12329: T x; 12329: }; 12329: 12329: template <> struct UnsignedInteger {}; 12329: template <> struct UnsignedInteger {}; 12329: template <> struct UnsignedInteger {}; 12329: template <> struct UnsignedInteger {}; 12329: 12329: template <> struct UnsignedInteger< ::boost::ulong_long_type> {}; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template < typename TT > struct DefaultConstructible; template < typename TT > struct DefaultConstructibleConcept : DefaultConstructible< TT > { }; template < typename TT > struct DefaultConstructible 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check137 __attribute__((__unused__)); ~DefaultConstructible() { 12329: TT a; 12329: ignore_unused_variable_warning(a); 12329: } 12329: }; 12329: 12329: template < typename TT > struct Assignable; template < typename TT > struct AssignableConcept : Assignable< TT > { }; template < typename TT > struct Assignable 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check145 __attribute__((__unused__)); ~Assignable() { 12329: 12329: a = b; 12329: 12329: const_constraints(b); 12329: } 12329: private: 12329: void const_constraints(const TT& x) { 12329: 12329: a = x; 12329: 12329: 12329: 12329: } 12329: private: 12329: TT a; 12329: TT b; 12329: }; 12329: 12329: 12329: template < typename TT > struct CopyConstructible; template < typename TT > struct CopyConstructibleConcept : CopyConstructible< TT > { }; template < typename TT > struct CopyConstructible 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check167 __attribute__((__unused__)); ~CopyConstructible() { 12329: TT a(b); 12329: TT* ptr = &a; 12329: const_constraints(a); 12329: ignore_unused_variable_warning(ptr); 12329: } 12329: private: 12329: void const_constraints(const TT& a) { 12329: TT c(a); 12329: const TT* ptr = &a; 12329: ignore_unused_variable_warning(c); 12329: ignore_unused_variable_warning(ptr); 12329: } 12329: TT b; 12329: }; 12329: 12329: 12329: template < typename TT > struct SGIAssignable; template < typename TT > struct SGIAssignableConcept : SGIAssignable< TT > { }; template < typename TT > struct SGIAssignable 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check186 __attribute__((__unused__)); ~SGIAssignable() { 12329: TT c(a); 12329: 12329: a = b; 12329: 12329: const_constraints(b); 12329: ignore_unused_variable_warning(c); 12329: } 12329: private: 12329: void const_constraints(const TT& x) { 12329: TT c(x); 12329: 12329: a = x; 12329: 12329: ignore_unused_variable_warning(c); 12329: } 12329: TT a; 12329: TT b; 12329: }; 12329: 12329: template < typename X , typename Y > struct Convertible; template < typename X , typename Y > struct ConvertibleConcept : Convertible< X, Y > { }; template < typename X , typename Y > struct Convertible 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check208 __attribute__((__unused__)); ~Convertible() { 12329: Y y = x; 12329: ignore_unused_variable_warning(y); 12329: } 12329: private: 12329: X x; 12329: }; 12329: # 225 "/usr/include/boost/concept_check.hpp" 3 4 12329: template 12329: void require_boolean_expr(const TT& t) { 12329: bool x = t; 12329: ignore_unused_variable_warning(x); 12329: } 12329: 12329: template < typename TT > struct EqualityComparable; template < typename TT > struct EqualityComparableConcept : EqualityComparable< TT > { }; template < typename TT > struct EqualityComparable 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check233 __attribute__((__unused__)); ~EqualityComparable() { 12329: require_boolean_expr(a == b); 12329: require_boolean_expr(a != b); 12329: } 12329: private: 12329: TT a, b; 12329: }; 12329: 12329: template < typename TT > struct LessThanComparable; template < typename TT > struct LessThanComparableConcept : LessThanComparable< TT > { }; template < typename TT > struct LessThanComparable 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check243 __attribute__((__unused__)); ~LessThanComparable() { 12329: require_boolean_expr(a < b); 12329: } 12329: private: 12329: TT a, b; 12329: }; 12329: 12329: 12329: template < typename TT > struct Comparable; template < typename TT > struct ComparableConcept : Comparable< TT > { }; template < typename TT > struct Comparable 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check253 __attribute__((__unused__)); ~Comparable() { 12329: require_boolean_expr(a < b); 12329: require_boolean_expr(a > b); 12329: require_boolean_expr(a <= b); 12329: require_boolean_expr(a >= b); 12329: } 12329: private: 12329: TT a, b; 12329: }; 12329: # 283 "/usr/include/boost/concept_check.hpp" 3 4 12329: template < typename First , typename Second > struct EqualOp; template < typename First , typename Second > struct EqualOpConcept : EqualOp< First, Second > { }; template < typename First , typename Second > struct EqualOp { typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check283 __attribute__((__unused__)); ~EqualOp() { (void)constraints_(); } private: bool constraints_() { return a == b; } First a; Second b; }; 12329: template < typename First , typename Second > struct NotEqualOp; template < typename First , typename Second > struct NotEqualOpConcept : NotEqualOp< First, Second > { }; template < typename First , typename Second > struct NotEqualOp { typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check284 __attribute__((__unused__)); ~NotEqualOp() { (void)constraints_(); } private: bool constraints_() { return a != b; } First a; Second b; }; 12329: template < typename First , typename Second > struct LessThanOp; template < typename First , typename Second > struct LessThanOpConcept : LessThanOp< First, Second > { }; template < typename First , typename Second > struct LessThanOp { typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check285 __attribute__((__unused__)); ~LessThanOp() { (void)constraints_(); } private: bool constraints_() { return a < b; } First a; Second b; }; 12329: template < typename First , typename Second > struct LessEqualOp; template < typename First , typename Second > struct LessEqualOpConcept : LessEqualOp< First, Second > { }; template < typename First , typename Second > struct LessEqualOp { typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check286 __attribute__((__unused__)); ~LessEqualOp() { (void)constraints_(); } private: bool constraints_() { return a <= b; } First a; Second b; }; 12329: template < typename First , typename Second > struct GreaterThanOp; template < typename First , typename Second > struct GreaterThanOpConcept : GreaterThanOp< First, Second > { }; template < typename First , typename Second > struct GreaterThanOp { typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check287 __attribute__((__unused__)); ~GreaterThanOp() { (void)constraints_(); } private: bool constraints_() { return a > b; } First a; Second b; }; 12329: template < typename First , typename Second > struct GreaterEqualOp; template < typename First , typename Second > struct GreaterEqualOpConcept : GreaterEqualOp< First, Second > { }; template < typename First , typename Second > struct GreaterEqualOp { typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check288 __attribute__((__unused__)); ~GreaterEqualOp() { (void)constraints_(); } private: bool constraints_() { return a >= b; } First a; Second b; }; 12329: 12329: template < typename Ret , typename First , typename Second > struct PlusOp; template < typename Ret , typename First , typename Second > struct PlusOpConcept : PlusOp< Ret, First, Second > { }; template < typename Ret , typename First , typename Second > struct PlusOp { typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check290 __attribute__((__unused__)); ~PlusOp() { (void)constraints_(); } private: Ret constraints_() { return a + b; } First a; Second b; }; 12329: template < typename Ret , typename First , typename Second > struct TimesOp; template < typename Ret , typename First , typename Second > struct TimesOpConcept : TimesOp< Ret, First, Second > { }; template < typename Ret , typename First , typename Second > struct TimesOp { typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check291 __attribute__((__unused__)); ~TimesOp() { (void)constraints_(); } private: Ret constraints_() { return a * b; } First a; Second b; }; 12329: template < typename Ret , typename First , typename Second > struct DivideOp; template < typename Ret , typename First , typename Second > struct DivideOpConcept : DivideOp< Ret, First, Second > { }; template < typename Ret , typename First , typename Second > struct DivideOp { typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check292 __attribute__((__unused__)); ~DivideOp() { (void)constraints_(); } private: Ret constraints_() { return a / b; } First a; Second b; }; 12329: template < typename Ret , typename First , typename Second > struct SubtractOp; template < typename Ret , typename First , typename Second > struct SubtractOpConcept : SubtractOp< Ret, First, Second > { }; template < typename Ret , typename First , typename Second > struct SubtractOp { typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check293 __attribute__((__unused__)); ~SubtractOp() { (void)constraints_(); } private: Ret constraints_() { return a - b; } First a; Second b; }; 12329: template < typename Ret , typename First , typename Second > struct ModOp; template < typename Ret , typename First , typename Second > struct ModOpConcept : ModOp< Ret, First, Second > { }; template < typename Ret , typename First , typename Second > struct ModOp { typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check294 __attribute__((__unused__)); ~ModOp() { (void)constraints_(); } private: Ret constraints_() { return a % b; } First a; Second b; }; 12329: 12329: 12329: 12329: 12329: template < typename Func , typename Return > struct Generator; template < typename Func , typename Return > struct GeneratorConcept : Generator< Func, Return > { }; template < typename Func , typename Return > struct Generator 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check301 __attribute__((__unused__)); ~Generator() { test(is_void()); } 12329: 12329: private: 12329: void test(boost::false_type) 12329: { 12329: 12329: const Return& r = f(); 12329: ignore_unused_variable_warning(r); 12329: } 12329: 12329: void test(boost::true_type) 12329: { 12329: f(); 12329: } 12329: 12329: Func f; 12329: }; 12329: 12329: template < typename Func , typename Return , typename Arg > struct UnaryFunction; template < typename Func , typename Return , typename Arg > struct UnaryFunctionConcept : UnaryFunction< Func, Return, Arg > { }; template < typename Func , typename Return , typename Arg > struct UnaryFunction 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check321 __attribute__((__unused__)); ~UnaryFunction() { test(is_void()); } 12329: 12329: private: 12329: void test(boost::false_type) 12329: { 12329: f(arg); 12329: Return r = f(arg); 12329: ignore_unused_variable_warning(r); 12329: } 12329: 12329: void test(boost::true_type) 12329: { 12329: f(arg); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: UnaryFunction(); 12329: 12329: 12329: Func f; 12329: Arg arg; 12329: }; 12329: 12329: template < typename Func , typename Return , typename First , typename Second > struct BinaryFunction; template < typename Func , typename Return , typename First , typename Second > struct BinaryFunctionConcept : BinaryFunction< Func, Return, First, Second > { }; template < typename Func , typename Return , typename First , typename Second > struct BinaryFunction 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check351 __attribute__((__unused__)); ~BinaryFunction() { test(is_void()); } 12329: private: 12329: void test(boost::false_type) 12329: { 12329: f(first,second); 12329: Return r = f(first, second); 12329: (void)r; 12329: } 12329: 12329: void test(boost::true_type) 12329: { 12329: f(first,second); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: BinaryFunction(); 12329: 12329: 12329: Func f; 12329: First first; 12329: Second second; 12329: }; 12329: 12329: template < typename Func , typename Arg > struct UnaryPredicate; template < typename Func , typename Arg > struct UnaryPredicateConcept : UnaryPredicate< Func, Arg > { }; template < typename Func , typename Arg > struct UnaryPredicate 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check381 __attribute__((__unused__)); ~UnaryPredicate() { 12329: require_boolean_expr(f(arg)); 12329: } 12329: private: 12329: 12329: 12329: 12329: 12329: 12329: 12329: UnaryPredicate(); 12329: 12329: 12329: Func f; 12329: Arg arg; 12329: }; 12329: 12329: template < typename Func , typename First , typename Second > struct BinaryPredicate; template < typename Func , typename First , typename Second > struct BinaryPredicateConcept : BinaryPredicate< Func, First, Second > { }; template < typename Func , typename First , typename Second > struct BinaryPredicate 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check400 __attribute__((__unused__)); ~BinaryPredicate() { 12329: require_boolean_expr(f(a, b)); 12329: } 12329: private: 12329: 12329: 12329: 12329: 12329: 12329: 12329: BinaryPredicate(); 12329: 12329: Func f; 12329: First a; 12329: Second b; 12329: }; 12329: 12329: 12329: template < typename Func , typename First , typename Second > struct Const_BinaryPredicate; template < typename Func , typename First , typename Second > struct Const_BinaryPredicateConcept : Const_BinaryPredicate< Func, First, Second > { }; template < typename Func , typename First , typename Second > struct Const_BinaryPredicate 12329: : BinaryPredicate 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check421 __attribute__((__unused__)); ~Const_BinaryPredicate() { 12329: const_constraints(f); 12329: } 12329: private: 12329: void const_constraints(const Func& fun) { 12329: 12329: require_boolean_expr(fun(a, b)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: Const_BinaryPredicate(); 12329: 12329: 12329: Func f; 12329: First a; 12329: Second b; 12329: }; 12329: 12329: template < typename Func , typename Return > struct AdaptableGenerator; template < typename Func , typename Return > struct AdaptableGeneratorConcept : AdaptableGenerator< Func, Return > { }; template < typename Func , typename Return > struct AdaptableGenerator 12329: : Generator 12329: { 12329: typedef typename Func::result_type result_type; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check448 __attribute__((__unused__)); ~AdaptableGenerator() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check450 __attribute__((__unused__)); 12329: } 12329: }; 12329: 12329: template < typename Func , typename Return , typename Arg > struct AdaptableUnaryFunction; template < typename Func , typename Return , typename Arg > struct AdaptableUnaryFunctionConcept : AdaptableUnaryFunction< Func, Return, Arg > { }; template < typename Func , typename Return , typename Arg > struct AdaptableUnaryFunction 12329: : UnaryFunction 12329: { 12329: typedef typename Func::argument_type argument_type; 12329: typedef typename Func::result_type result_type; 12329: 12329: ~AdaptableUnaryFunction() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check462 __attribute__((__unused__)); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check463 __attribute__((__unused__)); 12329: } 12329: }; 12329: 12329: template < typename Func , typename Return , typename First , typename Second > struct AdaptableBinaryFunction; template < typename Func , typename Return , typename First , typename Second > struct AdaptableBinaryFunctionConcept : AdaptableBinaryFunction< Func, Return, First, Second > { }; template < typename Func , typename Return , typename First , typename Second > struct AdaptableBinaryFunction 12329: : BinaryFunction< 12329: Func 12329: , typename Func::result_type 12329: , typename Func::first_argument_type 12329: , typename Func::second_argument_type 12329: > 12329: { 12329: typedef typename Func::first_argument_type first_argument_type; 12329: typedef typename Func::second_argument_type second_argument_type; 12329: typedef typename Func::result_type result_type; 12329: 12329: ~AdaptableBinaryFunction() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check481 __attribute__((__unused__)); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check482 __attribute__((__unused__)); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check483 __attribute__((__unused__)); 12329: } 12329: }; 12329: 12329: template < typename Func , typename Arg > struct AdaptablePredicate; template < typename Func , typename Arg > struct AdaptablePredicateConcept : AdaptablePredicate< Func, Arg > { }; template < typename Func , typename Arg > struct AdaptablePredicate 12329: : UnaryPredicate 12329: , AdaptableUnaryFunction 12329: { 12329: }; 12329: 12329: template < typename Func , typename First , typename Second > struct AdaptableBinaryPredicate; template < typename Func , typename First , typename Second > struct AdaptableBinaryPredicateConcept : AdaptableBinaryPredicate< Func, First, Second > { }; template < typename Func , typename First , typename Second > struct AdaptableBinaryPredicate 12329: : BinaryPredicate 12329: , AdaptableBinaryFunction 12329: { 12329: }; 12329: 12329: 12329: 12329: 12329: template < typename TT > struct InputIterator; template < typename TT > struct InputIteratorConcept : InputIterator< TT > { }; template < typename TT > struct InputIterator 12329: : Assignable 12329: , EqualityComparable 12329: { 12329: typedef typename std::iterator_traits::value_type value_type; 12329: typedef typename std::iterator_traits::difference_type difference_type; 12329: typedef typename std::iterator_traits::reference reference; 12329: typedef typename std::iterator_traits::pointer pointer; 12329: typedef typename std::iterator_traits::iterator_category iterator_category; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check512 __attribute__((__unused__)); ~InputIterator() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check514 __attribute__((__unused__)); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check515 __attribute__((__unused__)); 12329: 12329: TT j(i); 12329: (void)*i; 12329: ++j; 12329: i++; 12329: } 12329: private: 12329: TT i; 12329: }; 12329: 12329: template < typename TT , typename ValueT > struct OutputIterator; template < typename TT , typename ValueT > struct OutputIteratorConcept : OutputIterator< TT, ValueT > { }; template < typename TT , typename ValueT > struct OutputIterator 12329: : Assignable 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check529 __attribute__((__unused__)); ~OutputIterator() { 12329: 12329: ++i; 12329: i++; 12329: *i++ = t; 12329: } 12329: private: 12329: TT i, j; 12329: ValueT t; 12329: }; 12329: 12329: template < typename TT > struct ForwardIterator; template < typename TT > struct ForwardIteratorConcept : ForwardIterator< TT > { }; template < typename TT > struct ForwardIterator 12329: : InputIterator 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check543 __attribute__((__unused__)); ~ForwardIterator() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check545 __attribute__((__unused__)) 12329: 12329: 12329: ; 12329: 12329: typename InputIterator::reference r = *i; 12329: ignore_unused_variable_warning(r); 12329: } 12329: 12329: private: 12329: TT i; 12329: }; 12329: 12329: template < typename TT > struct Mutable_ForwardIterator; template < typename TT > struct Mutable_ForwardIteratorConcept : Mutable_ForwardIterator< TT > { }; template < typename TT > struct Mutable_ForwardIterator 12329: : ForwardIterator 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check561 __attribute__((__unused__)); ~Mutable_ForwardIterator() { 12329: *i++ = *j; 12329: } 12329: private: 12329: TT i, j; 12329: }; 12329: 12329: template < typename TT > struct BidirectionalIterator; template < typename TT > struct BidirectionalIteratorConcept : BidirectionalIterator< TT > { }; template < typename TT > struct BidirectionalIterator 12329: : ForwardIterator 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check571 __attribute__((__unused__)); ~BidirectionalIterator() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check573 __attribute__((__unused__)) 12329: 12329: 12329: ; 12329: 12329: --i; 12329: i--; 12329: } 12329: private: 12329: TT i; 12329: }; 12329: 12329: template < typename TT > struct Mutable_BidirectionalIterator; template < typename TT > struct Mutable_BidirectionalIteratorConcept : Mutable_BidirectionalIterator< TT > { }; template < typename TT > struct Mutable_BidirectionalIterator 12329: : BidirectionalIterator 12329: , Mutable_ForwardIterator 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check589 __attribute__((__unused__)); ~Mutable_BidirectionalIterator() 12329: { 12329: *i-- = *j; 12329: } 12329: private: 12329: TT i, j; 12329: }; 12329: 12329: template < typename TT > struct RandomAccessIterator; template < typename TT > struct RandomAccessIteratorConcept : RandomAccessIterator< TT > { }; template < typename TT > struct RandomAccessIterator 12329: : BidirectionalIterator 12329: , Comparable 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check601 __attribute__((__unused__)); ~RandomAccessIterator() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_::iterator_category , std::random_access_iterator_tag >)>::failed> boost_concept_check603 __attribute__((__unused__)) 12329: 12329: 12329: ; 12329: 12329: i += n; 12329: i = i + n; i = n + i; 12329: i -= n; 12329: i = i - n; 12329: n = i - j; 12329: (void)i[n]; 12329: } 12329: 12329: private: 12329: TT a, b; 12329: TT i, j; 12329: typename std::iterator_traits::difference_type n; 12329: }; 12329: 12329: template < typename TT > struct Mutable_RandomAccessIterator; template < typename TT > struct Mutable_RandomAccessIteratorConcept : Mutable_RandomAccessIterator< TT > { }; template < typename TT > struct Mutable_RandomAccessIterator 12329: : RandomAccessIterator 12329: , Mutable_BidirectionalIterator 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check626 __attribute__((__unused__)); ~Mutable_RandomAccessIterator() 12329: { 12329: i[n] = *i; 12329: } 12329: private: 12329: TT i; 12329: typename std::iterator_traits::difference_type n; 12329: }; 12329: 12329: 12329: 12329: 12329: template < typename C > struct Container; template < typename C > struct ContainerConcept : Container< C > { }; template < typename C > struct Container 12329: : Assignable 12329: { 12329: typedef typename C::value_type value_type; 12329: typedef typename C::difference_type difference_type; 12329: typedef typename C::size_type size_type; 12329: typedef typename C::const_reference const_reference; 12329: typedef typename C::const_pointer const_pointer; 12329: typedef typename C::const_iterator const_iterator; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check648 __attribute__((__unused__)); ~Container() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check650 __attribute__((__unused__)); 12329: const_constraints(c); 12329: } 12329: 12329: private: 12329: void const_constraints(const C& cc) { 12329: i = cc.begin(); 12329: i = cc.end(); 12329: n = cc.size(); 12329: n = cc.max_size(); 12329: b = cc.empty(); 12329: } 12329: C c; 12329: bool b; 12329: const_iterator i; 12329: size_type n; 12329: }; 12329: 12329: template < typename C > struct Mutable_Container; template < typename C > struct Mutable_ContainerConcept : Mutable_Container< C > { }; template < typename C > struct Mutable_Container 12329: : Container 12329: { 12329: typedef typename C::reference reference; 12329: typedef typename C::iterator iterator; 12329: typedef typename C::pointer pointer; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check675 __attribute__((__unused__)); ~Mutable_Container() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check677 __attribute__((__unused__)) 12329: ; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check680 __attribute__((__unused__)); 12329: 12329: i = c.begin(); 12329: i = c.end(); 12329: c.swap(c2); 12329: } 12329: 12329: private: 12329: iterator i; 12329: C c, c2; 12329: }; 12329: 12329: template < typename C > struct ForwardContainer; template < typename C > struct ForwardContainerConcept : ForwardContainer< C > { }; template < typename C > struct ForwardContainer 12329: : Container 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check695 __attribute__((__unused__)); ~ForwardContainer() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check697 __attribute__((__unused__)) 12329: 12329: 12329: ; 12329: } 12329: }; 12329: 12329: template < typename C > struct Mutable_ForwardContainer; template < typename C > struct Mutable_ForwardContainerConcept : Mutable_ForwardContainer< C > { }; template < typename C > struct Mutable_ForwardContainer 12329: : ForwardContainer 12329: , Mutable_Container 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check708 __attribute__((__unused__)); ~Mutable_ForwardContainer() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check710 __attribute__((__unused__)) 12329: 12329: 12329: ; 12329: } 12329: }; 12329: 12329: template < typename C > struct ReversibleContainer; template < typename C > struct ReversibleContainerConcept : ReversibleContainer< C > { }; template < typename C > struct ReversibleContainer 12329: : ForwardContainer 12329: { 12329: typedef typename 12329: C::const_reverse_iterator 12329: const_reverse_iterator; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check724 __attribute__((__unused__)); ~ReversibleContainer() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check726 __attribute__((__unused__)) 12329: 12329: ; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check730 __attribute__((__unused__)); 12329: 12329: const_constraints(c); 12329: } 12329: private: 12329: void const_constraints(const C& cc) 12329: { 12329: const_reverse_iterator _i = cc.rbegin(); 12329: _i = cc.rend(); 12329: } 12329: C c; 12329: }; 12329: 12329: template < typename C > struct Mutable_ReversibleContainer; template < typename C > struct Mutable_ReversibleContainerConcept : Mutable_ReversibleContainer< C > { }; template < typename C > struct Mutable_ReversibleContainer 12329: : Mutable_ForwardContainer 12329: , ReversibleContainer 12329: { 12329: typedef typename C::reverse_iterator reverse_iterator; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check749 __attribute__((__unused__)); ~Mutable_ReversibleContainer() 12329: { 12329: typedef typename Mutable_ForwardContainer::iterator iterator; 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check752 __attribute__((__unused__)); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check753 __attribute__((__unused__)); 12329: 12329: reverse_iterator i = c.rbegin(); 12329: i = c.rend(); 12329: } 12329: private: 12329: C c; 12329: }; 12329: 12329: template < typename C > struct RandomAccessContainer; template < typename C > struct RandomAccessContainerConcept : RandomAccessContainer< C > { }; template < typename C > struct RandomAccessContainer 12329: : ReversibleContainer 12329: { 12329: typedef typename C::size_type size_type; 12329: typedef typename C::const_reference const_reference; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check768 __attribute__((__unused__)); ~RandomAccessContainer() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check770 __attribute__((__unused__)) 12329: 12329: 12329: ; 12329: 12329: const_constraints(c); 12329: } 12329: private: 12329: void const_constraints(const C& cc) 12329: { 12329: const_reference r = cc[n]; 12329: ignore_unused_variable_warning(r); 12329: } 12329: 12329: C c; 12329: size_type n; 12329: }; 12329: 12329: template < typename C > struct Mutable_RandomAccessContainer; template < typename C > struct Mutable_RandomAccessContainerConcept : Mutable_RandomAccessContainer< C > { }; template < typename C > struct Mutable_RandomAccessContainer 12329: : Mutable_ReversibleContainer 12329: , RandomAccessContainer 12329: { 12329: private: 12329: typedef Mutable_RandomAccessContainer self; 12329: public: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check795 __attribute__((__unused__)); ~Mutable_RandomAccessContainer() 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check797 __attribute__((__unused__)); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check798 __attribute__((__unused__)); 12329: 12329: typename self::reference r = c[i]; 12329: ignore_unused_variable_warning(r); 12329: } 12329: 12329: private: 12329: typename Mutable_ReversibleContainer::size_type i; 12329: C c; 12329: }; 12329: 12329: 12329: template < typename S > struct Sequence; template < typename S > struct SequenceConcept : Sequence< S > { }; template < typename S > struct Sequence 12329: : Mutable_ForwardContainer 12329: 12329: 12329: 12329: , DefaultConstructible 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check817 __attribute__((__unused__)); ~Sequence() 12329: { 12329: S 12329: c(n, t), 12329: c2(first, last); 12329: 12329: c.insert(p, t); 12329: c.insert(p, n, t); 12329: c.insert(p, first, last); 12329: 12329: c.erase(p); 12329: c.erase(p, q); 12329: 12329: typename Sequence::reference r = c.front(); 12329: 12329: ignore_unused_variable_warning(c); 12329: ignore_unused_variable_warning(c2); 12329: ignore_unused_variable_warning(r); 12329: const_constraints(c); 12329: } 12329: private: 12329: void const_constraints(const S& c) { 12329: typename Sequence::const_reference r = c.front(); 12329: ignore_unused_variable_warning(r); 12329: } 12329: 12329: typename S::value_type t; 12329: typename S::size_type n; 12329: typename S::value_type* first, *last; 12329: typename S::iterator p, q; 12329: }; 12329: 12329: template < typename S > struct FrontInsertionSequence; template < typename S > struct FrontInsertionSequenceConcept : FrontInsertionSequence< S > { }; template < typename S > struct FrontInsertionSequence 12329: : Sequence 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check852 __attribute__((__unused__)); ~FrontInsertionSequence() 12329: { 12329: c.push_front(t); 12329: c.pop_front(); 12329: } 12329: private: 12329: S c; 12329: typename S::value_type t; 12329: }; 12329: 12329: template < typename S > struct BackInsertionSequence; template < typename S > struct BackInsertionSequenceConcept : BackInsertionSequence< S > { }; template < typename S > struct BackInsertionSequence 12329: : Sequence 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check865 __attribute__((__unused__)); ~BackInsertionSequence() 12329: { 12329: c.push_back(t); 12329: c.pop_back(); 12329: typename BackInsertionSequence::reference r = c.back(); 12329: ignore_unused_variable_warning(r); 12329: const_constraints(c); 12329: } 12329: private: 12329: void const_constraints(const S& cc) { 12329: typename BackInsertionSequence::const_reference 12329: r = cc.back(); 12329: ignore_unused_variable_warning(r); 12329: } 12329: S c; 12329: typename S::value_type t; 12329: }; 12329: 12329: template < typename C > struct AssociativeContainer; template < typename C > struct AssociativeContainerConcept : AssociativeContainer< C > { }; template < typename C > struct AssociativeContainer 12329: : ForwardContainer 12329: , DefaultConstructible 12329: { 12329: typedef typename C::key_type key_type; 12329: typedef typename C::key_compare key_compare; 12329: typedef typename C::value_compare value_compare; 12329: typedef typename C::iterator iterator; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check892 __attribute__((__unused__)); ~AssociativeContainer() 12329: { 12329: i = c.find(k); 12329: r = c.equal_range(k); 12329: c.erase(k); 12329: c.erase(i); 12329: c.erase(r.first, r.second); 12329: const_constraints(c); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check900 __attribute__((__unused__)); 12329: 12329: typedef typename AssociativeContainer::value_type value_type_; 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check903 __attribute__((__unused__)); 12329: } 12329: 12329: 12329: typedef typename C::const_iterator const_iterator; 12329: private: 12329: void const_constraints(const C& cc) 12329: { 12329: ci = cc.find(k); 12329: n = cc.count(k); 12329: cr = cc.equal_range(k); 12329: } 12329: 12329: C c; 12329: iterator i; 12329: std::pair r; 12329: const_iterator ci; 12329: std::pair cr; 12329: typename C::key_type k; 12329: typename C::size_type n; 12329: }; 12329: 12329: template < typename C > struct UniqueAssociativeContainer; template < typename C > struct UniqueAssociativeContainerConcept : UniqueAssociativeContainer< C > { }; template < typename C > struct UniqueAssociativeContainer 12329: : AssociativeContainer 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check928 __attribute__((__unused__)); ~UniqueAssociativeContainer() 12329: { 12329: C c(first, last); 12329: 12329: pos_flag = c.insert(t); 12329: c.insert(first, last); 12329: 12329: ignore_unused_variable_warning(c); 12329: } 12329: private: 12329: std::pair pos_flag; 12329: typename C::value_type t; 12329: typename C::value_type* first, *last; 12329: }; 12329: 12329: template < typename C > struct MultipleAssociativeContainer; template < typename C > struct MultipleAssociativeContainerConcept : MultipleAssociativeContainer< C > { }; template < typename C > struct MultipleAssociativeContainer 12329: : AssociativeContainer 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check946 __attribute__((__unused__)); ~MultipleAssociativeContainer() 12329: { 12329: C c(first, last); 12329: 12329: pos = c.insert(t); 12329: c.insert(first, last); 12329: 12329: ignore_unused_variable_warning(c); 12329: ignore_unused_variable_warning(pos); 12329: } 12329: private: 12329: typename C::iterator pos; 12329: typename C::value_type t; 12329: typename C::value_type* first, *last; 12329: }; 12329: 12329: template < typename C > struct SimpleAssociativeContainer; template < typename C > struct SimpleAssociativeContainerConcept : SimpleAssociativeContainer< C > { }; template < typename C > struct SimpleAssociativeContainer 12329: : AssociativeContainer 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check965 __attribute__((__unused__)); ~SimpleAssociativeContainer() 12329: { 12329: typedef typename C::key_type key_type; 12329: typedef typename C::value_type value_type; 12329: static_assert((boost::is_same::value), "(boost::is_same::value)"); 12329: } 12329: }; 12329: 12329: template < typename C > struct PairAssociativeContainer; template < typename C > struct PairAssociativeContainerConcept : PairAssociativeContainer< C > { }; template < typename C > struct PairAssociativeContainer 12329: : AssociativeContainer 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check976 __attribute__((__unused__)); ~PairAssociativeContainer() 12329: { 12329: typedef typename C::key_type key_type; 12329: typedef typename C::value_type value_type; 12329: typedef typename C::mapped_type mapped_type; 12329: typedef std::pair required_value_type; 12329: static_assert((boost::is_same::value), "(boost::is_same::value)"); 12329: } 12329: }; 12329: 12329: template < typename C > struct SortedAssociativeContainer; template < typename C > struct SortedAssociativeContainerConcept : SortedAssociativeContainer< C > { }; template < typename C > struct SortedAssociativeContainer 12329: : AssociativeContainer 12329: , ReversibleContainer 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check990 __attribute__((__unused__)); ~SortedAssociativeContainer() 12329: { 12329: C 12329: c(kc), 12329: c2(first, last), 12329: c3(first, last, kc); 12329: 12329: p = c.upper_bound(k); 12329: p = c.lower_bound(k); 12329: r = c.equal_range(k); 12329: 12329: c.insert(p, t); 12329: 12329: ignore_unused_variable_warning(c); 12329: ignore_unused_variable_warning(c2); 12329: ignore_unused_variable_warning(c3); 12329: const_constraints(c); 12329: } 12329: 12329: void const_constraints(const C& c) 12329: { 12329: kc = c.key_comp(); 12329: vc = c.value_comp(); 12329: 12329: cp = c.upper_bound(k); 12329: cp = c.lower_bound(k); 12329: cr = c.equal_range(k); 12329: } 12329: 12329: private: 12329: typename C::key_compare kc; 12329: typename C::value_compare vc; 12329: typename C::value_type t; 12329: typename C::key_type k; 12329: typedef typename C::iterator iterator; 12329: typedef typename C::const_iterator const_iterator; 12329: 12329: typedef SortedAssociativeContainer self; 12329: iterator p; 12329: const_iterator cp; 12329: std::pair r; 12329: std::pair cr; 12329: typename C::value_type* first, *last; 12329: }; 12329: 12329: 12329: 12329: template < typename C > struct Collection; template < typename C > struct CollectionConcept : Collection< C > { }; template < typename C > struct Collection 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check1039 __attribute__((__unused__)); ~Collection() 12329: { 12329: boost::function_requires >(); 12329: boost::function_requires >(); 12329: boost::function_requires >(); 12329: const_constraints(c); 12329: i = c.begin(); 12329: i = c.end(); 12329: c.swap(c); 12329: } 12329: 12329: void const_constraints(const C& cc) { 12329: ci = cc.begin(); 12329: ci = cc.end(); 12329: n = cc.size(); 12329: b = cc.empty(); 12329: } 12329: 12329: private: 12329: typedef typename C::value_type value_type; 12329: typedef typename C::iterator iterator; 12329: typedef typename C::const_iterator const_iterator; 12329: typedef typename C::reference reference; 12329: typedef typename C::const_reference const_reference; 12329: 12329: typedef typename C::difference_type difference_type; 12329: typedef typename C::size_type size_type; 12329: 12329: C c; 12329: bool b; 12329: iterator i; 12329: const_iterator ci; 12329: size_type n; 12329: }; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/concept/detail/concept_undef.hpp" 1 3 4 12329: # 1080 "/usr/include/boost/concept_check.hpp" 2 3 4 12329: # 20 "/usr/include/boost/range/concepts.hpp" 2 3 4 12329: # 1 "/usr/include/boost/iterator/iterator_concepts.hpp" 1 3 4 12329: # 29 "/usr/include/boost/iterator/iterator_concepts.hpp" 3 4 12329: # 1 "/usr/include/boost/concept/detail/concept_def.hpp" 1 3 4 12329: # 30 "/usr/include/boost/iterator/iterator_concepts.hpp" 2 3 4 12329: 12329: namespace boost_concepts 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template < typename Iterator > struct ReadableIterator; template < typename Iterator > struct ReadableIteratorConcept : ReadableIterator< Iterator > { }; template < typename Iterator > struct ReadableIterator 12329: : boost::Assignable 12329: , boost::CopyConstructible 12329: 12329: { 12329: typedef typename std::iterator_traits::value_type value_type; 12329: typedef typename std::iterator_traits::reference reference; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check48 __attribute__((__unused__)); ~ReadableIterator() 12329: { 12329: 12329: value_type v = *i; 12329: boost::ignore_unused_variable_warning(v); 12329: } 12329: private: 12329: Iterator i; 12329: }; 12329: 12329: template < 12329: typename Iterator 12329: , typename ValueType = typename std::iterator_traits::value_type 12329: > 12329: struct WritableIterator 12329: : boost::CopyConstructible 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check65 __attribute__((__unused__)); ~WritableIterator() 12329: { 12329: *i = v; 12329: } 12329: private: 12329: ValueType v; 12329: Iterator i; 12329: }; 12329: 12329: template < 12329: typename Iterator 12329: , typename ValueType = typename std::iterator_traits::value_type 12329: > 12329: struct WritableIteratorConcept : WritableIterator {}; 12329: 12329: template < typename Iterator > struct SwappableIterator; template < typename Iterator > struct SwappableIteratorConcept : SwappableIterator< Iterator > { }; template < typename Iterator > struct SwappableIterator 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check82 __attribute__((__unused__)); ~SwappableIterator() 12329: { 12329: std::iter_swap(i1, i2); 12329: } 12329: private: 12329: Iterator i1; 12329: Iterator i2; 12329: }; 12329: 12329: template < typename Iterator > struct LvalueIterator; template < typename Iterator > struct LvalueIteratorConcept : LvalueIterator< Iterator > { }; template < typename Iterator > struct LvalueIterator 12329: { 12329: typedef typename std::iterator_traits::value_type value_type; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check95 __attribute__((__unused__)); ~LvalueIterator() 12329: { 12329: value_type& r = const_cast(*i); 12329: boost::ignore_unused_variable_warning(r); 12329: } 12329: private: 12329: Iterator i; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template < typename Iterator > struct IncrementableIterator; template < typename Iterator > struct IncrementableIteratorConcept : IncrementableIterator< Iterator > { }; template < typename Iterator > struct IncrementableIterator 12329: : boost::Assignable 12329: , boost::CopyConstructible 12329: { 12329: typedef typename boost::iterator_traversal::type traversal_category; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check114 __attribute__((__unused__)) 12329: 12329: 12329: 12329: ; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check120 __attribute__((__unused__)); ~IncrementableIterator() 12329: { 12329: ++i; 12329: (void)i++; 12329: } 12329: private: 12329: Iterator i; 12329: }; 12329: 12329: template < typename Iterator > struct SinglePassIterator; template < typename Iterator > struct SinglePassIteratorConcept : SinglePassIterator< Iterator > { }; template < typename Iterator > struct SinglePassIterator 12329: : IncrementableIterator 12329: , boost::EqualityComparable 12329: 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_ )>::failed> boost_concept_check134 __attribute__((__unused__)) 12329: 12329: 12329: 12329: ; 12329: }; 12329: 12329: template < typename Iterator > struct ForwardTraversal; template < typename Iterator > struct ForwardTraversalConcept : ForwardTraversal< Iterator > { }; template < typename Iterator > struct ForwardTraversal 12329: : SinglePassIterator 12329: , boost::DefaultConstructible 12329: { 12329: typedef typename std::iterator_traits::difference_type difference_type; 12329: 12329: enum { mpl_assertion_in_line_147 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_arg( (void (*) (boost::is_integral))0, 1 ) ) ) }; 12329: enum { mpl_assert_rel_value148 = (std::numeric_limits::is_signed == true) }; enum { mpl_assertion_in_line_148 = sizeof( boost::mpl::assertion_failed( (boost::mpl::failed ************ ( boost::mpl::assert_relation< boost::mpl::assert_::relations( sizeof( boost::mpl::assert_::arg == boost::mpl::assert_::arg ) ) , std::numeric_limits::is_signed , true >::************)) 0 ) ) }; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_ )>::failed> boost_concept_check150 __attribute__((__unused__)) 12329: 12329: 12329: 12329: ; 12329: }; 12329: 12329: template < typename Iterator > struct BidirectionalTraversal; template < typename Iterator > struct BidirectionalTraversalConcept : BidirectionalTraversal< Iterator > { }; template < typename Iterator > struct BidirectionalTraversal 12329: : ForwardTraversal 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_ )>::failed> boost_concept_check160 __attribute__((__unused__)) 12329: 12329: 12329: 12329: ; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check166 __attribute__((__unused__)); ~BidirectionalTraversal() 12329: { 12329: --i; 12329: (void)i--; 12329: } 12329: private: 12329: Iterator i; 12329: }; 12329: 12329: template < typename Iterator > struct RandomAccessTraversal; template < typename Iterator > struct RandomAccessTraversalConcept : RandomAccessTraversal< Iterator > { }; template < typename Iterator > struct RandomAccessTraversal 12329: : BidirectionalTraversal 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_ )>::failed> boost_concept_check178 __attribute__((__unused__)) 12329: 12329: 12329: 12329: ; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check184 __attribute__((__unused__)); ~RandomAccessTraversal() 12329: { 12329: i += n; 12329: i = i + n; 12329: i = n + i; 12329: i -= n; 12329: i = i - n; 12329: n = i - j; 12329: } 12329: 12329: private: 12329: typename BidirectionalTraversal::difference_type n; 12329: Iterator i, j; 12329: }; 12329: 12329: 12329: 12329: 12329: namespace detail 12329: { 12329: template 12329: void interop_single_pass_constraints(Iterator1 const& i1, Iterator2 const& i2) 12329: { 12329: bool b; 12329: b = i1 == i2; 12329: b = i1 != i2; 12329: 12329: b = i2 == i1; 12329: b = i2 != i1; 12329: boost::ignore_unused_variable_warning(b); 12329: } 12329: 12329: template 12329: void interop_rand_access_constraints( 12329: Iterator1 const& i1, Iterator2 const& i2, 12329: boost::random_access_traversal_tag, boost::random_access_traversal_tag) 12329: { 12329: bool b; 12329: typename std::iterator_traits::difference_type n; 12329: b = i1 < i2; 12329: b = i1 <= i2; 12329: b = i1 > i2; 12329: b = i1 >= i2; 12329: n = i1 - i2; 12329: 12329: b = i2 < i1; 12329: b = i2 <= i1; 12329: b = i2 > i1; 12329: b = i2 >= i1; 12329: n = i2 - i1; 12329: boost::ignore_unused_variable_warning(b); 12329: boost::ignore_unused_variable_warning(n); 12329: } 12329: 12329: template 12329: void interop_rand_access_constraints( 12329: Iterator1 const&, Iterator2 const&, 12329: boost::single_pass_traversal_tag, boost::single_pass_traversal_tag) 12329: { } 12329: 12329: } 12329: 12329: template < typename Iterator , typename ConstIterator > struct InteroperableIterator; template < typename Iterator , typename ConstIterator > struct InteroperableIteratorConcept : InteroperableIterator< Iterator, ConstIterator > { }; template < typename Iterator , typename ConstIterator > struct InteroperableIterator 12329: { 12329: private: 12329: typedef typename boost::iterators::pure_iterator_traversal::type traversal_category; 12329: typedef typename boost::iterators::pure_iterator_traversal::type const_traversal_category; 12329: 12329: public: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check253 __attribute__((__unused__)); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check254 __attribute__((__unused__)); 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check256 __attribute__((__unused__)); ~InteroperableIterator() 12329: { 12329: detail::interop_single_pass_constraints(i, ci); 12329: detail::interop_rand_access_constraints(i, ci, traversal_category(), const_traversal_category()); 12329: 12329: ci = i; 12329: } 12329: 12329: private: 12329: Iterator i; 12329: ConstIterator ci; 12329: }; 12329: 12329: } 12329: 12329: # 1 "/usr/include/boost/concept/detail/concept_undef.hpp" 1 3 4 12329: # 272 "/usr/include/boost/iterator/iterator_concepts.hpp" 2 3 4 12329: # 21 "/usr/include/boost/range/concepts.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/range/value_type.hpp" 1 3 4 12329: # 23 "/usr/include/boost/range/value_type.hpp" 3 4 12329: namespace boost 12329: { 12329: template< class T > 12329: struct range_value : iterator_value< typename range_iterator::type > 12329: { }; 12329: } 12329: # 25 "/usr/include/boost/range/concepts.hpp" 2 3 4 12329: # 1 "/usr/include/boost/range/detail/misc_concept.hpp" 1 3 4 12329: # 13 "/usr/include/boost/range/detail/misc_concept.hpp" 3 4 12329: namespace boost 12329: { 12329: namespace range_detail 12329: { 12329: template 12329: class SameTypeConcept 12329: { 12329: public: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check21 __attribute__((__unused__)); ~SameTypeConcept() 12329: { 12329: same_type(a,b); 12329: } 12329: private: 12329: template void same_type(T,T) {} 12329: T1 a; 12329: T2 b; 12329: }; 12329: } 12329: } 12329: # 26 "/usr/include/boost/range/concepts.hpp" 2 3 4 12329: # 62 "/usr/include/boost/range/concepts.hpp" 3 4 12329: namespace boost { 12329: 12329: namespace range_detail { 12329: # 124 "/usr/include/boost/range/concepts.hpp" 3 4 12329: template 12329: struct IncrementableIteratorConcept : CopyConstructible 12329: { 12329: 12329: typedef typename iterator_traversal::type traversal_category; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check130 __attribute__((__unused__)) 12329: 12329: 12329: 12329: ; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check136 __attribute__((__unused__)); ~IncrementableIteratorConcept() 12329: { 12329: ++i; 12329: (void)i++; 12329: } 12329: private: 12329: Iterator i; 12329: 12329: }; 12329: 12329: template 12329: struct SinglePassIteratorConcept 12329: : IncrementableIteratorConcept 12329: , EqualityComparable 12329: { 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check152 __attribute__((__unused__)) 12329: 12329: 12329: 12329: ; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check158 __attribute__((__unused__)); ~SinglePassIteratorConcept() 12329: { 12329: Iterator i2(++i); 12329: boost::ignore_unused_variable_warning(i2); 12329: 12329: 12329: 12329: 12329: 12329: (void)(i++); 12329: 12329: typename std::iterator_traits::reference r1(*i); 12329: boost::ignore_unused_variable_warning(r1); 12329: 12329: typename std::iterator_traits::reference r2(*(++i)); 12329: boost::ignore_unused_variable_warning(r2); 12329: } 12329: private: 12329: Iterator i; 12329: 12329: }; 12329: 12329: template 12329: struct ForwardIteratorConcept 12329: : SinglePassIteratorConcept 12329: , DefaultConstructible 12329: { 12329: 12329: typedef typename std::iterator_traits::difference_type difference_type; 12329: 12329: enum { mpl_assertion_in_line_188 = sizeof( boost::mpl::assertion_failed( boost::mpl::assert_arg( (void (*) (is_integral))0, 1 ) ) ) }; 12329: enum { mpl_assert_rel_value189 = (std::numeric_limits::is_signed == true) }; enum { mpl_assertion_in_line_189 = sizeof( boost::mpl::assertion_failed( (boost::mpl::failed ************ ( boost::mpl::assert_relation< boost::mpl::assert_::relations( sizeof( boost::mpl::assert_::arg == boost::mpl::assert_::arg ) ) , std::numeric_limits::is_signed , true >::************)) 0 ) ) }; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check191 __attribute__((__unused__)) 12329: 12329: 12329: 12329: ; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check197 __attribute__((__unused__)); ~ForwardIteratorConcept() 12329: { 12329: 12329: 12329: 12329: 12329: Iterator i2(i++); 12329: boost::ignore_unused_variable_warning(i2); 12329: typename std::iterator_traits::reference r(*(i++)); 12329: boost::ignore_unused_variable_warning(r); 12329: } 12329: private: 12329: Iterator i; 12329: 12329: }; 12329: 12329: template 12329: struct BidirectionalIteratorConcept 12329: : ForwardIteratorConcept 12329: { 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check218 __attribute__((__unused__)) 12329: 12329: 12329: 12329: ; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check224 __attribute__((__unused__)); ~BidirectionalIteratorConcept() 12329: { 12329: --i; 12329: (void)i--; 12329: } 12329: private: 12329: Iterator i; 12329: 12329: }; 12329: 12329: template 12329: struct RandomAccessIteratorConcept 12329: : BidirectionalIteratorConcept 12329: { 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check239 __attribute__((__unused__)) 12329: 12329: 12329: 12329: ; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check245 __attribute__((__unused__)); ~RandomAccessIteratorConcept() 12329: { 12329: i += n; 12329: i = i + n; 12329: i = n + i; 12329: i -= n; 12329: i = i - n; 12329: n = i - j; 12329: } 12329: private: 12329: typename BidirectionalIteratorConcept::difference_type n; 12329: Iterator i; 12329: Iterator j; 12329: 12329: }; 12329: 12329: } 12329: 12329: 12329: template 12329: struct SinglePassRangeConcept 12329: { 12329: 12329: 12329: 12329: typedef typename remove_reference::type Rng; 12329: 12329: typedef typename range_iterator< 12329: Rng const 12329: >::type const_iterator; 12329: 12329: typedef typename range_iterator::type iterator; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check278 __attribute__((__unused__)) 12329: ; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check281 __attribute__((__unused__)) 12329: ; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check284 __attribute__((__unused__)); ~SinglePassRangeConcept() 12329: { 12329: 12329: 12329: 12329: iterator i1 = boost::begin(*m_range); 12329: iterator i2 = boost::end(*m_range); 12329: 12329: boost::ignore_unused_variable_warning(i1); 12329: boost::ignore_unused_variable_warning(i2); 12329: 12329: const_constraints(*m_range); 12329: } 12329: 12329: private: 12329: void const_constraints(const Rng& const_range) 12329: { 12329: const_iterator ci1 = boost::begin(const_range); 12329: const_iterator ci2 = boost::end(const_range); 12329: 12329: boost::ignore_unused_variable_warning(ci1); 12329: boost::ignore_unused_variable_warning(ci2); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: Rng* m_range; 12329: 12329: }; 12329: 12329: 12329: template 12329: struct ForwardRangeConcept : SinglePassRangeConcept 12329: { 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check321 __attribute__((__unused__)); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check322 __attribute__((__unused__)); 12329: 12329: }; 12329: 12329: template 12329: struct WriteableRangeConcept 12329: { 12329: 12329: typedef typename range_iterator::type iterator; 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check332 __attribute__((__unused__)); ~WriteableRangeConcept() 12329: { 12329: *i = v; 12329: } 12329: private: 12329: iterator i; 12329: typename range_value::type v; 12329: 12329: }; 12329: 12329: 12329: template 12329: struct WriteableForwardRangeConcept 12329: : ForwardRangeConcept 12329: , WriteableRangeConcept 12329: { 12329: }; 12329: 12329: 12329: template 12329: struct BidirectionalRangeConcept : ForwardRangeConcept 12329: { 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check355 __attribute__((__unused__)); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check356 __attribute__((__unused__)); 12329: 12329: }; 12329: 12329: 12329: template 12329: struct WriteableBidirectionalRangeConcept 12329: : BidirectionalRangeConcept 12329: , WriteableRangeConcept 12329: { 12329: }; 12329: 12329: 12329: template 12329: struct RandomAccessRangeConcept : BidirectionalRangeConcept 12329: { 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check373 __attribute__((__unused__)); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check374 __attribute__((__unused__)); 12329: 12329: }; 12329: 12329: 12329: template 12329: struct WriteableRandomAccessRangeConcept 12329: : RandomAccessRangeConcept 12329: , WriteableRangeConcept 12329: { 12329: }; 12329: 12329: } 12329: # 21 "/usr/include/boost/range/size_type.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/make_unsigned.hpp" 1 3 4 12329: # 14 "/usr/include/boost/type_traits/make_unsigned.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_signed.hpp" 1 3 4 12329: # 16 "/usr/include/boost/type_traits/is_signed.hpp" 3 4 12329: # 1 "/usr/include/c++/12/climits" 1 3 4 12329: # 39 "/usr/include/c++/12/climits" 3 4 12329: 12329: # 40 "/usr/include/c++/12/climits" 3 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 1 3 4 12329: # 43 "/usr/include/c++/12/climits" 2 3 12329: # 17 "/usr/include/boost/type_traits/is_signed.hpp" 2 3 4 12329: 12329: namespace boost { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace detail{ 12329: 12329: template 12329: struct is_signed_values 12329: { 12329: 12329: 12329: 12329: 12329: 12329: typedef typename remove_cv::type no_cv_t; 12329: static const no_cv_t minus_one = (static_cast(-1)); 12329: static const no_cv_t zero = (static_cast(0)); 12329: }; 12329: 12329: template 12329: struct is_signed_helper 12329: { 12329: typedef typename remove_cv::type no_cv_t; 12329: static const bool value = (!(::boost::detail::is_signed_values::minus_one > boost::detail::is_signed_values::zero)); 12329: }; 12329: 12329: template 12329: struct is_signed_select_helper 12329: { 12329: template 12329: struct rebind 12329: { 12329: typedef is_signed_helper type; 12329: }; 12329: }; 12329: 12329: template <> 12329: struct is_signed_select_helper 12329: { 12329: template 12329: struct rebind 12329: { 12329: typedef false_type type; 12329: }; 12329: }; 12329: 12329: template 12329: struct is_signed_impl 12329: { 12329: typedef ::boost::detail::is_signed_select_helper< ::boost::is_integral::value || ::boost::is_enum::value> selector; 12329: typedef typename selector::template rebind binder; 12329: typedef typename binder::type type; 12329: static const bool value = type::value; 12329: }; 12329: 12329: } 12329: 12329: template struct is_signed : public integral_constant::value> {}; 12329: # 91 "/usr/include/boost/type_traits/is_signed.hpp" 3 4 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: 12329: template <> struct is_signed< ::boost::long_long_type> : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: template <> struct is_signed : public true_type{}; 12329: 12329: template <> struct is_signed< ::boost::ulong_long_type> : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: # 142 "/usr/include/boost/type_traits/is_signed.hpp" 3 4 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: # 155 "/usr/include/boost/type_traits/is_signed.hpp" 3 4 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: template <> struct is_signed : public false_type{}; 12329: 12329: 12329: } 12329: # 15 "/usr/include/boost/type_traits/make_unsigned.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_unsigned.hpp" 1 3 4 12329: # 17 "/usr/include/boost/type_traits/is_unsigned.hpp" 3 4 12329: # 1 "/usr/include/c++/12/climits" 1 3 4 12329: # 39 "/usr/include/c++/12/climits" 3 4 12329: 12329: # 40 "/usr/include/c++/12/climits" 3 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 1 3 4 12329: # 43 "/usr/include/c++/12/climits" 2 3 12329: # 18 "/usr/include/boost/type_traits/is_unsigned.hpp" 2 3 4 12329: 12329: namespace boost { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace detail{ 12329: 12329: template 12329: struct is_unsigned_values 12329: { 12329: 12329: 12329: 12329: 12329: 12329: typedef typename remove_cv::type no_cv_t; 12329: static const no_cv_t minus_one = (static_cast(-1)); 12329: static const no_cv_t zero = (static_cast(0)); 12329: }; 12329: 12329: template 12329: struct is_ununsigned_helper 12329: { 12329: static const bool value = (::boost::detail::is_unsigned_values::minus_one > ::boost::detail::is_unsigned_values::zero); 12329: }; 12329: 12329: template 12329: struct is_unsigned_select_helper 12329: { 12329: template 12329: struct rebind 12329: { 12329: typedef is_ununsigned_helper type; 12329: }; 12329: }; 12329: 12329: template <> 12329: struct is_unsigned_select_helper 12329: { 12329: template 12329: struct rebind 12329: { 12329: typedef false_type type; 12329: }; 12329: }; 12329: 12329: template 12329: struct is_unsigned 12329: { 12329: typedef ::boost::detail::is_unsigned_select_helper< ::boost::is_integral::value || ::boost::is_enum::value > selector; 12329: typedef typename selector::template rebind binder; 12329: typedef typename binder::type type; 12329: static const bool value = type::value; 12329: }; 12329: 12329: } 12329: 12329: template struct is_unsigned : public integral_constant::value> {}; 12329: # 91 "/usr/include/boost/type_traits/is_unsigned.hpp" 3 4 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned< short> : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned< int> : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned< long> : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: 12329: template <> struct is_unsigned< ::boost::ulong_long_type> : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: 12329: template <> struct is_unsigned< ::boost::long_long_type> : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: template <> struct is_unsigned : public false_type{}; 12329: 12329: 12329: 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: # 150 "/usr/include/boost/type_traits/is_unsigned.hpp" 3 4 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: template <> struct is_unsigned : public true_type{}; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 16 "/usr/include/boost/type_traits/make_unsigned.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/add_volatile.hpp" 1 3 4 12329: # 15 "/usr/include/boost/type_traits/add_volatile.hpp" 3 4 12329: namespace boost { 12329: # 30 "/usr/include/boost/type_traits/add_volatile.hpp" 3 4 12329: template struct add_volatile{ typedef T volatile type; }; 12329: 12329: 12329: 12329: 12329: 12329: template struct add_volatile{ typedef T& type; }; 12329: 12329: 12329: 12329: template using add_volatile_t = typename add_volatile::type; 12329: 12329: 12329: 12329: } 12329: # 23 "/usr/include/boost/type_traits/make_unsigned.hpp" 2 3 4 12329: 12329: 12329: namespace boost { 12329: 12329: template 12329: struct make_unsigned 12329: { 12329: private: 12329: static_assert((::boost::is_integral::value || ::boost::is_enum::value), "The template argument to make_unsigned must be an integer or enum type."); 12329: static_assert((! ::boost::is_same::type, bool>::value), "The template argument to make_unsigned must not be the type bool"); 12329: 12329: typedef typename remove_cv::type t_no_cv; 12329: typedef typename conditional< 12329: (::boost::is_unsigned::value && ::boost::is_integral::value 12329: && ! ::boost::is_same::value 12329: && ! ::boost::is_same::value 12329: && ! ::boost::is_same::value), 12329: T, 12329: typename conditional< 12329: (::boost::is_integral::value 12329: && ! ::boost::is_same::value 12329: && ! ::boost::is_same::value 12329: && ! ::boost::is_same::value), 12329: typename conditional< 12329: is_same::value, 12329: unsigned char, 12329: typename conditional< 12329: is_same::value, 12329: unsigned short, 12329: typename conditional< 12329: is_same::value, 12329: unsigned int, 12329: typename conditional< 12329: is_same::value, 12329: unsigned long, 12329: 12329: 12329: typename conditional< 12329: sizeof(t_no_cv) == sizeof(boost::ulong_long_type), 12329: boost::ulong_long_type, 12329: boost::uint128_type 12329: >::type 12329: # 73 "/usr/include/boost/type_traits/make_unsigned.hpp" 3 4 12329: >::type 12329: >::type 12329: >::type 12329: >::type, 12329: 12329: typename conditional< 12329: sizeof(t_no_cv) == sizeof(unsigned char), 12329: unsigned char, 12329: typename conditional< 12329: sizeof(t_no_cv) == sizeof(unsigned short), 12329: unsigned short, 12329: typename conditional< 12329: sizeof(t_no_cv) == sizeof(unsigned int), 12329: unsigned int, 12329: typename conditional< 12329: sizeof(t_no_cv) == sizeof(unsigned long), 12329: unsigned long, 12329: 12329: 12329: typename conditional< 12329: sizeof(t_no_cv) == sizeof(boost::ulong_long_type), 12329: boost::ulong_long_type, 12329: boost::uint128_type 12329: >::type 12329: # 105 "/usr/include/boost/type_traits/make_unsigned.hpp" 3 4 12329: >::type 12329: >::type 12329: >::type 12329: >::type 12329: >::type 12329: >::type base_integer_type; 12329: 12329: 12329: typedef typename conditional< 12329: is_const::value, 12329: typename add_const::type, 12329: base_integer_type 12329: >::type const_base_integer_type; 12329: public: 12329: 12329: typedef typename conditional< 12329: is_volatile::value, 12329: typename add_volatile::type, 12329: const_base_integer_type 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: template using make_unsigned_t = typename make_unsigned::type; 12329: 12329: 12329: 12329: } 12329: # 25 "/usr/include/boost/range/size_type.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: namespace detail 12329: { 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class has_size_type 12329: { 12329: typedef char no_type; 12329: struct yes_type { char dummy[2]; }; 12329: 12329: template 12329: static yes_type test(typename C::size_type x); 12329: 12329: template 12329: static no_type test(...); 12329: 12329: public: 12329: static const bool value = sizeof(test(0)) == sizeof(yes_type); 12329: }; 12329: 12329: template 12329: struct range_size_ 12329: { 12329: typedef typename make_unsigned< 12329: typename range_difference::type 12329: >::type type; 12329: }; 12329: 12329: template 12329: struct range_size_< 12329: C, 12329: typename ::boost::enable_if, void>::type 12329: > 12329: { 12329: typedef typename C::size_type type; 12329: }; 12329: 12329: template >::value> 12329: struct range_size 12329: { }; 12329: 12329: template 12329: struct range_size 12329: : range_size_ 12329: { }; 12329: } 12329: 12329: template< class T > 12329: struct range_size : 12329: detail::range_size 12329: { }; 12329: 12329: } 12329: # 22 "/usr/include/boost/range/size.hpp" 2 3 4 12329: # 1 "/usr/include/boost/range/detail/has_member_size.hpp" 1 3 4 12329: # 18 "/usr/include/boost/range/detail/has_member_size.hpp" 3 4 12329: # 1 "/usr/include/boost/cstdint.hpp" 1 3 4 12329: # 19 "/usr/include/boost/range/detail/has_member_size.hpp" 2 3 4 12329: 12329: namespace boost 12329: { 12329: namespace range_detail 12329: { 12329: 12329: template 12329: class has_member_size_impl 12329: { 12329: private: 12329: template 12329: class check 12329: { 12329: }; 12329: 12329: template 12329: static boost::uint8_t f(check*); 12329: 12329: template 12329: static boost::uint16_t f(...); 12329: 12329: public: 12329: static const bool value = 12329: (sizeof(f(0)) == sizeof(boost::uint8_t)); 12329: 12329: typedef typename mpl::if_c< 12329: (sizeof(f(0)) == sizeof(boost::uint8_t)), 12329: mpl::true_, 12329: mpl::false_ 12329: >::type type; 12329: }; 12329: 12329: template 12329: struct has_member_size 12329: { 12329: typedef typename mpl::and_< 12329: typename is_class::type, 12329: typename has_member_size_impl::type 12329: >::type type; 12329: 12329: static const bool value = 12329: is_class::value && has_member_size_impl::value; 12329: }; 12329: 12329: } 12329: } 12329: # 23 "/usr/include/boost/range/size.hpp" 2 3 4 12329: # 1 "/usr/include/boost/assert.hpp" 1 3 4 12329: # 58 "/usr/include/boost/assert.hpp" 3 4 12329: # 1 "/usr/include/assert.h" 1 3 4 12329: # 59 "/usr/include/boost/assert.hpp" 2 3 4 12329: # 24 "/usr/include/boost/range/size.hpp" 2 3 4 12329: # 1 "/usr/include/boost/cstdint.hpp" 1 3 4 12329: # 25 "/usr/include/boost/range/size.hpp" 2 3 4 12329: # 1 "/usr/include/boost/utility.hpp" 1 3 4 12329: # 15 "/usr/include/boost/utility.hpp" 3 4 12329: # 1 "/usr/include/boost/utility/base_from_member.hpp" 1 3 4 12329: # 15 "/usr/include/boost/utility/base_from_member.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/repetition/enum_binary_params.hpp" 1 3 4 12329: # 16 "/usr/include/boost/utility/base_from_member.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/preprocessor/repetition/repeat_from_to.hpp" 1 3 4 12329: # 23 "/usr/include/boost/preprocessor/repetition/repeat_from_to.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 12329: # 24 "/usr/include/boost/preprocessor/repetition/repeat_from_to.hpp" 2 3 4 12329: # 18 "/usr/include/boost/utility/base_from_member.hpp" 2 3 4 12329: # 58 "/usr/include/boost/utility/base_from_member.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: # 72 "/usr/include/boost/utility/base_from_member.hpp" 3 4 12329: template < typename T > 12329: struct remove_cv_ref 12329: { 12329: typedef typename ::boost::remove_cv::type>::type type; 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template < typename T, typename U > 12329: struct is_related 12329: : public ::boost::is_same< 12329: typename ::boost::detail::remove_cv_ref::type, 12329: typename ::boost::detail::remove_cv_ref::type > 12329: {}; 12329: # 100 "/usr/include/boost/utility/base_from_member.hpp" 3 4 12329: template 12329: struct enable_if_unrelated 12329: : public ::boost::enable_if_c 12329: {}; 12329: 12329: template 12329: struct enable_if_unrelated 12329: : public ::boost::disable_if< ::boost::detail::is_related > 12329: {}; 12329: 12329: 12329: } 12329: # 123 "/usr/include/boost/utility/base_from_member.hpp" 3 4 12329: template < typename MemberType, int UniqueID = 0 > 12329: class base_from_member 12329: { 12329: protected: 12329: MemberType member; 12329: 12329: 12329: 12329: 12329: 12329: template ::type> 12329: explicit constexpr base_from_member( T&& ...x ) 12329: noexcept((noexcept((::new ((void*) 0) MemberType( static_cast(x)... ))))) 12329: 12329: : member( static_cast(x)... ) 12329: {} 12329: # 150 "/usr/include/boost/utility/base_from_member.hpp" 3 4 12329: }; 12329: 12329: template < typename MemberType, int UniqueID > 12329: class base_from_member 12329: { 12329: protected: 12329: MemberType& member; 12329: 12329: explicit constexpr base_from_member( MemberType& x ) 12329: noexcept 12329: : member( x ) 12329: {} 12329: 12329: }; 12329: 12329: } 12329: # 16 "/usr/include/boost/utility.hpp" 2 3 4 12329: # 1 "/usr/include/boost/utility/binary.hpp" 1 3 4 12329: # 26 "/usr/include/boost/utility/binary.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/control/deduce_d.hpp" 1 3 4 12329: # 16 "/usr/include/boost/preprocessor/control/deduce_d.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 12329: # 17 "/usr/include/boost/preprocessor/control/deduce_d.hpp" 2 3 4 12329: # 27 "/usr/include/boost/utility/binary.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/preprocessor/seq/cat.hpp" 1 3 4 12329: # 18 "/usr/include/boost/preprocessor/seq/cat.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/seq/fold_left.hpp" 1 3 4 12329: # 19 "/usr/include/boost/preprocessor/seq/fold_left.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/seq/fold_left.hpp" 2 3 4 12329: # 19 "/usr/include/boost/preprocessor/seq/cat.hpp" 2 3 4 12329: # 30 "/usr/include/boost/utility/binary.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/seq/transform.hpp" 1 3 4 12329: # 31 "/usr/include/boost/utility/binary.hpp" 2 3 4 12329: # 1 "/usr/include/boost/preprocessor/arithmetic/mod.hpp" 1 3 4 12329: # 17 "/usr/include/boost/preprocessor/arithmetic/mod.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/arithmetic/detail/div_base.hpp" 1 3 4 12329: # 19 "/usr/include/boost/preprocessor/arithmetic/detail/div_base.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/comparison/less_equal.hpp" 1 3 4 12329: # 19 "/usr/include/boost/preprocessor/comparison/less_equal.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/logical/not.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/comparison/less_equal.hpp" 2 3 4 12329: # 20 "/usr/include/boost/preprocessor/arithmetic/detail/div_base.hpp" 2 3 4 12329: # 18 "/usr/include/boost/preprocessor/arithmetic/mod.hpp" 2 3 4 12329: # 32 "/usr/include/boost/utility/binary.hpp" 2 3 4 12329: # 17 "/usr/include/boost/utility.hpp" 2 3 4 12329: # 1 "/usr/include/boost/utility/identity_type.hpp" 1 3 4 12329: # 16 "/usr/include/boost/utility/identity_type.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/function_traits.hpp" 1 3 4 12329: # 16 "/usr/include/boost/type_traits/function_traits.hpp" 3 4 12329: namespace boost { 12329: 12329: namespace detail { 12329: 12329: template struct function_traits_helper; 12329: 12329: template 12329: struct function_traits_helper 12329: { 12329: static const unsigned arity = 0; 12329: typedef R result_type; 12329: }; 12329: 12329: template 12329: struct function_traits_helper 12329: { 12329: static const unsigned arity = 1; 12329: typedef R result_type; 12329: typedef T1 arg1_type; 12329: typedef T1 argument_type; 12329: }; 12329: 12329: template 12329: struct function_traits_helper 12329: { 12329: static const unsigned arity = 2; 12329: typedef R result_type; 12329: typedef T1 arg1_type; 12329: typedef T2 arg2_type; 12329: typedef T1 first_argument_type; 12329: typedef T2 second_argument_type; 12329: }; 12329: 12329: template 12329: struct function_traits_helper 12329: { 12329: static const unsigned arity = 3; 12329: typedef R result_type; 12329: typedef T1 arg1_type; 12329: typedef T2 arg2_type; 12329: typedef T3 arg3_type; 12329: }; 12329: 12329: template 12329: struct function_traits_helper 12329: { 12329: static const unsigned arity = 4; 12329: typedef R result_type; 12329: typedef T1 arg1_type; 12329: typedef T2 arg2_type; 12329: typedef T3 arg3_type; 12329: typedef T4 arg4_type; 12329: }; 12329: 12329: template 12329: struct function_traits_helper 12329: { 12329: static const unsigned arity = 5; 12329: typedef R result_type; 12329: typedef T1 arg1_type; 12329: typedef T2 arg2_type; 12329: typedef T3 arg3_type; 12329: typedef T4 arg4_type; 12329: typedef T5 arg5_type; 12329: }; 12329: 12329: template 12329: struct function_traits_helper 12329: { 12329: static const unsigned arity = 6; 12329: typedef R result_type; 12329: typedef T1 arg1_type; 12329: typedef T2 arg2_type; 12329: typedef T3 arg3_type; 12329: typedef T4 arg4_type; 12329: typedef T5 arg5_type; 12329: typedef T6 arg6_type; 12329: }; 12329: 12329: template 12329: struct function_traits_helper 12329: { 12329: static const unsigned arity = 7; 12329: typedef R result_type; 12329: typedef T1 arg1_type; 12329: typedef T2 arg2_type; 12329: typedef T3 arg3_type; 12329: typedef T4 arg4_type; 12329: typedef T5 arg5_type; 12329: typedef T6 arg6_type; 12329: typedef T7 arg7_type; 12329: }; 12329: 12329: template 12329: struct function_traits_helper 12329: { 12329: static const unsigned arity = 8; 12329: typedef R result_type; 12329: typedef T1 arg1_type; 12329: typedef T2 arg2_type; 12329: typedef T3 arg3_type; 12329: typedef T4 arg4_type; 12329: typedef T5 arg5_type; 12329: typedef T6 arg6_type; 12329: typedef T7 arg7_type; 12329: typedef T8 arg8_type; 12329: }; 12329: 12329: template 12329: struct function_traits_helper 12329: { 12329: static const unsigned arity = 9; 12329: typedef R result_type; 12329: typedef T1 arg1_type; 12329: typedef T2 arg2_type; 12329: typedef T3 arg3_type; 12329: typedef T4 arg4_type; 12329: typedef T5 arg5_type; 12329: typedef T6 arg6_type; 12329: typedef T7 arg7_type; 12329: typedef T8 arg8_type; 12329: typedef T9 arg9_type; 12329: }; 12329: 12329: template 12329: struct function_traits_helper 12329: { 12329: static const unsigned arity = 10; 12329: typedef R result_type; 12329: typedef T1 arg1_type; 12329: typedef T2 arg2_type; 12329: typedef T3 arg3_type; 12329: typedef T4 arg4_type; 12329: typedef T5 arg5_type; 12329: typedef T6 arg6_type; 12329: typedef T7 arg7_type; 12329: typedef T8 arg8_type; 12329: typedef T9 arg9_type; 12329: typedef T10 arg10_type; 12329: }; 12329: 12329: } 12329: 12329: template 12329: struct function_traits : 12329: public boost::detail::function_traits_helper::type> 12329: { 12329: }; 12329: 12329: } 12329: # 17 "/usr/include/boost/utility/identity_type.hpp" 2 3 4 12329: # 18 "/usr/include/boost/utility.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/core/checked_delete.hpp" 1 3 4 12329: # 26 "/usr/include/boost/core/checked_delete.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: 12329: 12329: template inline void checked_delete(T * x) noexcept 12329: { 12329: 12329: typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; 12329: (void) sizeof(type_must_be_complete); 12329: delete x; 12329: } 12329: 12329: template inline void checked_array_delete(T * x) noexcept 12329: { 12329: typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; 12329: (void) sizeof(type_must_be_complete); 12329: delete [] x; 12329: } 12329: 12329: template struct checked_deleter 12329: { 12329: typedef void result_type; 12329: typedef T * argument_type; 12329: 12329: void operator()(T * x) const noexcept 12329: { 12329: 12329: boost::checked_delete(x); 12329: } 12329: }; 12329: 12329: template struct checked_array_deleter 12329: { 12329: typedef void result_type; 12329: typedef T * argument_type; 12329: 12329: void operator()(T * x) const noexcept 12329: { 12329: boost::checked_array_delete(x); 12329: } 12329: }; 12329: 12329: } 12329: # 22 "/usr/include/boost/utility.hpp" 2 3 4 12329: # 1 "/usr/include/boost/core/noncopyable.hpp" 1 3 4 12329: # 14 "/usr/include/boost/core/noncopyable.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace noncopyable_ 12329: { 12329: # 34 "/usr/include/boost/core/noncopyable.hpp" 3 4 12329: struct base_token {}; 12329: 12329: 12329: 12329: class noncopyable: base_token 12329: { 12329: protected: 12329: 12329: constexpr noncopyable() = default; 12329: ~noncopyable() = default; 12329: 12329: 12329: 12329: 12329: 12329: noncopyable( const noncopyable& ) = delete; 12329: noncopyable& operator=( const noncopyable& ) = delete; 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: } 12329: 12329: typedef noncopyable_::noncopyable noncopyable; 12329: 12329: } 12329: # 23 "/usr/include/boost/utility.hpp" 2 3 4 12329: # 26 "/usr/include/boost/range/size.hpp" 2 3 4 12329: 12329: namespace boost 12329: { 12329: namespace range_detail 12329: { 12329: 12329: template 12329: inline typename ::boost::enable_if< 12329: has_member_size, 12329: typename range_size::type 12329: >::type 12329: range_calculate_size(const SinglePassRange& rng) 12329: { 12329: return rng.size(); 12329: } 12329: 12329: template 12329: inline typename disable_if< 12329: has_member_size, 12329: typename range_size::type 12329: >::type 12329: range_calculate_size(const SinglePassRange& rng) 12329: { 12329: return std::distance(boost::begin(rng), boost::end(rng)); 12329: } 12329: } 12329: 12329: template 12329: inline typename range_size::type 12329: size(const SinglePassRange& rng) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_)>::failed> boost_concept_check62 __attribute__((__unused__)); 12329: 12329: 12329: 12329: 12329: 12329: using namespace range_detail; 12329: 12329: 12329: return range_calculate_size(rng); 12329: } 12329: 12329: } 12329: # 21 "/usr/include/boost/range/functions.hpp" 2 3 4 12329: # 1 "/usr/include/boost/range/distance.hpp" 1 3 4 12329: # 18 "/usr/include/boost/range/distance.hpp" 3 4 12329: # 1 "/usr/include/boost/iterator/distance.hpp" 1 3 4 12329: # 14 "/usr/include/boost/iterator/distance.hpp" 3 4 12329: namespace boost { 12329: namespace iterators { 12329: 12329: namespace detail { 12329: template 12329: inline constexpr typename iterator_difference::type 12329: distance_impl( 12329: SinglePassIterator first 12329: , SinglePassIterator last 12329: , single_pass_traversal_tag 12329: ) 12329: { 12329: typename iterator_difference::type n = 0; 12329: while (first != last) { 12329: ++first; 12329: ++n; 12329: } 12329: return n; 12329: } 12329: 12329: template 12329: inline constexpr typename iterator_difference::type 12329: distance_impl( 12329: RandomAccessIterator first 12329: , RandomAccessIterator last 12329: , random_access_traversal_tag 12329: ) 12329: { 12329: return last - first; 12329: } 12329: } 12329: 12329: namespace distance_adl_barrier { 12329: template 12329: inline constexpr typename iterator_difference::type 12329: distance(SinglePassIterator first, SinglePassIterator last) 12329: { 12329: return detail::distance_impl( 12329: first, last, typename iterator_traversal::type() 12329: ); 12329: } 12329: } 12329: 12329: using namespace distance_adl_barrier; 12329: 12329: } 12329: 12329: using namespace iterators::distance_adl_barrier; 12329: 12329: } 12329: # 19 "/usr/include/boost/range/distance.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: namespace range_distance_adl_barrier 12329: { 12329: template< class T > 12329: inline constexpr typename range_difference::type 12329: distance( const T& r ) 12329: { 12329: return boost::iterators::distance( boost::begin( r ), boost::end( r ) ); 12329: } 12329: } 12329: 12329: using namespace range_distance_adl_barrier; 12329: 12329: } 12329: # 22 "/usr/include/boost/range/functions.hpp" 2 3 4 12329: # 1 "/usr/include/boost/range/empty.hpp" 1 3 4 12329: # 22 "/usr/include/boost/range/empty.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: template< class T > 12329: inline bool empty( const T& r ) 12329: { 12329: return boost::begin( r ) == boost::end( r ); 12329: } 12329: 12329: } 12329: # 23 "/usr/include/boost/range/functions.hpp" 2 3 4 12329: # 1 "/usr/include/boost/range/rbegin.hpp" 1 3 4 12329: # 19 "/usr/include/boost/range/rbegin.hpp" 3 4 12329: # 1 "/usr/include/boost/range/reverse_iterator.hpp" 1 3 4 12329: # 21 "/usr/include/boost/range/reverse_iterator.hpp" 3 4 12329: # 1 "/usr/include/boost/iterator/reverse_iterator.hpp" 1 3 4 12329: # 10 "/usr/include/boost/iterator/reverse_iterator.hpp" 3 4 12329: # 1 "/usr/include/boost/iterator/iterator_adaptor.hpp" 1 3 4 12329: # 30 "/usr/include/boost/iterator/iterator_adaptor.hpp" 3 4 12329: # 1 "/usr/include/boost/iterator/detail/config_def.hpp" 1 3 4 12329: # 31 "/usr/include/boost/iterator/iterator_adaptor.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { 12329: namespace iterators { 12329: 12329: 12329: 12329: 12329: using boost::use_default; 12329: 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: struct is_convertible 12329: : mpl::false_ {}; 12329: 12329: namespace iterators { 12329: 12329: namespace detail 12329: { 12329: # 63 "/usr/include/boost/iterator/iterator_adaptor.hpp" 3 4 12329: struct enable_type; 12329: } 12329: # 130 "/usr/include/boost/iterator/iterator_adaptor.hpp" 3 4 12329: template 12329: struct enable_if_convertible 12329: : iterators::enable_if< 12329: is_convertible 12329: , boost::iterators::detail::enable_type 12329: > 12329: {}; 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace detail 12329: { 12329: 12329: 12329: template 12329: struct ia_dflt_help 12329: : mpl::eval_if< 12329: is_same 12329: , DefaultNullaryFn 12329: , mpl::identity 12329: > 12329: { 12329: }; 12329: 12329: 12329: 12329: template < 12329: class Derived 12329: , class Base 12329: , class Value 12329: , class Traversal 12329: , class Reference 12329: , class Difference 12329: > 12329: struct iterator_adaptor_base 12329: { 12329: typedef iterator_facade< 12329: Derived 12329: 12329: 12329: , typename boost::iterators::detail::ia_dflt_help< 12329: Value 12329: , mpl::eval_if< 12329: is_same 12329: , iterator_value 12329: , remove_reference 12329: > 12329: >::type 12329: 12329: 12329: 12329: 12329: 12329: 12329: , typename boost::iterators::detail::ia_dflt_help< 12329: Traversal 12329: , iterator_traversal 12329: >::type 12329: 12329: , typename boost::iterators::detail::ia_dflt_help< 12329: Reference 12329: , mpl::eval_if< 12329: is_same 12329: , iterator_reference 12329: , add_reference 12329: > 12329: >::type 12329: 12329: , typename boost::iterators::detail::ia_dflt_help< 12329: Difference, iterator_difference 12329: >::type 12329: > 12329: type; 12329: }; 12329: 12329: 12329: template 12329: inline void iterator_adaptor_assert_traversal () 12329: { 12329: static_assert((is_convertible::value), "(is_convertible::value)"); 12329: } 12329: } 12329: # 241 "/usr/include/boost/iterator/iterator_adaptor.hpp" 3 4 12329: template < 12329: class Derived 12329: , class Base 12329: , class Value = use_default 12329: , class Traversal = use_default 12329: , class Reference = use_default 12329: , class Difference = use_default 12329: > 12329: class iterator_adaptor 12329: : public boost::iterators::detail::iterator_adaptor_base< 12329: Derived, Base, Value, Traversal, Reference, Difference 12329: >::type 12329: { 12329: friend class iterator_core_access; 12329: 12329: protected: 12329: typedef typename boost::iterators::detail::iterator_adaptor_base< 12329: Derived, Base, Value, Traversal, Reference, Difference 12329: >::type super_t; 12329: public: 12329: iterator_adaptor() {} 12329: 12329: explicit iterator_adaptor(Base const &iter) 12329: : m_iterator(iter) 12329: { 12329: } 12329: 12329: typedef Base base_type; 12329: 12329: Base const& base() const 12329: { return m_iterator; } 12329: 12329: protected: 12329: 12329: typedef iterator_adaptor iterator_adaptor_; 12329: 12329: 12329: 12329: 12329: Base const& base_reference() const 12329: { return m_iterator; } 12329: 12329: Base& base_reference() 12329: { return m_iterator; } 12329: 12329: private: 12329: 12329: 12329: 12329: 12329: 12329: 12329: typename super_t::reference dereference() const 12329: { return *m_iterator; } 12329: 12329: template < 12329: class OtherDerived, class OtherIterator, class V, class C, class R, class D 12329: > 12329: bool equal(iterator_adaptor const& x) const 12329: { 12329: 12329: 12329: 12329: 12329: return m_iterator == x.base(); 12329: } 12329: 12329: typedef typename iterator_category_to_traversal< 12329: typename super_t::iterator_category 12329: >::type my_traversal; 12329: 12329: 12329: 12329: 12329: void advance(typename super_t::difference_type n) 12329: { 12329: boost::iterators::detail::iterator_adaptor_assert_traversal(); 12329: m_iterator += n; 12329: } 12329: 12329: void increment() { ++m_iterator; } 12329: 12329: void decrement() 12329: { 12329: boost::iterators::detail::iterator_adaptor_assert_traversal(); 12329: --m_iterator; 12329: } 12329: 12329: template < 12329: class OtherDerived, class OtherIterator, class V, class C, class R, class D 12329: > 12329: typename super_t::difference_type distance_to( 12329: iterator_adaptor const& y) const 12329: { 12329: boost::iterators::detail::iterator_adaptor_assert_traversal(); 12329: 12329: 12329: 12329: 12329: return y.base() - m_iterator; 12329: } 12329: 12329: 12329: 12329: private: 12329: Base m_iterator; 12329: }; 12329: 12329: } 12329: 12329: using iterators::iterator_adaptor; 12329: using iterators::enable_if_convertible; 12329: 12329: } 12329: 12329: # 1 "/usr/include/boost/iterator/detail/config_undef.hpp" 1 3 4 12329: # 357 "/usr/include/boost/iterator/iterator_adaptor.hpp" 2 3 4 12329: # 11 "/usr/include/boost/iterator/reverse_iterator.hpp" 2 3 4 12329: 12329: namespace boost { 12329: namespace iterators { 12329: 12329: 12329: 12329: 12329: template 12329: class reverse_iterator 12329: : public iterator_adaptor< reverse_iterator, Iterator > 12329: { 12329: typedef iterator_adaptor< reverse_iterator, Iterator > super_t; 12329: 12329: friend class iterator_core_access; 12329: 12329: public: 12329: reverse_iterator() {} 12329: 12329: explicit reverse_iterator(Iterator x) 12329: : super_t(x) {} 12329: 12329: template 12329: reverse_iterator( 12329: reverse_iterator const& r 12329: , typename enable_if_convertible::type* = 0 12329: ) 12329: : super_t(r.base()) 12329: {} 12329: 12329: private: 12329: typename super_t::reference dereference() const 12329: { 12329: Iterator it = this->base_reference(); 12329: --it; 12329: return *it; 12329: } 12329: 12329: void increment() { --this->base_reference(); } 12329: void decrement() { ++this->base_reference(); } 12329: 12329: void advance(typename super_t::difference_type n) 12329: { 12329: this->base_reference() -= n; 12329: } 12329: 12329: template 12329: typename super_t::difference_type 12329: distance_to(reverse_iterator const& y) const 12329: { 12329: return this->base_reference() - y.base(); 12329: } 12329: }; 12329: 12329: template 12329: inline reverse_iterator make_reverse_iterator(BidirectionalIterator x) 12329: { 12329: return reverse_iterator(x); 12329: } 12329: 12329: } 12329: 12329: using iterators::reverse_iterator; 12329: using iterators::make_reverse_iterator; 12329: 12329: } 12329: # 22 "/usr/include/boost/range/reverse_iterator.hpp" 2 3 4 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: 12329: 12329: 12329: template< typename T > 12329: struct range_reverse_iterator 12329: { 12329: typedef reverse_iterator< 12329: typename range_iterator< 12329: typename remove_reference::type>::type > type; 12329: }; 12329: 12329: 12329: } 12329: # 20 "/usr/include/boost/range/rbegin.hpp" 2 3 4 12329: 12329: namespace boost 12329: { 12329: 12329: template< class C > 12329: inline typename range_reverse_iterator::type 12329: rbegin( C& c ) 12329: { 12329: typedef typename range_reverse_iterator::type 12329: iter_type; 12329: return iter_type( boost::end( c ) ); 12329: } 12329: 12329: template< class C > 12329: inline typename range_reverse_iterator::type 12329: rbegin( const C& c ) 12329: { 12329: typedef typename range_reverse_iterator::type 12329: iter_type; 12329: return iter_type( boost::end( c ) ); 12329: } 12329: 12329: template< class T > 12329: inline typename range_reverse_iterator::type 12329: const_rbegin( const T& r ) 12329: { 12329: return boost::rbegin( r ); 12329: } 12329: 12329: } 12329: # 24 "/usr/include/boost/range/functions.hpp" 2 3 4 12329: # 1 "/usr/include/boost/range/rend.hpp" 1 3 4 12329: # 21 "/usr/include/boost/range/rend.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: template< class C > 12329: inline typename range_reverse_iterator::type 12329: rend( C& c ) 12329: { 12329: typedef typename range_reverse_iterator::type 12329: iter_type; 12329: return iter_type( boost::begin( c ) ); 12329: } 12329: 12329: template< class C > 12329: inline typename range_reverse_iterator::type 12329: rend( const C& c ) 12329: { 12329: typedef typename range_reverse_iterator::type 12329: iter_type; 12329: return iter_type( boost::begin( c ) ); 12329: } 12329: 12329: template< class T > 12329: inline typename range_reverse_iterator::type 12329: const_rend( const T& r ) 12329: { 12329: return boost::rend( r ); 12329: } 12329: 12329: } 12329: # 25 "/usr/include/boost/range/functions.hpp" 2 3 4 12329: # 39 "/usr/include/boost/range/iterator_range_core.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/range/algorithm/equal.hpp" 1 3 4 12329: # 17 "/usr/include/boost/range/algorithm/equal.hpp" 3 4 12329: namespace boost 12329: { 12329: namespace range_detail 12329: { 12329: 12329: 12329: template< class SinglePassTraversalReadableIterator1, 12329: class SinglePassTraversalReadableIterator2, 12329: class IteratorCategoryTag1, 12329: class IteratorCategoryTag2 > 12329: inline bool equal_impl( SinglePassTraversalReadableIterator1 first1, 12329: SinglePassTraversalReadableIterator1 last1, 12329: SinglePassTraversalReadableIterator2 first2, 12329: SinglePassTraversalReadableIterator2 last2, 12329: IteratorCategoryTag1, 12329: IteratorCategoryTag2 ) 12329: { 12329: for (;;) 12329: { 12329: 12329: 12329: 12329: if (first1 == last1) 12329: return first2 == last2; 12329: 12329: 12329: 12329: 12329: if (first2 == last2) 12329: return false; 12329: 12329: 12329: if (*first1 != *first2) 12329: break; 12329: 12329: ++first1; 12329: ++first2; 12329: } 12329: 12329: 12329: 12329: return false; 12329: } 12329: 12329: template< class SinglePassTraversalReadableIterator1, 12329: class SinglePassTraversalReadableIterator2, 12329: class IteratorCategoryTag1, 12329: class IteratorCategoryTag2, 12329: class BinaryPredicate > 12329: inline bool equal_impl( SinglePassTraversalReadableIterator1 first1, 12329: SinglePassTraversalReadableIterator1 last1, 12329: SinglePassTraversalReadableIterator2 first2, 12329: SinglePassTraversalReadableIterator2 last2, 12329: BinaryPredicate pred, 12329: IteratorCategoryTag1, 12329: IteratorCategoryTag2 ) 12329: { 12329: for (;;) 12329: { 12329: 12329: 12329: 12329: if (first1 == last1) 12329: return first2 == last2; 12329: 12329: 12329: 12329: 12329: if (first2 == last2) 12329: return false; 12329: 12329: 12329: if (!pred(*first1, *first2)) 12329: break; 12329: 12329: ++first1; 12329: ++first2; 12329: } 12329: 12329: 12329: 12329: return false; 12329: } 12329: 12329: 12329: 12329: template< class RandomAccessTraversalReadableIterator1, 12329: class RandomAccessTraversalReadableIterator2 > 12329: inline bool equal_impl( RandomAccessTraversalReadableIterator1 first1, 12329: RandomAccessTraversalReadableIterator1 last1, 12329: RandomAccessTraversalReadableIterator2 first2, 12329: RandomAccessTraversalReadableIterator2 last2, 12329: std::random_access_iterator_tag, 12329: std::random_access_iterator_tag ) 12329: { 12329: return ((last1 - first1) == (last2 - first2)) 12329: && std::equal(first1, last1, first2); 12329: } 12329: 12329: template< class RandomAccessTraversalReadableIterator1, 12329: class RandomAccessTraversalReadableIterator2, 12329: class BinaryPredicate > 12329: inline bool equal_impl( RandomAccessTraversalReadableIterator1 first1, 12329: RandomAccessTraversalReadableIterator1 last1, 12329: RandomAccessTraversalReadableIterator2 first2, 12329: RandomAccessTraversalReadableIterator2 last2, 12329: BinaryPredicate pred, 12329: std::random_access_iterator_tag, 12329: std::random_access_iterator_tag ) 12329: { 12329: return ((last1 - first1) == (last2 - first2)) 12329: && std::equal(first1, last1, first2, pred); 12329: } 12329: 12329: template< class SinglePassTraversalReadableIterator1, 12329: class SinglePassTraversalReadableIterator2 > 12329: inline bool equal( SinglePassTraversalReadableIterator1 first1, 12329: SinglePassTraversalReadableIterator1 last1, 12329: SinglePassTraversalReadableIterator2 first2, 12329: SinglePassTraversalReadableIterator2 last2 ) 12329: { 12329: typename std::iterator_traits< SinglePassTraversalReadableIterator1 >::iterator_category tag1; 12329: typename std::iterator_traits< SinglePassTraversalReadableIterator2 >::iterator_category tag2; 12329: 12329: return equal_impl(first1, last1, first2, last2, tag1, tag2); 12329: } 12329: 12329: template< class SinglePassTraversalReadableIterator1, 12329: class SinglePassTraversalReadableIterator2, 12329: class BinaryPredicate > 12329: inline bool equal( SinglePassTraversalReadableIterator1 first1, 12329: SinglePassTraversalReadableIterator1 last1, 12329: SinglePassTraversalReadableIterator2 first2, 12329: SinglePassTraversalReadableIterator2 last2, 12329: BinaryPredicate pred ) 12329: { 12329: typename std::iterator_traits< SinglePassTraversalReadableIterator1 >::iterator_category tag1; 12329: typename std::iterator_traits< SinglePassTraversalReadableIterator2 >::iterator_category tag2; 12329: 12329: return equal_impl(first1, last1, first2, last2, pred, tag1, tag2); 12329: } 12329: 12329: } 12329: 12329: namespace range 12329: { 12329: # 171 "/usr/include/boost/range/algorithm/equal.hpp" 3 4 12329: template< class SinglePassRange1, class SinglePassRange2 > 12329: inline bool equal( const SinglePassRange1& rng1, const SinglePassRange2& rng2 ) 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_ )>::failed> boost_concept_check174 __attribute__((__unused__)); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_ )>::failed> boost_concept_check175 __attribute__((__unused__)); 12329: 12329: return ::boost::range_detail::equal( 12329: ::boost::begin(rng1), ::boost::end(rng1), 12329: ::boost::begin(rng2), ::boost::end(rng2) ); 12329: } 12329: 12329: 12329: template< class SinglePassRange1, class SinglePassRange2, class BinaryPredicate > 12329: inline bool equal( const SinglePassRange1& rng1, const SinglePassRange2& rng2, 12329: BinaryPredicate pred ) 12329: { 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_ )>::failed> boost_concept_check187 __attribute__((__unused__)); 12329: typedef ::boost::concepts::detail::instantiate< &::boost::concepts::requirement_ )>::failed> boost_concept_check188 __attribute__((__unused__)); 12329: 12329: return ::boost::range_detail::equal( 12329: ::boost::begin(rng1), ::boost::end(rng1), 12329: ::boost::begin(rng2), ::boost::end(rng2), 12329: pred); 12329: } 12329: 12329: } 12329: using ::boost::range::equal; 12329: } 12329: # 43 "/usr/include/boost/range/iterator_range_core.hpp" 2 3 4 12329: # 1 "/usr/include/boost/range/detail/safe_bool.hpp" 1 3 4 12329: # 16 "/usr/include/boost/range/detail/safe_bool.hpp" 3 4 12329: namespace boost 12329: { 12329: namespace range_detail 12329: { 12329: 12329: template 12329: class safe_bool 12329: { 12329: public: 12329: typedef safe_bool this_type; 12329: # 56 "/usr/include/boost/range/detail/safe_bool.hpp" 3 4 12329: typedef DataMemberPtr unspecified_bool_type; 12329: static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr p) 12329: { 12329: return x ? p : 0; 12329: } 12329: 12329: private: 12329: safe_bool(); 12329: safe_bool(const safe_bool&); 12329: void operator=(const safe_bool&); 12329: ~safe_bool(); 12329: }; 12329: 12329: } 12329: } 12329: # 44 "/usr/include/boost/range/iterator_range_core.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/next_prior.hpp" 1 3 4 12329: # 21 "/usr/include/boost/next_prior.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/has_plus.hpp" 1 3 4 12329: # 48 "/usr/include/boost/type_traits/has_plus.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 1 3 4 12329: # 25 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 3 4 12329: 12329: # 26 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 3 12329: # 37 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 3 12329: # 1 "/usr/include/boost/type_traits/make_void.hpp" 1 3 4 12329: # 15 "/usr/include/boost/type_traits/make_void.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: template 12329: struct make_void { 12329: typedef void type; 12329: }; 12329: 12329: 12329: template 12329: using void_t = typename make_void::type; 12329: # 50 "/usr/include/boost/type_traits/make_void.hpp" 3 4 12329: } 12329: # 38 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 2 3 12329: 12329: 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: namespace binary_op_detail { 12329: 12329: struct dont_care; 12329: 12329: template 12329: struct has_plus_ret_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_plus_ret_imp::type>() + std::declval::type>())>::type> 12329: : public boost::integral_constant::type>() + std::declval::type>()), Ret>::value> {}; 12329: 12329: template 12329: struct has_plus_void_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_plus_void_imp::type>() + std::declval::type>())>::type> 12329: : public boost::integral_constant::type>() + std::declval::type>())>::value> {}; 12329: 12329: template 12329: struct has_plus_dc_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_plus_dc_imp::type>() + std::declval::type>())>::type> 12329: : public boost::true_type {}; 12329: 12329: } 12329: 12329: template 12329: struct has_plus : public boost::binary_op_detail:: has_plus_ret_imp {}; 12329: template 12329: struct has_plus : public boost::binary_op_detail:: has_plus_void_imp {}; 12329: template 12329: struct has_plus : public boost::binary_op_detail:: has_plus_dc_imp {}; 12329: 12329: 12329: } 12329: # 49 "/usr/include/boost/type_traits/has_plus.hpp" 2 3 4 12329: # 22 "/usr/include/boost/next_prior.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/has_plus_assign.hpp" 1 3 4 12329: # 28 "/usr/include/boost/type_traits/has_plus_assign.hpp" 3 4 12329: 12329: # 29 "/usr/include/boost/type_traits/has_plus_assign.hpp" 3 12329: # 52 "/usr/include/boost/type_traits/has_plus_assign.hpp" 3 12329: namespace boost 12329: { 12329: 12329: namespace binary_op_detail { 12329: 12329: struct dont_care; 12329: 12329: template 12329: struct has_plus_assign_ret_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_plus_assign_ret_imp::type>() += std::declval::type>())>::type> 12329: : public boost::integral_constant::type>() += std::declval::type>()), Ret>::value> {}; 12329: 12329: template 12329: struct has_plus_assign_void_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_plus_assign_void_imp::type>() += std::declval::type>())>::type> 12329: : public boost::integral_constant::type>() += std::declval::type>())>::value> {}; 12329: 12329: template 12329: struct has_plus_assign_dc_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_plus_assign_dc_imp::type>() += std::declval::type>())>::type> 12329: : public boost::true_type {}; 12329: 12329: template 12329: struct has_plus_assign_filter_ret : public boost::binary_op_detail:: has_plus_assign_ret_imp {}; 12329: template 12329: struct has_plus_assign_filter_ret : public boost::binary_op_detail:: has_plus_assign_void_imp {}; 12329: template 12329: struct has_plus_assign_filter_ret : public boost::binary_op_detail:: has_plus_assign_dc_imp {}; 12329: 12329: template 12329: struct has_plus_assign_filter_impossible : public boost::binary_op_detail:: has_plus_assign_filter_ret {}; 12329: template 12329: struct has_plus_assign_filter_impossible : public boost::false_type {}; 12329: 12329: } 12329: 12329: template 12329: struct has_plus_assign : public boost::binary_op_detail:: has_plus_assign_filter_impossible ::type>::value && boost::is_pointer::type>::value && !boost::is_same::type>::type>::value> {}; 12329: 12329: } 12329: # 23 "/usr/include/boost/next_prior.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/has_minus.hpp" 1 3 4 12329: # 28 "/usr/include/boost/type_traits/has_minus.hpp" 3 4 12329: 12329: # 29 "/usr/include/boost/type_traits/has_minus.hpp" 3 12329: # 48 "/usr/include/boost/type_traits/has_minus.hpp" 3 12329: namespace boost 12329: { 12329: 12329: namespace binary_op_detail { 12329: 12329: struct dont_care; 12329: 12329: template 12329: struct has_minus_ret_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_minus_ret_imp::type>() - std::declval::type>())>::type> 12329: : public boost::integral_constant::type>() - std::declval::type>()), Ret>::value> {}; 12329: 12329: template 12329: struct has_minus_void_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_minus_void_imp::type>() - std::declval::type>())>::type> 12329: : public boost::integral_constant::type>() - std::declval::type>())>::value> {}; 12329: 12329: template 12329: struct has_minus_dc_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_minus_dc_imp::type>() - std::declval::type>())>::type> 12329: : public boost::true_type {}; 12329: 12329: template 12329: struct has_minus_ret_filter : public boost::binary_op_detail::has_minus_ret_imp {}; 12329: template 12329: struct has_minus_ret_filter : public boost::binary_op_detail::has_minus_void_imp {}; 12329: template 12329: struct has_minus_ret_filter : public boost::binary_op_detail::has_minus_dc_imp {}; 12329: 12329: template 12329: struct has_minus_void_ptr_filter : public boost::binary_op_detail::has_minus_ret_filter {}; 12329: template 12329: struct has_minus_void_ptr_filter : public boost::false_type {}; 12329: 12329: } 12329: 12329: template 12329: struct has_minus : 12329: public boost::binary_op_detail::has_minus_void_ptr_filter< 12329: T, U, Ret, 12329: boost::is_void::type>::type>::value 12329: || boost::is_void::type>::type>::value> {}; 12329: 12329: 12329: } 12329: # 24 "/usr/include/boost/next_prior.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/has_minus_assign.hpp" 1 3 4 12329: # 28 "/usr/include/boost/type_traits/has_minus_assign.hpp" 3 4 12329: 12329: # 29 "/usr/include/boost/type_traits/has_minus_assign.hpp" 3 12329: # 49 "/usr/include/boost/type_traits/has_minus_assign.hpp" 3 12329: namespace boost 12329: { 12329: 12329: namespace binary_op_detail { 12329: 12329: struct dont_care; 12329: 12329: template 12329: struct has_minus_assign_ret_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_minus_assign_ret_imp::type>() -= std::declval::type>())>::type> 12329: : public boost::integral_constant::type>() -= std::declval::type>()), Ret>::value> {}; 12329: 12329: template 12329: struct has_minus_assign_void_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_minus_assign_void_imp::type>() -= std::declval::type>())>::type> 12329: : public boost::integral_constant::type>() -= std::declval::type>())>::value> {}; 12329: 12329: template 12329: struct has_minus_assign_dc_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_minus_assign_dc_imp::type>() -= std::declval::type>())>::type> 12329: : public boost::true_type {}; 12329: 12329: template 12329: struct has_minus_assign_ret_filter : public boost::binary_op_detail::has_minus_assign_ret_imp {}; 12329: template 12329: struct has_minus_assign_ret_filter : public boost::binary_op_detail::has_minus_assign_void_imp {}; 12329: template 12329: struct has_minus_assign_ret_filter : public boost::binary_op_detail::has_minus_assign_dc_imp {}; 12329: 12329: template 12329: struct has_minus_assign_void_ptr_filter : public boost::binary_op_detail::has_minus_assign_ret_filter {}; 12329: template 12329: struct has_minus_assign_void_ptr_filter : public boost::false_type {}; 12329: 12329: } 12329: 12329: template 12329: struct has_minus_assign : 12329: public boost::binary_op_detail::has_minus_assign_void_ptr_filter< 12329: T, U, Ret, 12329: boost::is_void::type>::type>::value 12329: || boost::is_void::type>::type>::value 12329: || (boost::is_pointer::type>::value && boost::is_pointer::type>::value)> {}; 12329: 12329: 12329: } 12329: # 25 "/usr/include/boost/next_prior.hpp" 2 3 4 12329: # 1 "/usr/include/boost/iterator/advance.hpp" 1 3 4 12329: # 13 "/usr/include/boost/iterator/advance.hpp" 3 4 12329: namespace boost { 12329: namespace iterators { 12329: 12329: namespace detail { 12329: template 12329: inline constexpr void 12329: advance_impl( 12329: InputIterator& it 12329: , Distance n 12329: , incrementable_traversal_tag 12329: ) 12329: { 12329: while (n > 0) { 12329: ++it; 12329: --n; 12329: } 12329: } 12329: 12329: template 12329: inline constexpr void 12329: advance_impl( 12329: BidirectionalIterator& it 12329: , Distance n 12329: , bidirectional_traversal_tag 12329: ) 12329: { 12329: if (n >= 0) { 12329: while (n > 0) { 12329: ++it; 12329: --n; 12329: } 12329: } 12329: else { 12329: while (n < 0) { 12329: --it; 12329: ++n; 12329: } 12329: } 12329: } 12329: 12329: template 12329: inline constexpr void 12329: advance_impl( 12329: RandomAccessIterator& it 12329: , Distance n 12329: , random_access_traversal_tag 12329: ) 12329: { 12329: it += n; 12329: } 12329: } 12329: 12329: namespace advance_adl_barrier { 12329: template 12329: inline constexpr void 12329: advance(InputIterator& it, Distance n) 12329: { 12329: detail::advance_impl( 12329: it, n, typename iterator_traversal::type() 12329: ); 12329: } 12329: } 12329: 12329: using namespace advance_adl_barrier; 12329: 12329: } 12329: 12329: using namespace iterators::advance_adl_barrier; 12329: 12329: } 12329: # 26 "/usr/include/boost/next_prior.hpp" 2 3 4 12329: 12329: 12329: namespace boost { 12329: # 40 "/usr/include/boost/next_prior.hpp" 3 4 12329: namespace next_prior_detail { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template< typename T, typename Void = void > 12329: struct is_iterator_class 12329: { 12329: static constexpr bool value = false; 12329: }; 12329: 12329: template< typename T > 12329: struct is_iterator_class< 12329: T, 12329: typename enable_if_has_type< 12329: 12329: typename std::iterator_traits< T >::iterator_category 12329: 12329: 12329: 12329: >::type 12329: > 12329: { 12329: static constexpr bool value = true; 12329: }; 12329: 12329: template< typename T > 12329: struct is_iterator : 12329: public is_iterator_class< T > 12329: { 12329: }; 12329: 12329: template< typename T > 12329: struct is_iterator< T* > 12329: { 12329: static constexpr bool value = true; 12329: }; 12329: 12329: 12329: template< typename T, typename Distance, bool HasPlus = has_plus< T, Distance >::value > 12329: struct next_plus_impl; 12329: 12329: template< typename T, typename Distance > 12329: struct next_plus_impl< T, Distance, true > 12329: { 12329: static T call(T x, Distance n) 12329: { 12329: return x + n; 12329: } 12329: }; 12329: 12329: template< typename T, typename Distance, bool HasPlusAssign = has_plus_assign< T, Distance >::value > 12329: struct next_plus_assign_impl : 12329: public next_plus_impl< T, Distance > 12329: { 12329: }; 12329: 12329: template< typename T, typename Distance > 12329: struct next_plus_assign_impl< T, Distance, true > 12329: { 12329: static T call(T x, Distance n) 12329: { 12329: x += n; 12329: return x; 12329: } 12329: }; 12329: 12329: template< typename T, typename Distance, bool IsIterator = is_iterator< T >::value > 12329: struct next_advance_impl : 12329: public next_plus_assign_impl< T, Distance > 12329: { 12329: }; 12329: 12329: template< typename T, typename Distance > 12329: struct next_advance_impl< T, Distance, true > 12329: { 12329: static T call(T x, Distance n) 12329: { 12329: boost::iterators::advance(x, n); 12329: return x; 12329: } 12329: }; 12329: 12329: 12329: template< typename T, typename Distance, bool HasMinus = has_minus< T, Distance >::value > 12329: struct prior_minus_impl; 12329: 12329: template< typename T, typename Distance > 12329: struct prior_minus_impl< T, Distance, true > 12329: { 12329: static T call(T x, Distance n) 12329: { 12329: return x - n; 12329: } 12329: }; 12329: 12329: template< typename T, typename Distance, bool HasMinusAssign = has_minus_assign< T, Distance >::value > 12329: struct prior_minus_assign_impl : 12329: public prior_minus_impl< T, Distance > 12329: { 12329: }; 12329: 12329: template< typename T, typename Distance > 12329: struct prior_minus_assign_impl< T, Distance, true > 12329: { 12329: static T call(T x, Distance n) 12329: { 12329: x -= n; 12329: return x; 12329: } 12329: }; 12329: 12329: template< typename T, typename Distance, bool IsIterator = is_iterator< T >::value > 12329: struct prior_advance_impl : 12329: public prior_minus_assign_impl< T, Distance > 12329: { 12329: }; 12329: 12329: template< typename T, typename Distance > 12329: struct prior_advance_impl< T, Distance, true > 12329: { 12329: static T call(T x, Distance n) 12329: { 12329: 12329: boost::iterators::reverse_iterator< T > rx(x); 12329: boost::iterators::advance(rx, n); 12329: return rx.base(); 12329: } 12329: }; 12329: 12329: } 12329: 12329: template 12329: inline T next(T x) { return ++x; } 12329: 12329: template 12329: inline T next(T x, Distance n) 12329: { 12329: return next_prior_detail::next_advance_impl< T, Distance >::call(x, n); 12329: } 12329: 12329: template 12329: inline T prior(T x) { return --x; } 12329: 12329: template 12329: inline T prior(T x, Distance n) 12329: { 12329: return next_prior_detail::prior_advance_impl< T, Distance >::call(x, n); 12329: } 12329: 12329: } 12329: # 46 "/usr/include/boost/range/iterator_range_core.hpp" 2 3 4 12329: # 57 "/usr/include/boost/range/iterator_range_core.hpp" 3 4 12329: namespace boost 12329: { 12329: namespace iterator_range_detail 12329: { 12329: 12329: 12329: 12329: 12329: template 12329: struct iterator_range_impl { 12329: template< class ForwardRange > 12329: static IteratorT adl_begin( ForwardRange& r ) 12329: { 12329: return IteratorT( boost::begin( r ) ); 12329: } 12329: 12329: template< class ForwardRange > 12329: static IteratorT adl_end( ForwardRange& r ) 12329: { 12329: return IteratorT( boost::end( r ) ); 12329: } 12329: }; 12329: 12329: template< class Left, class Right > 12329: inline bool less_than( const Left& l, const Right& r ) 12329: { 12329: return std::lexicographical_compare( boost::begin(l), 12329: boost::end(l), 12329: boost::begin(r), 12329: boost::end(r) ); 12329: } 12329: 12329: template< class Left, class Right > 12329: inline bool greater_than( const Left& l, const Right& r ) 12329: { 12329: return iterator_range_detail::less_than(r,l); 12329: } 12329: 12329: template< class Left, class Right > 12329: inline bool less_or_equal_than( const Left& l, const Right& r ) 12329: { 12329: return !iterator_range_detail::less_than(r,l); 12329: } 12329: 12329: template< class Left, class Right > 12329: inline bool greater_or_equal_than( const Left& l, const Right& r ) 12329: { 12329: return !iterator_range_detail::less_than(l,r); 12329: } 12329: 12329: 12329: 12329: template< class Left, class Right > 12329: inline bool equal(const Left& l, const Right& r) 12329: { 12329: return boost::equal(l, r); 12329: } 12329: 12329: struct range_tag 12329: { 12329: }; 12329: 12329: struct const_range_tag 12329: { 12329: }; 12329: 12329: struct iterator_range_tag 12329: { 12329: }; 12329: 12329: typedef char (&incrementable_t)[1]; 12329: typedef char (&bidirectional_t)[2]; 12329: typedef char (&random_access_t)[3]; 12329: 12329: incrementable_t test_traversal_tag(boost::incrementable_traversal_tag); 12329: bidirectional_t test_traversal_tag(boost::bidirectional_traversal_tag); 12329: random_access_t test_traversal_tag(boost::random_access_traversal_tag); 12329: 12329: template 12329: struct pure_iterator_traversal_impl 12329: { 12329: typedef boost::incrementable_traversal_tag type; 12329: }; 12329: 12329: template<> 12329: struct pure_iterator_traversal_impl 12329: { 12329: typedef boost::bidirectional_traversal_tag type; 12329: }; 12329: 12329: template<> 12329: struct pure_iterator_traversal_impl 12329: { 12329: typedef boost::random_access_traversal_tag type; 12329: }; 12329: 12329: template 12329: struct pure_iterator_traversal 12329: { 12329: typedef 12329: typename iterator_traversal::type 12329: traversal_t; 12329: static const std::size_t traversal_i = sizeof(iterator_range_detail::test_traversal_tag((traversal_t()))) 12329: 12329: 12329: ; 12329: typedef 12329: typename pure_iterator_traversal_impl::type 12329: type; 12329: }; 12329: 12329: template 12329: class iterator_range_base 12329: : public iterator_range_tag 12329: { 12329: typedef range_detail::safe_bool< 12329: IteratorT iterator_range_base::* 12329: > safe_bool_t; 12329: 12329: typedef iterator_range_base type; 12329: 12329: protected: 12329: typedef iterator_range_impl impl; 12329: 12329: public: 12329: typedef typename 12329: safe_bool_t::unspecified_bool_type unspecified_bool_type; 12329: 12329: typedef typename 12329: iterator_value::type value_type; 12329: 12329: typedef typename 12329: iterator_difference::type difference_type; 12329: 12329: typedef std::size_t size_type; 12329: 12329: 12329: 12329: typedef typename 12329: iterator_reference::type reference; 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef IteratorT const_iterator; 12329: 12329: typedef IteratorT iterator; 12329: 12329: protected: 12329: iterator_range_base() 12329: : m_Begin() 12329: , m_End() 12329: { 12329: } 12329: 12329: template 12329: iterator_range_base(Iterator Begin, Iterator End) 12329: : m_Begin(Begin) 12329: , m_End(End) 12329: { 12329: } 12329: 12329: public: 12329: IteratorT begin() const 12329: { 12329: return m_Begin; 12329: } 12329: 12329: IteratorT end() const 12329: { 12329: return m_End; 12329: } 12329: 12329: bool empty() const 12329: { 12329: return m_Begin == m_End; 12329: } 12329: 12329: operator unspecified_bool_type() const 12329: { 12329: return safe_bool_t::to_unspecified_bool( 12329: m_Begin != m_End, &iterator_range_base::m_Begin); 12329: } 12329: 12329: bool operator!() const 12329: { 12329: return empty(); 12329: } 12329: 12329: bool equal(const iterator_range_base& r) const 12329: { 12329: return m_Begin == r.m_Begin && m_End == r.m_End; 12329: } 12329: 12329: reference front() const 12329: { 12329: (static_cast (0)); 12329: return *m_Begin; 12329: } 12329: 12329: void drop_front() 12329: { 12329: (static_cast (0)); 12329: ++m_Begin; 12329: } 12329: 12329: void drop_front(difference_type n) 12329: { 12329: (static_cast (0)); 12329: std::advance(this->m_Begin, n); 12329: } 12329: 12329: 12329: void pop_front() { drop_front(); } 12329: 12329: protected: 12329: template 12329: void assign(Iterator first, Iterator last) 12329: { 12329: m_Begin = first; 12329: m_End = last; 12329: } 12329: 12329: template 12329: void assign(const SinglePassRange& r) 12329: { 12329: m_Begin = impl::adl_begin(r); 12329: m_End = impl::adl_end(r); 12329: } 12329: 12329: template 12329: void assign(SinglePassRange& r) 12329: { 12329: m_Begin = impl::adl_begin(r); 12329: m_End = impl::adl_end(r); 12329: } 12329: 12329: IteratorT m_Begin; 12329: IteratorT m_End; 12329: }; 12329: 12329: template 12329: class iterator_range_base 12329: : public iterator_range_base 12329: { 12329: typedef iterator_range_base base_type; 12329: 12329: protected: 12329: iterator_range_base() 12329: { 12329: } 12329: 12329: template 12329: iterator_range_base(Iterator first, Iterator last) 12329: : base_type(first, last) 12329: { 12329: } 12329: 12329: public: 12329: typedef typename base_type::difference_type difference_type; 12329: typedef typename base_type::reference reference; 12329: 12329: reference back() const 12329: { 12329: (static_cast (0)); 12329: return *boost::prior(this->m_End); 12329: } 12329: 12329: void drop_back() 12329: { 12329: (static_cast (0)); 12329: --this->m_End; 12329: } 12329: 12329: void drop_back(difference_type n) 12329: { 12329: (static_cast (0)); 12329: std::advance(this->m_End, -n); 12329: } 12329: 12329: 12329: void pop_back() { drop_back(); } 12329: }; 12329: 12329: template 12329: class iterator_range_base 12329: : public iterator_range_base 12329: { 12329: typedef iterator_range_base< 12329: IteratorT, bidirectional_traversal_tag> base_type; 12329: 12329: public: 12329: typedef typename 12329: boost::mpl::if_< 12329: boost::mpl::or_< 12329: boost::is_abstract< 12329: typename base_type::value_type 12329: >, 12329: boost::is_array< 12329: typename base_type::value_type 12329: >, 12329: boost::is_function< 12329: typename base_type::value_type 12329: > 12329: >, 12329: typename base_type::reference, 12329: typename base_type::value_type 12329: >::type abstract_value_type; 12329: 12329: 12329: 12329: 12329: typedef typename base_type::difference_type difference_type; 12329: typedef typename base_type::size_type size_type; 12329: typedef typename base_type::reference reference; 12329: 12329: protected: 12329: iterator_range_base() 12329: { 12329: } 12329: 12329: template 12329: iterator_range_base(Iterator first, Iterator last) 12329: : base_type(first, last) 12329: { 12329: } 12329: 12329: public: 12329: reference operator[](difference_type at) const 12329: { 12329: (static_cast (0)); 12329: (static_cast (0)); 12329: return this->m_Begin[at]; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: abstract_value_type operator()(difference_type at) const 12329: { 12329: (static_cast (0)); 12329: (static_cast (0)); 12329: return this->m_Begin[at]; 12329: } 12329: 12329: typename base_type::size_type size() const 12329: { 12329: return this->m_End - this->m_Begin; 12329: } 12329: }; 12329: 12329: } 12329: # 433 "/usr/include/boost/range/iterator_range_core.hpp" 3 4 12329: template 12329: class iterator_range 12329: : public iterator_range_detail::iterator_range_base< 12329: IteratorT, 12329: typename iterator_range_detail::pure_iterator_traversal::type 12329: > 12329: { 12329: typedef iterator_range_detail::iterator_range_base< 12329: IteratorT, 12329: typename iterator_range_detail::pure_iterator_traversal::type 12329: > base_type; 12329: 12329: template 12329: struct is_compatible_range_ 12329: : is_convertible< 12329: typename mpl::eval_if< 12329: has_range_iterator, 12329: range_iterator, 12329: mpl::identity 12329: >::type, 12329: typename base_type::iterator 12329: > 12329: { 12329: }; 12329: 12329: template 12329: struct is_compatible_range 12329: : mpl::and_< 12329: mpl::not_< 12329: is_convertible< 12329: Source, 12329: typename base_type::iterator 12329: > 12329: >, 12329: is_compatible_range_ 12329: > 12329: { 12329: }; 12329: 12329: protected: 12329: typedef iterator_range_detail::iterator_range_impl impl; 12329: 12329: public: 12329: typedef iterator_range type; 12329: 12329: iterator_range() 12329: { 12329: } 12329: 12329: template 12329: iterator_range(Iterator first, Iterator last) 12329: : base_type(first, last) 12329: { 12329: } 12329: 12329: template 12329: iterator_range( 12329: const SinglePassRange& r, 12329: typename ::boost::enable_if< 12329: is_compatible_range 12329: >::type* = 0 12329: ) 12329: : base_type(impl::adl_begin(r), impl::adl_end(r)) 12329: { 12329: } 12329: 12329: template 12329: iterator_range( 12329: SinglePassRange& r, 12329: typename ::boost::enable_if< 12329: is_compatible_range 12329: >::type* = 0 12329: ) 12329: : base_type(impl::adl_begin(r), impl::adl_end(r)) 12329: { 12329: } 12329: 12329: template 12329: iterator_range(const SinglePassRange& r, 12329: iterator_range_detail::const_range_tag) 12329: : base_type(impl::adl_begin(r), impl::adl_end(r)) 12329: { 12329: } 12329: 12329: template 12329: iterator_range(SinglePassRange& r, 12329: iterator_range_detail::range_tag) 12329: : base_type(impl::adl_begin(r), impl::adl_end(r)) 12329: { 12329: } 12329: 12329: template 12329: iterator_range& operator=(const iterator_range& other) 12329: { 12329: this->assign(other.begin(), other.end()); 12329: return *this; 12329: } 12329: 12329: template 12329: iterator_range& operator=(iterator_range& other) 12329: { 12329: this->assign(other.begin(), other.end()); 12329: return *this; 12329: } 12329: 12329: template 12329: iterator_range& operator=(SinglePassRange& r) 12329: { 12329: this->assign(r); 12329: return *this; 12329: } 12329: 12329: template 12329: iterator_range& operator=(const SinglePassRange& r) 12329: { 12329: this->assign(r); 12329: return *this; 12329: } 12329: 12329: iterator_range& advance_begin( 12329: typename base_type::difference_type n) 12329: { 12329: std::advance(this->m_Begin, n); 12329: return *this; 12329: } 12329: 12329: iterator_range& advance_end( 12329: typename base_type::difference_type n) 12329: { 12329: std::advance(this->m_End, n); 12329: return *this; 12329: } 12329: 12329: protected: 12329: 12329: 12329: 12329: 12329: typedef iterator_range iterator_range_; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template< class IteratorT, class ForwardRange > 12329: inline typename boost::enable_if< 12329: mpl::not_ >, 12329: bool 12329: >::type 12329: operator==( const ForwardRange& l, const iterator_range& r ) 12329: { 12329: return boost::equal( l, r ); 12329: } 12329: 12329: template< class IteratorT, class ForwardRange > 12329: inline typename boost::enable_if< 12329: mpl::not_ >, 12329: bool 12329: >::type 12329: operator!=( const ForwardRange& l, const iterator_range& r ) 12329: { 12329: return !boost::equal( l, r ); 12329: } 12329: 12329: template< class IteratorT, class ForwardRange > 12329: inline typename boost::enable_if< 12329: mpl::not_ >, 12329: bool 12329: >::type 12329: operator<( const ForwardRange& l, const iterator_range& r ) 12329: { 12329: return iterator_range_detail::less_than( l, r ); 12329: } 12329: 12329: template< class IteratorT, class ForwardRange > 12329: inline typename boost::enable_if< 12329: mpl::not_ >, 12329: bool 12329: >::type 12329: operator<=( const ForwardRange& l, const iterator_range& r ) 12329: { 12329: return iterator_range_detail::less_or_equal_than( l, r ); 12329: } 12329: 12329: template< class IteratorT, class ForwardRange > 12329: inline typename boost::enable_if< 12329: mpl::not_ >, 12329: bool 12329: >::type 12329: operator>( const ForwardRange& l, const iterator_range& r ) 12329: { 12329: return iterator_range_detail::greater_than( l, r ); 12329: } 12329: 12329: template< class IteratorT, class ForwardRange > 12329: inline typename boost::enable_if< 12329: mpl::not_ >, 12329: bool 12329: >::type 12329: operator>=( const ForwardRange& l, const iterator_range& r ) 12329: { 12329: return iterator_range_detail::greater_or_equal_than( l, r ); 12329: } 12329: 12329: template< class Iterator1T, class Iterator2T > 12329: inline bool 12329: operator==( const iterator_range& l, const iterator_range& r ) 12329: { 12329: return boost::equal( l, r ); 12329: } 12329: 12329: template< class IteratorT, class ForwardRange > 12329: inline typename boost::enable_if< 12329: mpl::not_ >, 12329: bool 12329: >::type 12329: operator==( const iterator_range& l, const ForwardRange& r ) 12329: { 12329: return boost::equal( l, r ); 12329: } 12329: 12329: 12329: template< class Iterator1T, class Iterator2T > 12329: inline bool 12329: operator!=( const iterator_range& l, const iterator_range& r ) 12329: { 12329: return !boost::equal( l, r ); 12329: } 12329: 12329: template< class IteratorT, class ForwardRange > 12329: inline typename boost::enable_if< 12329: mpl::not_ >, 12329: bool 12329: >::type 12329: operator!=( const iterator_range& l, const ForwardRange& r ) 12329: { 12329: return !boost::equal( l, r ); 12329: } 12329: 12329: 12329: template< class Iterator1T, class Iterator2T > 12329: inline bool 12329: operator<( const iterator_range& l, const iterator_range& r ) 12329: { 12329: return iterator_range_detail::less_than( l, r ); 12329: } 12329: 12329: template< class IteratorT, class ForwardRange > 12329: inline typename boost::enable_if< 12329: mpl::not_ >, 12329: bool 12329: >::type 12329: operator<( const iterator_range& l, const ForwardRange& r ) 12329: { 12329: return iterator_range_detail::less_than( l, r ); 12329: } 12329: 12329: template< class Iterator1T, class Iterator2T > 12329: inline bool 12329: operator<=( const iterator_range& l, const iterator_range& r ) 12329: { 12329: return iterator_range_detail::less_or_equal_than( l, r ); 12329: } 12329: 12329: template< class IteratorT, class ForwardRange > 12329: inline typename boost::enable_if< 12329: mpl::not_ >, 12329: bool 12329: >::type 12329: operator<=( const iterator_range& l, const ForwardRange& r ) 12329: { 12329: return iterator_range_detail::less_or_equal_than( l, r ); 12329: } 12329: 12329: template< class Iterator1T, class Iterator2T > 12329: inline bool 12329: operator>( const iterator_range& l, const iterator_range& r ) 12329: { 12329: return iterator_range_detail::greater_than( l, r ); 12329: } 12329: 12329: template< class IteratorT, class ForwardRange > 12329: inline typename boost::enable_if< 12329: mpl::not_ >, 12329: bool 12329: >::type 12329: operator>( const iterator_range& l, const ForwardRange& r ) 12329: { 12329: return iterator_range_detail::greater_than( l, r ); 12329: } 12329: 12329: template< class Iterator1T, class Iterator2T > 12329: inline bool 12329: operator>=( const iterator_range& l, const iterator_range& r ) 12329: { 12329: return iterator_range_detail::greater_or_equal_than( l, r ); 12329: } 12329: 12329: template< class IteratorT, class ForwardRange > 12329: inline typename boost::enable_if< 12329: mpl::not_ >, 12329: bool 12329: >::type 12329: operator>=( const iterator_range& l, const ForwardRange& r ) 12329: { 12329: return iterator_range_detail::greater_or_equal_than( l, r ); 12329: } 12329: # 754 "/usr/include/boost/range/iterator_range_core.hpp" 3 4 12329: template< typename IteratorT > 12329: inline iterator_range< IteratorT > 12329: make_iterator_range( IteratorT Begin, IteratorT End ) 12329: { 12329: return iterator_range( Begin, End ); 12329: } 12329: 12329: template 12329: inline iterator_range 12329: make_iterator_range_n(IteratorT first, IntegerT n) 12329: { 12329: return iterator_range(first, boost::next(first, n)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template< class ForwardRange > 12329: inline iterator_range< typename range_iterator::type > 12329: make_iterator_range( ForwardRange& r ) 12329: { 12329: return iterator_range< typename range_iterator::type > 12329: ( r, iterator_range_detail::range_tag() ); 12329: } 12329: 12329: template< class ForwardRange > 12329: inline iterator_range< typename range_iterator::type > 12329: make_iterator_range( const ForwardRange& r ) 12329: { 12329: return iterator_range< typename range_iterator::type > 12329: ( r, iterator_range_detail::const_range_tag() ); 12329: } 12329: 12329: namespace iterator_range_detail 12329: { 12329: template< class Range > 12329: inline iterator_range< typename range_iterator::type > 12329: make_range_impl( Range& r, 12329: typename range_difference::type advance_begin, 12329: typename range_difference::type advance_end ) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: typename range_iterator::type 12329: new_begin = boost::begin( r ), 12329: new_end = boost::end( r ); 12329: std::advance( new_begin, advance_begin ); 12329: std::advance( new_end, advance_end ); 12329: return make_iterator_range( new_begin, new_end ); 12329: } 12329: } 12329: 12329: template< class Range > 12329: inline iterator_range< typename range_iterator::type > 12329: make_iterator_range( Range& r, 12329: typename range_difference::type advance_begin, 12329: typename range_difference::type advance_end ) 12329: { 12329: return iterator_range_detail::make_range_impl( r, advance_begin, advance_end ); 12329: } 12329: 12329: template< class Range > 12329: inline iterator_range< typename range_iterator::type > 12329: make_iterator_range( const Range& r, 12329: typename range_difference::type advance_begin, 12329: typename range_difference::type advance_end ) 12329: { 12329: return iterator_range_detail::make_range_impl( r, advance_begin, advance_end ); 12329: } 12329: # 839 "/usr/include/boost/range/iterator_range_core.hpp" 3 4 12329: template< typename SeqT, typename Range > 12329: inline SeqT copy_range( const Range& r ) 12329: { 12329: return SeqT( boost::begin( r ), boost::end( r ) ); 12329: } 12329: 12329: } 12329: # 31 "/usr/include/boost/lexical_cast.hpp" 2 3 4 12329: # 1 "/usr/include/boost/lexical_cast/bad_lexical_cast.hpp" 1 3 4 12329: # 23 "/usr/include/boost/lexical_cast/bad_lexical_cast.hpp" 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: class __attribute__((__visibility__("default"))) bad_lexical_cast : 12329: 12329: 12329: 12329: 12329: public std::bad_cast 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: { 12329: public: 12329: bad_lexical_cast() noexcept 12329: 12329: : source(&typeid(void)), target(&typeid(void)) 12329: 12329: {} 12329: 12329: const char *what() const noexcept override { 12329: return "bad lexical cast: " 12329: "source type value could not be interpreted as target"; 12329: } 12329: 12329: ~bad_lexical_cast() noexcept override 12329: {} 12329: 12329: 12329: private: 12329: 12329: 12329: 12329: typedef ::std::type_info type_info_t; 12329: 12329: public: 12329: bad_lexical_cast( 12329: const type_info_t &source_type_arg, 12329: const type_info_t &target_type_arg) noexcept 12329: : source(&source_type_arg), target(&target_type_arg) 12329: {} 12329: 12329: const type_info_t &source_type() const noexcept { 12329: return *source; 12329: } 12329: 12329: const type_info_t &target_type() const noexcept { 12329: return *target; 12329: } 12329: 12329: private: 12329: const type_info_t *source; 12329: const type_info_t *target; 12329: 12329: }; 12329: 12329: namespace conversion { namespace detail { 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline void throw_bad_cast() { 12329: boost::throw_exception(bad_lexical_cast(typeid(S), typeid(T))); 12329: } 12329: 12329: }} 12329: 12329: } 12329: # 32 "/usr/include/boost/lexical_cast.hpp" 2 3 4 12329: # 1 "/usr/include/boost/lexical_cast/try_lexical_convert.hpp" 1 3 4 12329: # 23 "/usr/include/boost/lexical_cast/try_lexical_convert.hpp" 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wuninitialized" 12329: #pragma GCC diagnostic ignored "-Wsign-conversion" 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/type_traits/type_identity.hpp" 1 3 4 12329: # 14 "/usr/include/boost/type_traits/type_identity.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: template struct type_identity 12329: { 12329: typedef T type; 12329: }; 12329: 12329: 12329: 12329: template using type_identity_t = typename type_identity::type; 12329: 12329: 12329: 12329: 12329: } 12329: # 38 "/usr/include/boost/lexical_cast/try_lexical_convert.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/lexical_cast/detail/is_character.hpp" 1 3 4 12329: # 23 "/usr/include/boost/lexical_cast/detail/is_character.hpp" 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { 12329: 12329: namespace detail 12329: { 12329: 12329: template < typename T > 12329: struct is_character 12329: { 12329: typedef typename boost::integral_constant< 12329: bool, 12329: boost::is_same< T, char >::value || 12329: 12329: boost::is_same< T, wchar_t >::value || 12329: 12329: 12329: boost::is_same< T, char16_t >::value || 12329: 12329: 12329: boost::is_same< T, char32_t >::value || 12329: 12329: boost::is_same< T, unsigned char >::value || 12329: boost::is_same< T, signed char >::value 12329: > type; 12329: 12329: static const bool value = (type::value); 12329: }; 12329: } 12329: } 12329: # 43 "/usr/include/boost/lexical_cast/try_lexical_convert.hpp" 2 3 4 12329: # 1 "/usr/include/boost/lexical_cast/detail/converter_numeric.hpp" 1 3 4 12329: # 23 "/usr/include/boost/lexical_cast/detail/converter_numeric.hpp" 3 4 12329: 12329: # 33 "/usr/include/boost/lexical_cast/detail/converter_numeric.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/is_base_of.hpp" 1 3 4 12329: # 16 "/usr/include/boost/type_traits/is_base_of.hpp" 3 4 12329: namespace boost { 12329: 12329: namespace detail{ 12329: template 12329: struct is_base_of_imp 12329: { 12329: typedef typename remove_cv::type ncvB; 12329: typedef typename remove_cv::type ncvD; 12329: static const bool value = ( (::boost::detail::is_base_and_derived_impl::value) || (::boost::is_same::value && ::boost::is_class::value)) 12329: 12329: ; 12329: }; 12329: } 12329: 12329: template struct is_base_of 12329: : public integral_constant::value)> {}; 12329: 12329: template struct is_base_of : false_type{}; 12329: template struct is_base_of : false_type{}; 12329: template struct is_base_of : false_type{}; 12329: 12329: } 12329: # 34 "/usr/include/boost/lexical_cast/detail/converter_numeric.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/is_float.hpp" 1 3 4 12329: # 14 "/usr/include/boost/type_traits/is_float.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: template struct is_float : public is_floating_point {}; 12329: } 12329: # 35 "/usr/include/boost/lexical_cast/detail/converter_numeric.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/numeric/conversion/cast.hpp" 1 3 4 12329: # 32 "/usr/include/boost/numeric/conversion/cast.hpp" 3 4 12329: # 1 "/usr/include/boost/type.hpp" 1 3 4 12329: # 9 "/usr/include/boost/type.hpp" 3 4 12329: namespace boost { 12329: 12329: 12329: 12329: template 12329: struct type {}; 12329: 12329: } 12329: # 33 "/usr/include/boost/numeric/conversion/cast.hpp" 2 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/converter.hpp" 1 3 4 12329: # 13 "/usr/include/boost/numeric/conversion/converter.hpp" 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/conversion_traits.hpp" 1 3 4 12329: # 13 "/usr/include/boost/numeric/conversion/conversion_traits.hpp" 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/detail/conversion_traits.hpp" 1 3 4 12329: # 17 "/usr/include/boost/numeric/conversion/detail/conversion_traits.hpp" 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/detail/meta.hpp" 1 3 4 12329: # 17 "/usr/include/boost/numeric/conversion/detail/meta.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/equal_to.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/equal_to.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 1 3 4 12329: # 27 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 12329: # 21 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/numeric_cast.hpp" 1 3 4 12329: # 30 "/usr/include/boost/mpl/numeric_cast.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template< typename SourceTag, typename TargetTag > struct numeric_cast 12329: { 12329: template< typename N > struct apply; 12329: }; 12329: 12329: }} 12329: # 22 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/tag.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/tag.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/has_tag.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/has_tag.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_tag { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; 12329: }}} 12329: # 20 "/usr/include/boost/mpl/tag.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: namespace aux { 12329: template< typename T > struct tag_impl 12329: { 12329: typedef typename T::tag type; 12329: }; 12329: } 12329: 12329: template< typename T, typename Default = void_ > struct tag 12329: 12329: : if_< 12329: aux::has_tag 12329: , aux::tag_impl 12329: , Default 12329: >::type 12329: { 12329: # 48 "/usr/include/boost/mpl/tag.hpp" 3 4 12329: }; 12329: 12329: }} 12329: # 25 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/numeric_cast_utils.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/numeric_cast_utils.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/numeric_cast_utils.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/forwarding.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/aux_/numeric_cast_utils.hpp" 2 3 4 12329: 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: template< 12329: typename F 12329: , typename Tag1 12329: , typename Tag2 12329: > 12329: struct cast1st_impl 12329: { 12329: template< typename N1, typename N2 > struct apply 12329: 12329: : apply_wrap2< 12329: F 12329: , typename apply_wrap1< numeric_cast,N1 >::type 12329: , N2 12329: > 12329: { 12329: # 46 "/usr/include/boost/mpl/aux_/numeric_cast_utils.hpp" 3 4 12329: }; 12329: }; 12329: 12329: template< 12329: typename F 12329: , typename Tag1 12329: , typename Tag2 12329: > 12329: struct cast2nd_impl 12329: { 12329: template< typename N1, typename N2 > struct apply 12329: 12329: : apply_wrap2< 12329: F 12329: , N1 12329: , typename apply_wrap1< numeric_cast,N2 >::type 12329: > 12329: { 12329: # 72 "/usr/include/boost/mpl/aux_/numeric_cast_utils.hpp" 3 4 12329: }; 12329: }; 12329: 12329: }}} 12329: # 26 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/msvc_eti_base.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/msvc_eti_base.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/is_msvc_eti_arg.hpp" 1 3 4 12329: # 21 "/usr/include/boost/mpl/aux_/is_msvc_eti_arg.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: # 62 "/usr/include/boost/mpl/aux_/is_msvc_eti_arg.hpp" 3 4 12329: }}} 12329: # 18 "/usr/include/boost/mpl/aux_/msvc_eti_base.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { namespace aux { 12329: # 55 "/usr/include/boost/mpl/aux_/msvc_eti_base.hpp" 3 4 12329: template< typename T > struct msvc_eti_base 12329: : T 12329: { 12329: 12329: msvc_eti_base(); 12329: 12329: typedef T type; 12329: }; 12329: 12329: 12329: 12329: template<> struct msvc_eti_base 12329: { 12329: typedef msvc_eti_base type; 12329: typedef msvc_eti_base first; 12329: typedef msvc_eti_base second; 12329: typedef msvc_eti_base tag; 12329: enum { value = 0 }; 12329: }; 12329: 12329: }}} 12329: # 30 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: # 28 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Tag1 12329: , typename Tag2 12329: > 12329: struct equal_to_impl 12329: : if_c< 12329: ( Tag1::value 12329: > Tag2::value 12329: ) 12329: 12329: , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > 12329: , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > 12329: >::type 12329: { 12329: }; 12329: 12329: 12329: template<> struct equal_to_impl< na,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct equal_to_impl< na,Tag > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct equal_to_impl< Tag,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename T > struct equal_to_tag 12329: { 12329: typedef typename T::tag type; 12329: }; 12329: 12329: template< 12329: typename N1 = na 12329: , typename N2 = na 12329: > 12329: struct equal_to 12329: 12329: : equal_to_impl< 12329: typename equal_to_tag::type 12329: , typename equal_to_tag::type 12329: >::template apply< N1,N2 >::type 12329: { 12329: 12329: 12329: }; 12329: 12329: template<> struct equal_to< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : equal_to< T1 , T2 > { }; }; template< typename Tag > struct lambda< equal_to< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef equal_to< na , na > result_; typedef equal_to< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< equal_to< T1 , T2 > > : int_<2> { }; template<> struct template_arity< equal_to< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct equal_to_impl< integral_c_tag,integral_c_tag > 12329: { 12329: template< typename N1, typename N2 > struct apply 12329: 12329: : bool_< ( N1::value == N2::value ) > 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 36 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 12329: # 20 "/usr/include/boost/mpl/equal_to.hpp" 2 3 4 12329: # 18 "/usr/include/boost/numeric/conversion/detail/meta.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace numeric { namespace convdetail 12329: { 12329: template< class T1, class T2> 12329: struct equal_to 12329: { 12329: 12329: 12329: enum { x = ( T1::value == T2::value ) }; 12329: 12329: static const bool value = x; 12329: 12329: typedef mpl::bool_ type; 12329: # 48 "/usr/include/boost/numeric/conversion/detail/meta.hpp" 3 4 12329: }; 12329: # 59 "/usr/include/boost/numeric/conversion/detail/meta.hpp" 3 4 12329: template 12329: struct ct_switch4 12329: { 12329: typedef mpl::identity Case0TypeQ ; 12329: typedef mpl::identity Case1TypeQ ; 12329: 12329: typedef equal_to is_case0 ; 12329: typedef equal_to is_case1 ; 12329: typedef equal_to is_case2 ; 12329: 12329: typedef mpl::if_ choose_2_3Q ; 12329: typedef mpl::eval_if choose_1_2_3Q ; 12329: 12329: typedef typename 12329: mpl::eval_if::type 12329: type ; 12329: } ; 12329: # 97 "/usr/include/boost/numeric/conversion/detail/meta.hpp" 3 4 12329: template 12329: struct for_both 12329: { 12329: typedef mpl::identity TF_Q ; 12329: typedef mpl::identity TT_Q ; 12329: 12329: typedef typename mpl::not_::type not_expr0 ; 12329: typedef typename mpl::not_::type not_expr1 ; 12329: 12329: typedef typename mpl::and_::type caseTT ; 12329: typedef typename mpl::and_::type caseTF ; 12329: typedef typename mpl::and_::type caseFT ; 12329: 12329: typedef mpl::if_ choose_FT_FF_Q ; 12329: typedef mpl::eval_if choose_TF_FT_FF_Q ; 12329: 12329: typedef typename mpl::eval_if::type type ; 12329: } ; 12329: 12329: } } } 12329: # 18 "/usr/include/boost/numeric/conversion/detail/conversion_traits.hpp" 2 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/detail/int_float_mixture.hpp" 1 3 4 12329: # 16 "/usr/include/boost/numeric/conversion/detail/int_float_mixture.hpp" 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/int_float_mixture_enum.hpp" 1 3 4 12329: # 13 "/usr/include/boost/numeric/conversion/int_float_mixture_enum.hpp" 3 4 12329: namespace boost { namespace numeric 12329: { 12329: enum int_float_mixture_enum 12329: { 12329: integral_to_integral 12329: ,integral_to_float 12329: ,float_to_integral 12329: ,float_to_float 12329: } ; 12329: 12329: } } 12329: # 17 "/usr/include/boost/numeric/conversion/detail/int_float_mixture.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/integral_c.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/integral_c.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/integral_c_fwd.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/integral_c_fwd.hpp" 3 4 12329: namespace mpl_ { 12329: 12329: 12329: 12329: 12329: 12329: template< typename T, T N > struct integral_c; 12329: 12329: 12329: } 12329: namespace boost { namespace mpl { using ::mpl_::integral_c; } } 12329: # 18 "/usr/include/boost/mpl/integral_c.hpp" 2 3 4 12329: # 32 "/usr/include/boost/mpl/integral_c.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 1 3 4 12329: # 40 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 12329: namespace mpl_ { 12329: 12329: template< typename T, T N > 12329: struct integral_c 12329: { 12329: static const T value = N; 12329: 12329: 12329: 12329: 12329: 12329: typedef integral_c type; 12329: 12329: typedef T value_type; 12329: typedef integral_c_tag tag; 12329: # 72 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 12329: typedef integral_c< T, static_cast((value + 1)) > next; 12329: typedef integral_c< T, static_cast((value - 1)) > prior; 12329: 12329: 12329: 12329: 12329: 12329: 12329: constexpr operator T() const { return static_cast(this->value); } 12329: }; 12329: 12329: 12329: template< typename T, T N > 12329: T const integral_c< T, N >::value; 12329: 12329: 12329: } 12329: # 33 "/usr/include/boost/mpl/integral_c.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace mpl_ { 12329: 12329: template< bool C > 12329: struct integral_c 12329: { 12329: static const bool value = C; 12329: typedef integral_c_tag tag; 12329: typedef integral_c type; 12329: typedef bool value_type; 12329: operator bool() const { return this->value; } 12329: }; 12329: } 12329: # 20 "/usr/include/boost/numeric/conversion/detail/int_float_mixture.hpp" 2 3 4 12329: 12329: namespace boost { namespace numeric { namespace convdetail 12329: { 12329: 12329: typedef mpl::integral_c int2int_c ; 12329: typedef mpl::integral_c int2float_c ; 12329: typedef mpl::integral_c float2int_c ; 12329: typedef mpl::integral_c float2float_c ; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct get_int_float_mixture 12329: { 12329: typedef mpl::bool_< ::std::numeric_limits::is_integer > S_int ; 12329: typedef mpl::bool_< ::std::numeric_limits::is_integer > T_int ; 12329: 12329: typedef typename 12329: for_both::type 12329: type ; 12329: } ; 12329: # 55 "/usr/include/boost/numeric/conversion/detail/int_float_mixture.hpp" 3 4 12329: template 12329: struct for_int_float_mixture 12329: { 12329: typedef typename 12329: ct_switch4::type 12329: type ; 12329: } ; 12329: 12329: } } } 12329: # 19 "/usr/include/boost/numeric/conversion/detail/conversion_traits.hpp" 2 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/detail/sign_mixture.hpp" 1 3 4 12329: # 16 "/usr/include/boost/numeric/conversion/detail/sign_mixture.hpp" 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/sign_mixture_enum.hpp" 1 3 4 12329: # 13 "/usr/include/boost/numeric/conversion/sign_mixture_enum.hpp" 3 4 12329: namespace boost { namespace numeric 12329: { 12329: enum sign_mixture_enum 12329: { 12329: unsigned_to_unsigned 12329: ,signed_to_signed 12329: ,signed_to_unsigned 12329: ,unsigned_to_signed 12329: } ; 12329: 12329: } } 12329: # 17 "/usr/include/boost/numeric/conversion/detail/sign_mixture.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace numeric { namespace convdetail 12329: { 12329: 12329: typedef mpl::integral_c unsig2unsig_c ; 12329: typedef mpl::integral_c sig2sig_c ; 12329: typedef mpl::integral_c sig2unsig_c ; 12329: typedef mpl::integral_c unsig2sig_c ; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct get_sign_mixture 12329: { 12329: typedef mpl::bool_< ::std::numeric_limits::is_signed > S_signed ; 12329: typedef mpl::bool_< ::std::numeric_limits::is_signed > T_signed ; 12329: 12329: typedef typename 12329: for_both::type 12329: type ; 12329: } ; 12329: # 55 "/usr/include/boost/numeric/conversion/detail/sign_mixture.hpp" 3 4 12329: template 12329: struct for_sign_mixture 12329: { 12329: typedef typename 12329: ct_switch4::type 12329: type ; 12329: } ; 12329: 12329: } } } 12329: # 20 "/usr/include/boost/numeric/conversion/detail/conversion_traits.hpp" 2 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp" 1 3 4 12329: # 15 "/usr/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp" 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp" 1 3 4 12329: # 13 "/usr/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp" 3 4 12329: namespace boost { namespace numeric 12329: { 12329: enum udt_builtin_mixture_enum 12329: { 12329: builtin_to_builtin 12329: ,builtin_to_udt 12329: ,udt_to_builtin 12329: ,udt_to_udt 12329: } ; 12329: 12329: } } 12329: # 16 "/usr/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace numeric { namespace convdetail 12329: { 12329: 12329: typedef mpl::integral_c builtin2builtin_c ; 12329: typedef mpl::integral_c builtin2udt_c ; 12329: typedef mpl::integral_c udt2builtin_c ; 12329: typedef mpl::integral_c udt2udt_c ; 12329: # 37 "/usr/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp" 3 4 12329: template 12329: struct for_udt_builtin_mixture 12329: { 12329: typedef typename 12329: ct_switch4::type 12329: type ; 12329: } ; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct get_udt_builtin_mixture 12329: { 12329: typedef is_arithmetic S_builtin ; 12329: typedef is_arithmetic T_builtin ; 12329: 12329: typedef typename 12329: for_both::type 12329: type ; 12329: } ; 12329: 12329: } } } 12329: # 21 "/usr/include/boost/numeric/conversion/detail/conversion_traits.hpp" 2 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/detail/is_subranged.hpp" 1 3 4 12329: # 17 "/usr/include/boost/numeric/conversion/detail/is_subranged.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/multiplies.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/multiplies.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/times.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/times.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/largest_int.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/aux_/largest_int.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: template< typename T > struct integral_rank; 12329: 12329: template<> struct integral_rank : int_<1> {}; 12329: template<> struct integral_rank : int_<2> {}; 12329: template<> struct integral_rank : int_<3> {}; 12329: template<> struct integral_rank : int_<4> {}; 12329: 12329: template<> struct integral_rank : int_<5> {}; 12329: 12329: template<> struct integral_rank : int_<6> {}; 12329: template<> struct integral_rank : int_<7> {}; 12329: template<> struct integral_rank : int_<8> {}; 12329: template<> struct integral_rank : int_<9> {}; 12329: template<> struct integral_rank : int_<10> {}; 12329: template<> struct integral_rank : int_<11> {}; 12329: 12329: 12329: template<> struct integral_rank : int_<12> {}; 12329: template<> struct integral_rank: int_<13> {}; 12329: 12329: 12329: template< typename T1, typename T2 > struct largest_int 12329: 12329: : if_c< 12329: ( integral_rank::value >= integral_rank::value ) 12329: , T1 12329: , T2 12329: > 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: }}} 12329: # 19 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: # 27 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/times.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/times.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Tag1 12329: , typename Tag2 12329: > 12329: struct times_impl 12329: : if_c< 12329: ( Tag1::value 12329: > Tag2::value 12329: ) 12329: 12329: , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > 12329: , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > 12329: >::type 12329: { 12329: }; 12329: 12329: 12329: template<> struct times_impl< na,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct times_impl< na,Tag > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct times_impl< Tag,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename T > struct times_tag 12329: { 12329: typedef typename T::tag type; 12329: }; 12329: 12329: template< 12329: typename N1 = na 12329: , typename N2 = na 12329: , typename N3 = na, typename N4 = na, typename N5 = na 12329: > 12329: struct times 12329: : times< times< times< times< N1,N2 >, N3>, N4>, N5> 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename N1, typename N2, typename N3, typename N4 12329: > 12329: struct times< N1,N2,N3,N4,na > 12329: 12329: : times< times< times< N1,N2 >, N3>, N4> 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename N1, typename N2, typename N3 12329: > 12329: struct times< N1,N2,N3,na,na > 12329: 12329: : times< times< N1,N2 >, N3> 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename N1, typename N2 12329: > 12329: struct times< N1,N2,na,na,na > 12329: : times_impl< 12329: typename times_tag::type 12329: , typename times_tag::type 12329: >::template apply< N1,N2 >::type 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template<> struct times< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : times< T1 , T2 > { }; }; template< typename Tag > struct lambda< times< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef times< na , na > result_; typedef times< na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct template_arity< times< T1 , T2 , T3 , T4 , T5 > > : int_<5> { }; template<> struct template_arity< times< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: 12329: namespace boost { namespace mpl { 12329: template<> 12329: struct times_impl< integral_c_tag,integral_c_tag > 12329: { 12329: template< typename N1, typename N2 > struct apply 12329: 12329: : integral_c< 12329: typename aux::largest_int< 12329: typename N1::value_type 12329: , typename N2::value_type 12329: >::type 12329: , ( N1::value 12329: * N2::value 12329: ) 12329: > 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 35 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 2 3 4 12329: # 20 "/usr/include/boost/mpl/times.hpp" 2 3 4 12329: # 18 "/usr/include/boost/mpl/multiplies.hpp" 2 3 4 12329: # 26 "/usr/include/boost/mpl/multiplies.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template< 12329: typename N1 = na , typename N2 = na , typename N3 = na , typename N4 = na , typename N5 = na 12329: > 12329: struct multiplies 12329: : times< N1 , N2 , N3 , N4 , N5 > 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template<> struct multiplies< na , na , na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct apply : multiplies< T1 , T2 , T3 , T4 , T5 > { }; }; template< typename Tag > struct lambda< multiplies< na , na , na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef multiplies< na , na , na , na , na > result_; typedef multiplies< na , na , na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct template_arity< multiplies< T1 , T2 , T3 , T4 , T5 > > : int_<5> { }; template<> struct template_arity< multiplies< na , na , na , na , na > > : int_<-1> { }; } 12329: 12329: 12329: 12329: }} 12329: # 18 "/usr/include/boost/numeric/conversion/detail/is_subranged.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/less.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/less.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 1 3 4 12329: # 27 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: # 28 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/less.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/less.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Tag1 12329: , typename Tag2 12329: > 12329: struct less_impl 12329: : if_c< 12329: ( Tag1::value 12329: > Tag2::value 12329: ) 12329: 12329: , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > 12329: , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > 12329: >::type 12329: { 12329: }; 12329: 12329: 12329: template<> struct less_impl< na,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct less_impl< na,Tag > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct less_impl< Tag,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename T > struct less_tag 12329: { 12329: typedef typename T::tag type; 12329: }; 12329: 12329: template< 12329: typename N1 = na 12329: , typename N2 = na 12329: > 12329: struct less 12329: 12329: : less_impl< 12329: typename less_tag::type 12329: , typename less_tag::type 12329: >::template apply< N1,N2 >::type 12329: { 12329: 12329: 12329: }; 12329: 12329: template<> struct less< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : less< T1 , T2 > { }; }; template< typename Tag > struct lambda< less< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef less< na , na > result_; typedef less< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< less< T1 , T2 > > : int_<2> { }; template<> struct template_arity< less< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct less_impl< integral_c_tag,integral_c_tag > 12329: { 12329: template< typename N1, typename N2 > struct apply 12329: 12329: : bool_< ( N2::value > N1::value ) > 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 36 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 12329: # 20 "/usr/include/boost/mpl/less.hpp" 2 3 4 12329: # 19 "/usr/include/boost/numeric/conversion/detail/is_subranged.hpp" 2 3 4 12329: # 28 "/usr/include/boost/numeric/conversion/detail/is_subranged.hpp" 3 4 12329: namespace boost { namespace numeric { namespace convdetail 12329: { 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct subranged_Sig2Unsig 12329: { 12329: 12329: 12329: typedef mpl::true_ type ; 12329: } ; 12329: 12329: 12329: template 12329: struct subranged_Unsig2Sig 12329: { 12329: # 62 "/usr/include/boost/numeric/conversion/detail/is_subranged.hpp" 3 4 12329: typedef mpl::int_< ::std::numeric_limits::digits > S_digits ; 12329: typedef mpl::int_< ::std::numeric_limits::digits > T_digits ; 12329: 12329: 12329: typedef typename T_digits::next u_T_digits ; 12329: 12329: typedef mpl::int_<2> Two ; 12329: 12329: typedef typename mpl::multiplies::type S_digits_times_2 ; 12329: 12329: typedef typename mpl::less::type type ; 12329: } ; 12329: 12329: 12329: template 12329: struct subranged_SameSign 12329: { 12329: 12329: 12329: typedef mpl::int_< ::std::numeric_limits::digits > S_digits ; 12329: typedef mpl::int_< ::std::numeric_limits::digits > T_digits ; 12329: 12329: typedef typename mpl::less::type type ; 12329: } ; 12329: 12329: 12329: template 12329: struct subranged_Int2Float 12329: { 12329: typedef mpl::false_ type ; 12329: } ; 12329: 12329: 12329: template 12329: struct subranged_Float2Int 12329: { 12329: typedef mpl::true_ type ; 12329: } ; 12329: 12329: 12329: template 12329: struct subranged_Float2Float 12329: { 12329: 12329: 12329: 12329: typedef mpl::int_< ::std::numeric_limits::digits > S_mantisa ; 12329: typedef mpl::int_< ::std::numeric_limits::digits > T_mantisa ; 12329: 12329: typedef mpl::int_< ::std::numeric_limits::max_exponent > S_exponent ; 12329: typedef mpl::int_< ::std::numeric_limits::max_exponent > T_exponent ; 12329: 12329: typedef typename mpl::less::type T_smaller_exponent ; 12329: 12329: typedef typename mpl::equal_to::type equal_exponents ; 12329: 12329: typedef mpl::less T_smaller_mantisa ; 12329: 12329: typedef mpl::eval_if not_bigger_exponent_case ; 12329: 12329: typedef typename 12329: mpl::eval_if::type 12329: type ; 12329: } ; 12329: 12329: 12329: template 12329: struct subranged_Udt2BuiltIn 12329: { 12329: typedef mpl::true_ type ; 12329: } ; 12329: 12329: 12329: template 12329: struct subranged_BuiltIn2Udt 12329: { 12329: typedef mpl::false_ type ; 12329: } ; 12329: 12329: 12329: template 12329: struct subranged_Udt2Udt 12329: { 12329: typedef mpl::false_ type ; 12329: } ; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct get_subranged_Int2Int 12329: { 12329: typedef subranged_SameSign Sig2Sig ; 12329: typedef subranged_Sig2Unsig Sig2Unsig ; 12329: typedef subranged_Unsig2Sig Unsig2Sig ; 12329: typedef Sig2Sig Unsig2Unsig ; 12329: 12329: typedef typename get_sign_mixture::type sign_mixture ; 12329: 12329: typedef typename 12329: for_sign_mixture::type 12329: type ; 12329: } ; 12329: 12329: template 12329: struct get_subranged_BuiltIn2BuiltIn 12329: { 12329: typedef get_subranged_Int2Int Int2IntQ ; 12329: 12329: typedef subranged_Int2Float Int2Float ; 12329: typedef subranged_Float2Int Float2Int ; 12329: typedef subranged_Float2Float Float2Float ; 12329: 12329: typedef mpl::identity Int2FloatQ ; 12329: typedef mpl::identity Float2IntQ ; 12329: typedef mpl::identity Float2FloatQ ; 12329: 12329: typedef typename get_int_float_mixture::type int_float_mixture ; 12329: 12329: typedef for_int_float_mixture for_ ; 12329: 12329: typedef typename for_::type selected ; 12329: 12329: typedef typename selected::type type ; 12329: } ; 12329: 12329: template 12329: struct get_subranged 12329: { 12329: typedef get_subranged_BuiltIn2BuiltIn BuiltIn2BuiltInQ ; 12329: 12329: typedef subranged_BuiltIn2Udt BuiltIn2Udt ; 12329: typedef subranged_Udt2BuiltIn Udt2BuiltIn ; 12329: typedef subranged_Udt2Udt Udt2Udt ; 12329: 12329: typedef mpl::identity BuiltIn2UdtQ ; 12329: typedef mpl::identity Udt2BuiltInQ ; 12329: typedef mpl::identity Udt2UdtQ ; 12329: 12329: typedef typename get_udt_builtin_mixture::type udt_builtin_mixture ; 12329: 12329: typedef typename 12329: for_udt_builtin_mixture::type 12329: selected ; 12329: 12329: typedef typename selected::type selected2 ; 12329: 12329: typedef typename selected2::type type ; 12329: } ; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct get_is_subranged 12329: { 12329: typedef get_subranged non_trivial_case ; 12329: typedef mpl::identity trivial_case ; 12329: 12329: typedef is_same is_trivial ; 12329: 12329: typedef typename mpl::if_::type selected ; 12329: 12329: typedef typename selected::type type ; 12329: } ; 12329: 12329: } } } 12329: # 22 "/usr/include/boost/numeric/conversion/detail/conversion_traits.hpp" 2 3 4 12329: 12329: namespace boost { namespace numeric { namespace convdetail 12329: { 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct non_trivial_traits_impl 12329: { 12329: typedef typename get_int_float_mixture ::type int_float_mixture ; 12329: typedef typename get_sign_mixture ::type sign_mixture ; 12329: typedef typename get_udt_builtin_mixture ::type udt_builtin_mixture ; 12329: 12329: typedef typename get_is_subranged::type subranged ; 12329: 12329: typedef mpl::false_ trivial ; 12329: 12329: typedef T target_type ; 12329: typedef S source_type ; 12329: typedef T result_type ; 12329: 12329: typedef typename mpl::if_< is_arithmetic, S, S const&>::type argument_type ; 12329: 12329: typedef typename mpl::if_::type supertype ; 12329: typedef typename mpl::if_::type subtype ; 12329: } ; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct trivial_traits_impl 12329: { 12329: typedef typename get_int_float_mixture ::type int_float_mixture ; 12329: typedef typename get_sign_mixture ::type sign_mixture ; 12329: typedef typename get_udt_builtin_mixture::type udt_builtin_mixture ; 12329: 12329: typedef mpl::false_ subranged ; 12329: typedef mpl::true_ trivial ; 12329: 12329: typedef N target_type ; 12329: typedef N source_type ; 12329: typedef N const& result_type ; 12329: typedef N const& argument_type ; 12329: 12329: typedef N supertype ; 12329: typedef N subtype ; 12329: 12329: } ; 12329: 12329: 12329: 12329: 12329: template 12329: struct get_conversion_traits 12329: { 12329: typedef typename remove_cv::type target_type ; 12329: typedef typename remove_cv::type source_type ; 12329: 12329: typedef typename is_same::type is_trivial ; 12329: 12329: typedef trivial_traits_impl trivial_imp ; 12329: typedef non_trivial_traits_impl non_trivial_imp ; 12329: 12329: typedef typename mpl::if_::type type ; 12329: } ; 12329: 12329: } } } 12329: # 14 "/usr/include/boost/numeric/conversion/conversion_traits.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace numeric 12329: { 12329: 12329: template 12329: struct conversion_traits 12329: : convdetail::get_conversion_traits::type 12329: { 12329: } ; 12329: 12329: } } 12329: # 14 "/usr/include/boost/numeric/conversion/converter.hpp" 2 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/converter_policies.hpp" 1 3 4 12329: # 16 "/usr/include/boost/numeric/conversion/converter_policies.hpp" 3 4 12329: # 1 "/usr/include/boost/config/no_tr1/cmath.hpp" 1 3 4 12329: # 21 "/usr/include/boost/config/no_tr1/cmath.hpp" 3 4 12329: # 1 "/usr/include/c++/12/cmath" 1 3 4 12329: # 39 "/usr/include/c++/12/cmath" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cmath" 3 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/math.h" 1 3 4 12329: # 27 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/libc-header-start.h" 1 3 4 12329: # 28 "/usr/include/math.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern "C" { 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/math-vector.h" 1 3 4 12329: # 27 "/usr/include/aarch64-linux-gnu/bits/math-vector.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/libm-simd-decl-stubs.h" 1 3 4 12329: # 28 "/usr/include/aarch64-linux-gnu/bits/math-vector.h" 2 3 4 12329: # 41 "/usr/include/math.h" 2 3 4 12329: # 152 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/flt-eval-method.h" 1 3 4 12329: # 153 "/usr/include/math.h" 2 3 4 12329: # 163 "/usr/include/math.h" 3 4 12329: typedef float float_t; 12329: typedef double double_t; 12329: # 204 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/fp-logb.h" 1 3 4 12329: # 205 "/usr/include/math.h" 2 3 4 12329: # 247 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/fp-fast.h" 1 3 4 12329: # 248 "/usr/include/math.h" 2 3 4 12329: 12329: 12329: 12329: enum 12329: { 12329: FP_INT_UPWARD = 12329: 12329: 0, 12329: FP_INT_DOWNWARD = 12329: 12329: 1, 12329: FP_INT_TOWARDZERO = 12329: 12329: 2, 12329: FP_INT_TONEARESTFROMZERO = 12329: 12329: 3, 12329: FP_INT_TONEAREST = 12329: 12329: 4, 12329: }; 12329: # 312 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 12329: # 20 "/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 12329: extern int __fpclassify (double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern int __signbit (double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern int __isinf (double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern int __finite (double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern int __isnan (double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern int __iseqsig (double __x, double __y) noexcept (true); 12329: 12329: 12329: extern int __issignaling (double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: # 313 "/usr/include/math.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 1 3 4 12329: # 53 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern double acos (double __x) noexcept (true); extern double __acos (double __x) noexcept (true); 12329: 12329: extern double asin (double __x) noexcept (true); extern double __asin (double __x) noexcept (true); 12329: 12329: extern double atan (double __x) noexcept (true); extern double __atan (double __x) noexcept (true); 12329: 12329: extern double atan2 (double __y, double __x) noexcept (true); extern double __atan2 (double __y, double __x) noexcept (true); 12329: 12329: 12329: extern double cos (double __x) noexcept (true); extern double __cos (double __x) noexcept (true); 12329: 12329: extern double sin (double __x) noexcept (true); extern double __sin (double __x) noexcept (true); 12329: 12329: extern double tan (double __x) noexcept (true); extern double __tan (double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern double cosh (double __x) noexcept (true); extern double __cosh (double __x) noexcept (true); 12329: 12329: extern double sinh (double __x) noexcept (true); extern double __sinh (double __x) noexcept (true); 12329: 12329: extern double tanh (double __x) noexcept (true); extern double __tanh (double __x) noexcept (true); 12329: 12329: 12329: 12329: extern void sincos (double __x, double *__sinx, double *__cosx) noexcept (true); extern void __sincos (double __x, double *__sinx, double *__cosx) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern double acosh (double __x) noexcept (true); extern double __acosh (double __x) noexcept (true); 12329: 12329: extern double asinh (double __x) noexcept (true); extern double __asinh (double __x) noexcept (true); 12329: 12329: extern double atanh (double __x) noexcept (true); extern double __atanh (double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern double exp (double __x) noexcept (true); extern double __exp (double __x) noexcept (true); 12329: 12329: 12329: extern double frexp (double __x, int *__exponent) noexcept (true); extern double __frexp (double __x, int *__exponent) noexcept (true); 12329: 12329: 12329: extern double ldexp (double __x, int __exponent) noexcept (true); extern double __ldexp (double __x, int __exponent) noexcept (true); 12329: 12329: 12329: extern double log (double __x) noexcept (true); extern double __log (double __x) noexcept (true); 12329: 12329: 12329: extern double log10 (double __x) noexcept (true); extern double __log10 (double __x) noexcept (true); 12329: 12329: 12329: extern double modf (double __x, double *__iptr) noexcept (true); extern double __modf (double __x, double *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: extern double exp10 (double __x) noexcept (true); extern double __exp10 (double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern double expm1 (double __x) noexcept (true); extern double __expm1 (double __x) noexcept (true); 12329: 12329: 12329: extern double log1p (double __x) noexcept (true); extern double __log1p (double __x) noexcept (true); 12329: 12329: 12329: extern double logb (double __x) noexcept (true); extern double __logb (double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern double exp2 (double __x) noexcept (true); extern double __exp2 (double __x) noexcept (true); 12329: 12329: 12329: extern double log2 (double __x) noexcept (true); extern double __log2 (double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern double pow (double __x, double __y) noexcept (true); extern double __pow (double __x, double __y) noexcept (true); 12329: 12329: 12329: extern double sqrt (double __x) noexcept (true); extern double __sqrt (double __x) noexcept (true); 12329: 12329: 12329: 12329: extern double hypot (double __x, double __y) noexcept (true); extern double __hypot (double __x, double __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern double cbrt (double __x) noexcept (true); extern double __cbrt (double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern double ceil (double __x) noexcept (true) __attribute__ ((__const__)); extern double __ceil (double __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern double fabs (double __x) noexcept (true) __attribute__ ((__const__)); extern double __fabs (double __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern double floor (double __x) noexcept (true) __attribute__ ((__const__)); extern double __floor (double __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern double fmod (double __x, double __y) noexcept (true); extern double __fmod (double __x, double __y) noexcept (true); 12329: # 183 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern int finite (double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern double drem (double __x, double __y) noexcept (true); extern double __drem (double __x, double __y) noexcept (true); 12329: 12329: 12329: 12329: extern double significand (double __x) noexcept (true); extern double __significand (double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern double copysign (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern double nan (const char *__tagb) noexcept (true); extern double __nan (const char *__tagb) noexcept (true); 12329: # 220 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern double j0 (double) noexcept (true); extern double __j0 (double) noexcept (true); 12329: extern double j1 (double) noexcept (true); extern double __j1 (double) noexcept (true); 12329: extern double jn (int, double) noexcept (true); extern double __jn (int, double) noexcept (true); 12329: extern double y0 (double) noexcept (true); extern double __y0 (double) noexcept (true); 12329: extern double y1 (double) noexcept (true); extern double __y1 (double) noexcept (true); 12329: extern double yn (int, double) noexcept (true); extern double __yn (int, double) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern double erf (double) noexcept (true); extern double __erf (double) noexcept (true); 12329: extern double erfc (double) noexcept (true); extern double __erfc (double) noexcept (true); 12329: extern double lgamma (double) noexcept (true); extern double __lgamma (double) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern double tgamma (double) noexcept (true); extern double __tgamma (double) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern double gamma (double) noexcept (true); extern double __gamma (double) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern double lgamma_r (double, int *__signgamp) noexcept (true); extern double __lgamma_r (double, int *__signgamp) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern double rint (double __x) noexcept (true); extern double __rint (double __x) noexcept (true); 12329: 12329: 12329: extern double nextafter (double __x, double __y) noexcept (true); extern double __nextafter (double __x, double __y) noexcept (true); 12329: 12329: extern double nexttoward (double __x, long double __y) noexcept (true); extern double __nexttoward (double __x, long double __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern double nextdown (double __x) noexcept (true); extern double __nextdown (double __x) noexcept (true); 12329: 12329: extern double nextup (double __x) noexcept (true); extern double __nextup (double __x) noexcept (true); 12329: 12329: 12329: 12329: extern double remainder (double __x, double __y) noexcept (true); extern double __remainder (double __x, double __y) noexcept (true); 12329: 12329: 12329: 12329: extern double scalbn (double __x, int __n) noexcept (true); extern double __scalbn (double __x, int __n) noexcept (true); 12329: 12329: 12329: 12329: extern int ilogb (double __x) noexcept (true); extern int __ilogb (double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long int llogb (double __x) noexcept (true); extern long int __llogb (double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern double scalbln (double __x, long int __n) noexcept (true); extern double __scalbln (double __x, long int __n) noexcept (true); 12329: 12329: 12329: 12329: extern double nearbyint (double __x) noexcept (true); extern double __nearbyint (double __x) noexcept (true); 12329: 12329: 12329: 12329: extern double round (double __x) noexcept (true) __attribute__ ((__const__)); extern double __round (double __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern double trunc (double __x) noexcept (true) __attribute__ ((__const__)); extern double __trunc (double __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern double remquo (double __x, double __y, int *__quo) noexcept (true); extern double __remquo (double __x, double __y, int *__quo) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long int lrint (double __x) noexcept (true); extern long int __lrint (double __x) noexcept (true); 12329: __extension__ 12329: extern long long int llrint (double __x) noexcept (true); extern long long int __llrint (double __x) noexcept (true); 12329: 12329: 12329: 12329: extern long int lround (double __x) noexcept (true); extern long int __lround (double __x) noexcept (true); 12329: __extension__ 12329: extern long long int llround (double __x) noexcept (true); extern long long int __llround (double __x) noexcept (true); 12329: 12329: 12329: 12329: extern double fdim (double __x, double __y) noexcept (true); extern double __fdim (double __x, double __y) noexcept (true); 12329: 12329: 12329: 12329: extern double fmax (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmax (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern double fmin (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmin (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern double fma (double __x, double __y, double __z) noexcept (true); extern double __fma (double __x, double __y, double __z) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern double roundeven (double __x) noexcept (true) __attribute__ ((__const__)); extern double __roundeven (double __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern __intmax_t fromfp (double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: extern int canonicalize (double *__cx, const double *__x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern double fmaxmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmaxmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern double fminmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fminmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern double fmaximum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmaximum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern double fminimum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fminimum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern double fmaximum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmaximum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern double fminimum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fminimum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern double fmaximum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmaximum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern double fminimum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fminimum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern double fmaximum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmaximum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern double fminimum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fminimum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern int totalorder (const double *__x, const double *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern int totalordermag (const double *__x, const double *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern double getpayload (const double *__x) noexcept (true); extern double __getpayload (const double *__x) noexcept (true); 12329: 12329: 12329: extern int setpayload (double *__x, double __payload) noexcept (true); 12329: 12329: 12329: extern int setpayloadsig (double *__x, double __payload) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern double scalb (double __x, double __n) noexcept (true); extern double __scalb (double __x, double __n) noexcept (true); 12329: # 314 "/usr/include/math.h" 2 3 4 12329: # 329 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 12329: # 20 "/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 12329: extern int __fpclassifyf (float __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern int __signbitf (float __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern int __isinff (float __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern int __finitef (float __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern int __isnanf (float __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern int __iseqsigf (float __x, float __y) noexcept (true); 12329: 12329: 12329: extern int __issignalingf (float __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: # 330 "/usr/include/math.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 1 3 4 12329: # 53 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern float acosf (float __x) noexcept (true); extern float __acosf (float __x) noexcept (true); 12329: 12329: extern float asinf (float __x) noexcept (true); extern float __asinf (float __x) noexcept (true); 12329: 12329: extern float atanf (float __x) noexcept (true); extern float __atanf (float __x) noexcept (true); 12329: 12329: extern float atan2f (float __y, float __x) noexcept (true); extern float __atan2f (float __y, float __x) noexcept (true); 12329: 12329: 12329: extern float cosf (float __x) noexcept (true); extern float __cosf (float __x) noexcept (true); 12329: 12329: extern float sinf (float __x) noexcept (true); extern float __sinf (float __x) noexcept (true); 12329: 12329: extern float tanf (float __x) noexcept (true); extern float __tanf (float __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern float coshf (float __x) noexcept (true); extern float __coshf (float __x) noexcept (true); 12329: 12329: extern float sinhf (float __x) noexcept (true); extern float __sinhf (float __x) noexcept (true); 12329: 12329: extern float tanhf (float __x) noexcept (true); extern float __tanhf (float __x) noexcept (true); 12329: 12329: 12329: 12329: extern void sincosf (float __x, float *__sinx, float *__cosx) noexcept (true); extern void __sincosf (float __x, float *__sinx, float *__cosx) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern float acoshf (float __x) noexcept (true); extern float __acoshf (float __x) noexcept (true); 12329: 12329: extern float asinhf (float __x) noexcept (true); extern float __asinhf (float __x) noexcept (true); 12329: 12329: extern float atanhf (float __x) noexcept (true); extern float __atanhf (float __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern float expf (float __x) noexcept (true); extern float __expf (float __x) noexcept (true); 12329: 12329: 12329: extern float frexpf (float __x, int *__exponent) noexcept (true); extern float __frexpf (float __x, int *__exponent) noexcept (true); 12329: 12329: 12329: extern float ldexpf (float __x, int __exponent) noexcept (true); extern float __ldexpf (float __x, int __exponent) noexcept (true); 12329: 12329: 12329: extern float logf (float __x) noexcept (true); extern float __logf (float __x) noexcept (true); 12329: 12329: 12329: extern float log10f (float __x) noexcept (true); extern float __log10f (float __x) noexcept (true); 12329: 12329: 12329: extern float modff (float __x, float *__iptr) noexcept (true); extern float __modff (float __x, float *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: extern float exp10f (float __x) noexcept (true); extern float __exp10f (float __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern float expm1f (float __x) noexcept (true); extern float __expm1f (float __x) noexcept (true); 12329: 12329: 12329: extern float log1pf (float __x) noexcept (true); extern float __log1pf (float __x) noexcept (true); 12329: 12329: 12329: extern float logbf (float __x) noexcept (true); extern float __logbf (float __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern float exp2f (float __x) noexcept (true); extern float __exp2f (float __x) noexcept (true); 12329: 12329: 12329: extern float log2f (float __x) noexcept (true); extern float __log2f (float __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern float powf (float __x, float __y) noexcept (true); extern float __powf (float __x, float __y) noexcept (true); 12329: 12329: 12329: extern float sqrtf (float __x) noexcept (true); extern float __sqrtf (float __x) noexcept (true); 12329: 12329: 12329: 12329: extern float hypotf (float __x, float __y) noexcept (true); extern float __hypotf (float __x, float __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern float cbrtf (float __x) noexcept (true); extern float __cbrtf (float __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern float ceilf (float __x) noexcept (true) __attribute__ ((__const__)); extern float __ceilf (float __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern float fabsf (float __x) noexcept (true) __attribute__ ((__const__)); extern float __fabsf (float __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern float floorf (float __x) noexcept (true) __attribute__ ((__const__)); extern float __floorf (float __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern float fmodf (float __x, float __y) noexcept (true); extern float __fmodf (float __x, float __y) noexcept (true); 12329: # 177 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern int isinff (float __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern int finitef (float __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern float dremf (float __x, float __y) noexcept (true); extern float __dremf (float __x, float __y) noexcept (true); 12329: 12329: 12329: 12329: extern float significandf (float __x) noexcept (true); extern float __significandf (float __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern float copysignf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern float nanf (const char *__tagb) noexcept (true); extern float __nanf (const char *__tagb) noexcept (true); 12329: # 213 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern int isnanf (float __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: 12329: extern float j0f (float) noexcept (true); extern float __j0f (float) noexcept (true); 12329: extern float j1f (float) noexcept (true); extern float __j1f (float) noexcept (true); 12329: extern float jnf (int, float) noexcept (true); extern float __jnf (int, float) noexcept (true); 12329: extern float y0f (float) noexcept (true); extern float __y0f (float) noexcept (true); 12329: extern float y1f (float) noexcept (true); extern float __y1f (float) noexcept (true); 12329: extern float ynf (int, float) noexcept (true); extern float __ynf (int, float) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern float erff (float) noexcept (true); extern float __erff (float) noexcept (true); 12329: extern float erfcf (float) noexcept (true); extern float __erfcf (float) noexcept (true); 12329: extern float lgammaf (float) noexcept (true); extern float __lgammaf (float) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern float tgammaf (float) noexcept (true); extern float __tgammaf (float) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern float gammaf (float) noexcept (true); extern float __gammaf (float) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern float lgammaf_r (float, int *__signgamp) noexcept (true); extern float __lgammaf_r (float, int *__signgamp) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern float rintf (float __x) noexcept (true); extern float __rintf (float __x) noexcept (true); 12329: 12329: 12329: extern float nextafterf (float __x, float __y) noexcept (true); extern float __nextafterf (float __x, float __y) noexcept (true); 12329: 12329: extern float nexttowardf (float __x, long double __y) noexcept (true); extern float __nexttowardf (float __x, long double __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern float nextdownf (float __x) noexcept (true); extern float __nextdownf (float __x) noexcept (true); 12329: 12329: extern float nextupf (float __x) noexcept (true); extern float __nextupf (float __x) noexcept (true); 12329: 12329: 12329: 12329: extern float remainderf (float __x, float __y) noexcept (true); extern float __remainderf (float __x, float __y) noexcept (true); 12329: 12329: 12329: 12329: extern float scalbnf (float __x, int __n) noexcept (true); extern float __scalbnf (float __x, int __n) noexcept (true); 12329: 12329: 12329: 12329: extern int ilogbf (float __x) noexcept (true); extern int __ilogbf (float __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long int llogbf (float __x) noexcept (true); extern long int __llogbf (float __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern float scalblnf (float __x, long int __n) noexcept (true); extern float __scalblnf (float __x, long int __n) noexcept (true); 12329: 12329: 12329: 12329: extern float nearbyintf (float __x) noexcept (true); extern float __nearbyintf (float __x) noexcept (true); 12329: 12329: 12329: 12329: extern float roundf (float __x) noexcept (true) __attribute__ ((__const__)); extern float __roundf (float __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern float truncf (float __x) noexcept (true) __attribute__ ((__const__)); extern float __truncf (float __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern float remquof (float __x, float __y, int *__quo) noexcept (true); extern float __remquof (float __x, float __y, int *__quo) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long int lrintf (float __x) noexcept (true); extern long int __lrintf (float __x) noexcept (true); 12329: __extension__ 12329: extern long long int llrintf (float __x) noexcept (true); extern long long int __llrintf (float __x) noexcept (true); 12329: 12329: 12329: 12329: extern long int lroundf (float __x) noexcept (true); extern long int __lroundf (float __x) noexcept (true); 12329: __extension__ 12329: extern long long int llroundf (float __x) noexcept (true); extern long long int __llroundf (float __x) noexcept (true); 12329: 12329: 12329: 12329: extern float fdimf (float __x, float __y) noexcept (true); extern float __fdimf (float __x, float __y) noexcept (true); 12329: 12329: 12329: 12329: extern float fmaxf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern float fminf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fminf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern float fmaf (float __x, float __y, float __z) noexcept (true); extern float __fmaf (float __x, float __y, float __z) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern float roundevenf (float __x) noexcept (true) __attribute__ ((__const__)); extern float __roundevenf (float __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: extern int canonicalizef (float *__cx, const float *__x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern float fmaxmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fmaxmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern float fminmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fminmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern float fmaximumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fmaximumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern float fminimumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fminimumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern float fmaximum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fmaximum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern float fminimum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fminimum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern float fmaximum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fmaximum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern float fminimum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fminimum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern float fmaximum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fmaximum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern float fminimum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fminimum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern int totalorderf (const float *__x, const float *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern int totalordermagf (const float *__x, const float *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern float getpayloadf (const float *__x) noexcept (true); extern float __getpayloadf (const float *__x) noexcept (true); 12329: 12329: 12329: extern int setpayloadf (float *__x, float __payload) noexcept (true); 12329: 12329: 12329: extern int setpayloadsigf (float *__x, float __payload) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern float scalbf (float __x, float __n) noexcept (true); extern float __scalbf (float __x, float __n) noexcept (true); 12329: # 331 "/usr/include/math.h" 2 3 4 12329: # 398 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 12329: # 20 "/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 12329: extern int __fpclassifyl (long double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern int __signbitl (long double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern int __isinfl (long double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern int __finitel (long double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern int __isnanl (long double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern int __iseqsigl (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: extern int __issignalingl (long double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: # 399 "/usr/include/math.h" 2 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 1 3 4 12329: # 53 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern long double acosl (long double __x) noexcept (true); extern long double __acosl (long double __x) noexcept (true); 12329: 12329: extern long double asinl (long double __x) noexcept (true); extern long double __asinl (long double __x) noexcept (true); 12329: 12329: extern long double atanl (long double __x) noexcept (true); extern long double __atanl (long double __x) noexcept (true); 12329: 12329: extern long double atan2l (long double __y, long double __x) noexcept (true); extern long double __atan2l (long double __y, long double __x) noexcept (true); 12329: 12329: 12329: extern long double cosl (long double __x) noexcept (true); extern long double __cosl (long double __x) noexcept (true); 12329: 12329: extern long double sinl (long double __x) noexcept (true); extern long double __sinl (long double __x) noexcept (true); 12329: 12329: extern long double tanl (long double __x) noexcept (true); extern long double __tanl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long double coshl (long double __x) noexcept (true); extern long double __coshl (long double __x) noexcept (true); 12329: 12329: extern long double sinhl (long double __x) noexcept (true); extern long double __sinhl (long double __x) noexcept (true); 12329: 12329: extern long double tanhl (long double __x) noexcept (true); extern long double __tanhl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: extern void sincosl (long double __x, long double *__sinx, long double *__cosx) noexcept (true); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern long double acoshl (long double __x) noexcept (true); extern long double __acoshl (long double __x) noexcept (true); 12329: 12329: extern long double asinhl (long double __x) noexcept (true); extern long double __asinhl (long double __x) noexcept (true); 12329: 12329: extern long double atanhl (long double __x) noexcept (true); extern long double __atanhl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern long double expl (long double __x) noexcept (true); extern long double __expl (long double __x) noexcept (true); 12329: 12329: 12329: extern long double frexpl (long double __x, int *__exponent) noexcept (true); extern long double __frexpl (long double __x, int *__exponent) noexcept (true); 12329: 12329: 12329: extern long double ldexpl (long double __x, int __exponent) noexcept (true); extern long double __ldexpl (long double __x, int __exponent) noexcept (true); 12329: 12329: 12329: extern long double logl (long double __x) noexcept (true); extern long double __logl (long double __x) noexcept (true); 12329: 12329: 12329: extern long double log10l (long double __x) noexcept (true); extern long double __log10l (long double __x) noexcept (true); 12329: 12329: 12329: extern long double modfl (long double __x, long double *__iptr) noexcept (true); extern long double __modfl (long double __x, long double *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: extern long double exp10l (long double __x) noexcept (true); extern long double __exp10l (long double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long double expm1l (long double __x) noexcept (true); extern long double __expm1l (long double __x) noexcept (true); 12329: 12329: 12329: extern long double log1pl (long double __x) noexcept (true); extern long double __log1pl (long double __x) noexcept (true); 12329: 12329: 12329: extern long double logbl (long double __x) noexcept (true); extern long double __logbl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long double exp2l (long double __x) noexcept (true); extern long double __exp2l (long double __x) noexcept (true); 12329: 12329: 12329: extern long double log2l (long double __x) noexcept (true); extern long double __log2l (long double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long double powl (long double __x, long double __y) noexcept (true); extern long double __powl (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: extern long double sqrtl (long double __x) noexcept (true); extern long double __sqrtl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: extern long double hypotl (long double __x, long double __y) noexcept (true); extern long double __hypotl (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long double cbrtl (long double __x) noexcept (true); extern long double __cbrtl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long double ceill (long double __x) noexcept (true) __attribute__ ((__const__)); extern long double __ceill (long double __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern long double fabsl (long double __x) noexcept (true) __attribute__ ((__const__)); extern long double __fabsl (long double __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern long double floorl (long double __x) noexcept (true) __attribute__ ((__const__)); extern long double __floorl (long double __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern long double fmodl (long double __x, long double __y) noexcept (true); extern long double __fmodl (long double __x, long double __y) noexcept (true); 12329: # 177 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern int isinfl (long double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern int finitel (long double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: extern long double dreml (long double __x, long double __y) noexcept (true); extern long double __dreml (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: 12329: extern long double significandl (long double __x) noexcept (true); extern long double __significandl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long double copysignl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern long double nanl (const char *__tagb) noexcept (true); extern long double __nanl (const char *__tagb) noexcept (true); 12329: # 213 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern int isnanl (long double __value) noexcept (true) 12329: __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: 12329: extern long double j0l (long double) noexcept (true); extern long double __j0l (long double) noexcept (true); 12329: extern long double j1l (long double) noexcept (true); extern long double __j1l (long double) noexcept (true); 12329: extern long double jnl (int, long double) noexcept (true); extern long double __jnl (int, long double) noexcept (true); 12329: extern long double y0l (long double) noexcept (true); extern long double __y0l (long double) noexcept (true); 12329: extern long double y1l (long double) noexcept (true); extern long double __y1l (long double) noexcept (true); 12329: extern long double ynl (int, long double) noexcept (true); extern long double __ynl (int, long double) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern long double erfl (long double) noexcept (true); extern long double __erfl (long double) noexcept (true); 12329: extern long double erfcl (long double) noexcept (true); extern long double __erfcl (long double) noexcept (true); 12329: extern long double lgammal (long double) noexcept (true); extern long double __lgammal (long double) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long double tgammal (long double) noexcept (true); extern long double __tgammal (long double) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern long double gammal (long double) noexcept (true); extern long double __gammal (long double) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long double lgammal_r (long double, int *__signgamp) noexcept (true); extern long double __lgammal_r (long double, int *__signgamp) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long double rintl (long double __x) noexcept (true); extern long double __rintl (long double __x) noexcept (true); 12329: 12329: 12329: extern long double nextafterl (long double __x, long double __y) noexcept (true); extern long double __nextafterl (long double __x, long double __y) noexcept (true); 12329: 12329: extern long double nexttowardl (long double __x, long double __y) noexcept (true); extern long double __nexttowardl (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long double nextdownl (long double __x) noexcept (true); extern long double __nextdownl (long double __x) noexcept (true); 12329: 12329: extern long double nextupl (long double __x) noexcept (true); extern long double __nextupl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: extern long double remainderl (long double __x, long double __y) noexcept (true); extern long double __remainderl (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: 12329: extern long double scalbnl (long double __x, int __n) noexcept (true); extern long double __scalbnl (long double __x, int __n) noexcept (true); 12329: 12329: 12329: 12329: extern int ilogbl (long double __x) noexcept (true); extern int __ilogbl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long int llogbl (long double __x) noexcept (true); extern long int __llogbl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long double scalblnl (long double __x, long int __n) noexcept (true); extern long double __scalblnl (long double __x, long int __n) noexcept (true); 12329: 12329: 12329: 12329: extern long double nearbyintl (long double __x) noexcept (true); extern long double __nearbyintl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: extern long double roundl (long double __x) noexcept (true) __attribute__ ((__const__)); extern long double __roundl (long double __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern long double truncl (long double __x) noexcept (true) __attribute__ ((__const__)); extern long double __truncl (long double __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern long double remquol (long double __x, long double __y, int *__quo) noexcept (true); extern long double __remquol (long double __x, long double __y, int *__quo) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long int lrintl (long double __x) noexcept (true); extern long int __lrintl (long double __x) noexcept (true); 12329: __extension__ 12329: extern long long int llrintl (long double __x) noexcept (true); extern long long int __llrintl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: extern long int lroundl (long double __x) noexcept (true); extern long int __lroundl (long double __x) noexcept (true); 12329: __extension__ 12329: extern long long int llroundl (long double __x) noexcept (true); extern long long int __llroundl (long double __x) noexcept (true); 12329: 12329: 12329: 12329: extern long double fdiml (long double __x, long double __y) noexcept (true); extern long double __fdiml (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: 12329: extern long double fmaxl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern long double fminl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern long double fmal (long double __x, long double __y, long double __z) noexcept (true); extern long double __fmal (long double __x, long double __y, long double __z) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long double roundevenl (long double __x) noexcept (true) __attribute__ ((__const__)); extern long double __roundevenl (long double __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: extern int canonicalizel (long double *__cx, const long double *__x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long double fmaxmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fmaxmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern long double fminmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fminmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern long double fmaximuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fmaximuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern long double fminimuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fminimuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern long double fmaximum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fmaximum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern long double fminimum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fminimum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern long double fmaximum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fmaximum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern long double fminimum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fminimum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern long double fmaximum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fmaximum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern long double fminimum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fminimum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern int totalorderl (const long double *__x, const long double *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern int totalordermagl (const long double *__x, const long double *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern long double getpayloadl (const long double *__x) noexcept (true); extern long double __getpayloadl (const long double *__x) noexcept (true); 12329: 12329: 12329: extern int setpayloadl (long double *__x, long double __payload) noexcept (true); 12329: 12329: 12329: extern int setpayloadsigl (long double *__x, long double __payload) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long double scalbl (long double __x, long double __n) noexcept (true); extern long double __scalbl (long double __x, long double __n) noexcept (true); 12329: # 400 "/usr/include/math.h" 2 3 4 12329: # 450 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 1 3 4 12329: # 53 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float32 acosf32 (_Float32 __x) noexcept (true); extern _Float32 __acosf32 (_Float32 __x) noexcept (true); 12329: 12329: extern _Float32 asinf32 (_Float32 __x) noexcept (true); extern _Float32 __asinf32 (_Float32 __x) noexcept (true); 12329: 12329: extern _Float32 atanf32 (_Float32 __x) noexcept (true); extern _Float32 __atanf32 (_Float32 __x) noexcept (true); 12329: 12329: extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) noexcept (true); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) noexcept (true); 12329: 12329: 12329: extern _Float32 cosf32 (_Float32 __x) noexcept (true); extern _Float32 __cosf32 (_Float32 __x) noexcept (true); 12329: 12329: extern _Float32 sinf32 (_Float32 __x) noexcept (true); extern _Float32 __sinf32 (_Float32 __x) noexcept (true); 12329: 12329: extern _Float32 tanf32 (_Float32 __x) noexcept (true); extern _Float32 __tanf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32 coshf32 (_Float32 __x) noexcept (true); extern _Float32 __coshf32 (_Float32 __x) noexcept (true); 12329: 12329: extern _Float32 sinhf32 (_Float32 __x) noexcept (true); extern _Float32 __sinhf32 (_Float32 __x) noexcept (true); 12329: 12329: extern _Float32 tanhf32 (_Float32 __x) noexcept (true); extern _Float32 __tanhf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) noexcept (true); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern _Float32 acoshf32 (_Float32 __x) noexcept (true); extern _Float32 __acoshf32 (_Float32 __x) noexcept (true); 12329: 12329: extern _Float32 asinhf32 (_Float32 __x) noexcept (true); extern _Float32 __asinhf32 (_Float32 __x) noexcept (true); 12329: 12329: extern _Float32 atanhf32 (_Float32 __x) noexcept (true); extern _Float32 __atanhf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32 expf32 (_Float32 __x) noexcept (true); extern _Float32 __expf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: extern _Float32 frexpf32 (_Float32 __x, int *__exponent) noexcept (true); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) noexcept (true); 12329: 12329: 12329: extern _Float32 ldexpf32 (_Float32 __x, int __exponent) noexcept (true); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) noexcept (true); 12329: 12329: 12329: extern _Float32 logf32 (_Float32 __x) noexcept (true); extern _Float32 __logf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: extern _Float32 log10f32 (_Float32 __x) noexcept (true); extern _Float32 __log10f32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) noexcept (true); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: extern _Float32 exp10f32 (_Float32 __x) noexcept (true); extern _Float32 __exp10f32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32 expm1f32 (_Float32 __x) noexcept (true); extern _Float32 __expm1f32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: extern _Float32 log1pf32 (_Float32 __x) noexcept (true); extern _Float32 __log1pf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: extern _Float32 logbf32 (_Float32 __x) noexcept (true); extern _Float32 __logbf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32 exp2f32 (_Float32 __x) noexcept (true); extern _Float32 __exp2f32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: extern _Float32 log2f32 (_Float32 __x) noexcept (true); extern _Float32 __log2f32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32 powf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) noexcept (true); 12329: 12329: 12329: extern _Float32 sqrtf32 (_Float32 __x) noexcept (true); extern _Float32 __sqrtf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32 cbrtf32 (_Float32 __x) noexcept (true); extern _Float32 __cbrtf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32 ceilf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); extern _Float32 __ceilf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32 fabsf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fabsf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32 floorf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); extern _Float32 __floorf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) noexcept (true); 12329: # 198 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __copysignf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float32 nanf32 (const char *__tagb) noexcept (true); extern _Float32 __nanf32 (const char *__tagb) noexcept (true); 12329: # 220 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float32 j0f32 (_Float32) noexcept (true); extern _Float32 __j0f32 (_Float32) noexcept (true); 12329: extern _Float32 j1f32 (_Float32) noexcept (true); extern _Float32 __j1f32 (_Float32) noexcept (true); 12329: extern _Float32 jnf32 (int, _Float32) noexcept (true); extern _Float32 __jnf32 (int, _Float32) noexcept (true); 12329: extern _Float32 y0f32 (_Float32) noexcept (true); extern _Float32 __y0f32 (_Float32) noexcept (true); 12329: extern _Float32 y1f32 (_Float32) noexcept (true); extern _Float32 __y1f32 (_Float32) noexcept (true); 12329: extern _Float32 ynf32 (int, _Float32) noexcept (true); extern _Float32 __ynf32 (int, _Float32) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32 erff32 (_Float32) noexcept (true); extern _Float32 __erff32 (_Float32) noexcept (true); 12329: extern _Float32 erfcf32 (_Float32) noexcept (true); extern _Float32 __erfcf32 (_Float32) noexcept (true); 12329: extern _Float32 lgammaf32 (_Float32) noexcept (true); extern _Float32 __lgammaf32 (_Float32) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32 tgammaf32 (_Float32) noexcept (true); extern _Float32 __tgammaf32 (_Float32) noexcept (true); 12329: # 252 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float32 lgammaf32_r (_Float32, int *__signgamp) noexcept (true); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32 rintf32 (_Float32 __x) noexcept (true); extern _Float32 __rintf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32 nextdownf32 (_Float32 __x) noexcept (true); extern _Float32 __nextdownf32 (_Float32 __x) noexcept (true); 12329: 12329: extern _Float32 nextupf32 (_Float32 __x) noexcept (true); extern _Float32 __nextupf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32 scalbnf32 (_Float32 __x, int __n) noexcept (true); extern _Float32 __scalbnf32 (_Float32 __x, int __n) noexcept (true); 12329: 12329: 12329: 12329: extern int ilogbf32 (_Float32 __x) noexcept (true); extern int __ilogbf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long int llogbf32 (_Float32 __x) noexcept (true); extern long int __llogbf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32 scalblnf32 (_Float32 __x, long int __n) noexcept (true); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32 nearbyintf32 (_Float32 __x) noexcept (true); extern _Float32 __nearbyintf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32 roundf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); extern _Float32 __roundf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern _Float32 truncf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); extern _Float32 __truncf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) noexcept (true); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long int lrintf32 (_Float32 __x) noexcept (true); extern long int __lrintf32 (_Float32 __x) noexcept (true); 12329: __extension__ 12329: extern long long int llrintf32 (_Float32 __x) noexcept (true); extern long long int __llrintf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: extern long int lroundf32 (_Float32 __x) noexcept (true); extern long int __lroundf32 (_Float32 __x) noexcept (true); 12329: __extension__ 12329: extern long long int llroundf32 (_Float32 __x) noexcept (true); extern long long int __llroundf32 (_Float32 __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fmaxf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32 fminf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fminf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) noexcept (true); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32 roundevenf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); extern _Float32 __roundevenf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fmaxmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fminmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float32 fmaximumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fmaximumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32 fminimumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fminimumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32 fmaximum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fmaximum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32 fminimum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fminimum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32 fmaximum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fmaximum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32 fminimum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fminimum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32 fmaximum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fmaximum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32 fminimum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fminimum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern int totalorderf32 (const _Float32 *__x, const _Float32 *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern int totalordermagf32 (const _Float32 *__x, const _Float32 *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern _Float32 getpayloadf32 (const _Float32 *__x) noexcept (true); extern _Float32 __getpayloadf32 (const _Float32 *__x) noexcept (true); 12329: 12329: 12329: extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) noexcept (true); 12329: 12329: 12329: extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) noexcept (true); 12329: # 451 "/usr/include/math.h" 2 3 4 12329: # 467 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 1 3 4 12329: # 53 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float64 acosf64 (_Float64 __x) noexcept (true); extern _Float64 __acosf64 (_Float64 __x) noexcept (true); 12329: 12329: extern _Float64 asinf64 (_Float64 __x) noexcept (true); extern _Float64 __asinf64 (_Float64 __x) noexcept (true); 12329: 12329: extern _Float64 atanf64 (_Float64 __x) noexcept (true); extern _Float64 __atanf64 (_Float64 __x) noexcept (true); 12329: 12329: extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) noexcept (true); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) noexcept (true); 12329: 12329: 12329: extern _Float64 cosf64 (_Float64 __x) noexcept (true); extern _Float64 __cosf64 (_Float64 __x) noexcept (true); 12329: 12329: extern _Float64 sinf64 (_Float64 __x) noexcept (true); extern _Float64 __sinf64 (_Float64 __x) noexcept (true); 12329: 12329: extern _Float64 tanf64 (_Float64 __x) noexcept (true); extern _Float64 __tanf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64 coshf64 (_Float64 __x) noexcept (true); extern _Float64 __coshf64 (_Float64 __x) noexcept (true); 12329: 12329: extern _Float64 sinhf64 (_Float64 __x) noexcept (true); extern _Float64 __sinhf64 (_Float64 __x) noexcept (true); 12329: 12329: extern _Float64 tanhf64 (_Float64 __x) noexcept (true); extern _Float64 __tanhf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) noexcept (true); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern _Float64 acoshf64 (_Float64 __x) noexcept (true); extern _Float64 __acoshf64 (_Float64 __x) noexcept (true); 12329: 12329: extern _Float64 asinhf64 (_Float64 __x) noexcept (true); extern _Float64 __asinhf64 (_Float64 __x) noexcept (true); 12329: 12329: extern _Float64 atanhf64 (_Float64 __x) noexcept (true); extern _Float64 __atanhf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64 expf64 (_Float64 __x) noexcept (true); extern _Float64 __expf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: extern _Float64 frexpf64 (_Float64 __x, int *__exponent) noexcept (true); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) noexcept (true); 12329: 12329: 12329: extern _Float64 ldexpf64 (_Float64 __x, int __exponent) noexcept (true); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) noexcept (true); 12329: 12329: 12329: extern _Float64 logf64 (_Float64 __x) noexcept (true); extern _Float64 __logf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: extern _Float64 log10f64 (_Float64 __x) noexcept (true); extern _Float64 __log10f64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) noexcept (true); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: extern _Float64 exp10f64 (_Float64 __x) noexcept (true); extern _Float64 __exp10f64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64 expm1f64 (_Float64 __x) noexcept (true); extern _Float64 __expm1f64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: extern _Float64 log1pf64 (_Float64 __x) noexcept (true); extern _Float64 __log1pf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: extern _Float64 logbf64 (_Float64 __x) noexcept (true); extern _Float64 __logbf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64 exp2f64 (_Float64 __x) noexcept (true); extern _Float64 __exp2f64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: extern _Float64 log2f64 (_Float64 __x) noexcept (true); extern _Float64 __log2f64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64 powf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: 12329: 12329: extern _Float64 sqrtf64 (_Float64 __x) noexcept (true); extern _Float64 __sqrtf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64 cbrtf64 (_Float64 __x) noexcept (true); extern _Float64 __cbrtf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64 ceilf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); extern _Float64 __ceilf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64 fabsf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fabsf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64 floorf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); extern _Float64 __floorf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: # 198 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __copysignf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float64 nanf64 (const char *__tagb) noexcept (true); extern _Float64 __nanf64 (const char *__tagb) noexcept (true); 12329: # 220 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float64 j0f64 (_Float64) noexcept (true); extern _Float64 __j0f64 (_Float64) noexcept (true); 12329: extern _Float64 j1f64 (_Float64) noexcept (true); extern _Float64 __j1f64 (_Float64) noexcept (true); 12329: extern _Float64 jnf64 (int, _Float64) noexcept (true); extern _Float64 __jnf64 (int, _Float64) noexcept (true); 12329: extern _Float64 y0f64 (_Float64) noexcept (true); extern _Float64 __y0f64 (_Float64) noexcept (true); 12329: extern _Float64 y1f64 (_Float64) noexcept (true); extern _Float64 __y1f64 (_Float64) noexcept (true); 12329: extern _Float64 ynf64 (int, _Float64) noexcept (true); extern _Float64 __ynf64 (int, _Float64) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64 erff64 (_Float64) noexcept (true); extern _Float64 __erff64 (_Float64) noexcept (true); 12329: extern _Float64 erfcf64 (_Float64) noexcept (true); extern _Float64 __erfcf64 (_Float64) noexcept (true); 12329: extern _Float64 lgammaf64 (_Float64) noexcept (true); extern _Float64 __lgammaf64 (_Float64) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64 tgammaf64 (_Float64) noexcept (true); extern _Float64 __tgammaf64 (_Float64) noexcept (true); 12329: # 252 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float64 lgammaf64_r (_Float64, int *__signgamp) noexcept (true); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64 rintf64 (_Float64 __x) noexcept (true); extern _Float64 __rintf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64 nextdownf64 (_Float64 __x) noexcept (true); extern _Float64 __nextdownf64 (_Float64 __x) noexcept (true); 12329: 12329: extern _Float64 nextupf64 (_Float64 __x) noexcept (true); extern _Float64 __nextupf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64 scalbnf64 (_Float64 __x, int __n) noexcept (true); extern _Float64 __scalbnf64 (_Float64 __x, int __n) noexcept (true); 12329: 12329: 12329: 12329: extern int ilogbf64 (_Float64 __x) noexcept (true); extern int __ilogbf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long int llogbf64 (_Float64 __x) noexcept (true); extern long int __llogbf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64 scalblnf64 (_Float64 __x, long int __n) noexcept (true); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64 nearbyintf64 (_Float64 __x) noexcept (true); extern _Float64 __nearbyintf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64 roundf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); extern _Float64 __roundf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern _Float64 truncf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); extern _Float64 __truncf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) noexcept (true); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long int lrintf64 (_Float64 __x) noexcept (true); extern long int __lrintf64 (_Float64 __x) noexcept (true); 12329: __extension__ 12329: extern long long int llrintf64 (_Float64 __x) noexcept (true); extern long long int __llrintf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: extern long int lroundf64 (_Float64 __x) noexcept (true); extern long int __lroundf64 (_Float64 __x) noexcept (true); 12329: __extension__ 12329: extern long long int llroundf64 (_Float64 __x) noexcept (true); extern long long int __llroundf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fmaxf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64 fminf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fminf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64 roundevenf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); extern _Float64 __roundevenf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fmaxmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fminmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float64 fmaximumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fmaximumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64 fminimumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fminimumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64 fmaximum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fmaximum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64 fminimum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fminimum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64 fmaximum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fmaximum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64 fminimum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fminimum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64 fmaximum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fmaximum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64 fminimum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fminimum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern int totalorderf64 (const _Float64 *__x, const _Float64 *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern int totalordermagf64 (const _Float64 *__x, const _Float64 *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern _Float64 getpayloadf64 (const _Float64 *__x) noexcept (true); extern _Float64 __getpayloadf64 (const _Float64 *__x) noexcept (true); 12329: 12329: 12329: extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) noexcept (true); 12329: 12329: 12329: extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) noexcept (true); 12329: # 468 "/usr/include/math.h" 2 3 4 12329: # 484 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 1 3 4 12329: # 53 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float128 acosf128 (_Float128 __x) noexcept (true); extern _Float128 __acosf128 (_Float128 __x) noexcept (true); 12329: 12329: extern _Float128 asinf128 (_Float128 __x) noexcept (true); extern _Float128 __asinf128 (_Float128 __x) noexcept (true); 12329: 12329: extern _Float128 atanf128 (_Float128 __x) noexcept (true); extern _Float128 __atanf128 (_Float128 __x) noexcept (true); 12329: 12329: extern _Float128 atan2f128 (_Float128 __y, _Float128 __x) noexcept (true); extern _Float128 __atan2f128 (_Float128 __y, _Float128 __x) noexcept (true); 12329: 12329: 12329: extern _Float128 cosf128 (_Float128 __x) noexcept (true); extern _Float128 __cosf128 (_Float128 __x) noexcept (true); 12329: 12329: extern _Float128 sinf128 (_Float128 __x) noexcept (true); extern _Float128 __sinf128 (_Float128 __x) noexcept (true); 12329: 12329: extern _Float128 tanf128 (_Float128 __x) noexcept (true); extern _Float128 __tanf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float128 coshf128 (_Float128 __x) noexcept (true); extern _Float128 __coshf128 (_Float128 __x) noexcept (true); 12329: 12329: extern _Float128 sinhf128 (_Float128 __x) noexcept (true); extern _Float128 __sinhf128 (_Float128 __x) noexcept (true); 12329: 12329: extern _Float128 tanhf128 (_Float128 __x) noexcept (true); extern _Float128 __tanhf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: extern void sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) noexcept (true); extern void __sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern _Float128 acoshf128 (_Float128 __x) noexcept (true); extern _Float128 __acoshf128 (_Float128 __x) noexcept (true); 12329: 12329: extern _Float128 asinhf128 (_Float128 __x) noexcept (true); extern _Float128 __asinhf128 (_Float128 __x) noexcept (true); 12329: 12329: extern _Float128 atanhf128 (_Float128 __x) noexcept (true); extern _Float128 __atanhf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern _Float128 expf128 (_Float128 __x) noexcept (true); extern _Float128 __expf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: extern _Float128 frexpf128 (_Float128 __x, int *__exponent) noexcept (true); extern _Float128 __frexpf128 (_Float128 __x, int *__exponent) noexcept (true); 12329: 12329: 12329: extern _Float128 ldexpf128 (_Float128 __x, int __exponent) noexcept (true); extern _Float128 __ldexpf128 (_Float128 __x, int __exponent) noexcept (true); 12329: 12329: 12329: extern _Float128 logf128 (_Float128 __x) noexcept (true); extern _Float128 __logf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: extern _Float128 log10f128 (_Float128 __x) noexcept (true); extern _Float128 __log10f128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: extern _Float128 modff128 (_Float128 __x, _Float128 *__iptr) noexcept (true); extern _Float128 __modff128 (_Float128 __x, _Float128 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: extern _Float128 exp10f128 (_Float128 __x) noexcept (true); extern _Float128 __exp10f128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float128 expm1f128 (_Float128 __x) noexcept (true); extern _Float128 __expm1f128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: extern _Float128 log1pf128 (_Float128 __x) noexcept (true); extern _Float128 __log1pf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: extern _Float128 logbf128 (_Float128 __x) noexcept (true); extern _Float128 __logbf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float128 exp2f128 (_Float128 __x) noexcept (true); extern _Float128 __exp2f128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: extern _Float128 log2f128 (_Float128 __x) noexcept (true); extern _Float128 __log2f128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float128 powf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __powf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float128 sqrtf128 (_Float128 __x) noexcept (true); extern _Float128 __sqrtf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float128 hypotf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __hypotf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float128 cbrtf128 (_Float128 __x) noexcept (true); extern _Float128 __cbrtf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float128 ceilf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); extern _Float128 __ceilf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float128 fabsf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fabsf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float128 floorf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); extern _Float128 __floorf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float128 fmodf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __fmodf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: # 198 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float128 copysignf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __copysignf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float128 nanf128 (const char *__tagb) noexcept (true); extern _Float128 __nanf128 (const char *__tagb) noexcept (true); 12329: # 220 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float128 j0f128 (_Float128) noexcept (true); extern _Float128 __j0f128 (_Float128) noexcept (true); 12329: extern _Float128 j1f128 (_Float128) noexcept (true); extern _Float128 __j1f128 (_Float128) noexcept (true); 12329: extern _Float128 jnf128 (int, _Float128) noexcept (true); extern _Float128 __jnf128 (int, _Float128) noexcept (true); 12329: extern _Float128 y0f128 (_Float128) noexcept (true); extern _Float128 __y0f128 (_Float128) noexcept (true); 12329: extern _Float128 y1f128 (_Float128) noexcept (true); extern _Float128 __y1f128 (_Float128) noexcept (true); 12329: extern _Float128 ynf128 (int, _Float128) noexcept (true); extern _Float128 __ynf128 (int, _Float128) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern _Float128 erff128 (_Float128) noexcept (true); extern _Float128 __erff128 (_Float128) noexcept (true); 12329: extern _Float128 erfcf128 (_Float128) noexcept (true); extern _Float128 __erfcf128 (_Float128) noexcept (true); 12329: extern _Float128 lgammaf128 (_Float128) noexcept (true); extern _Float128 __lgammaf128 (_Float128) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float128 tgammaf128 (_Float128) noexcept (true); extern _Float128 __tgammaf128 (_Float128) noexcept (true); 12329: # 252 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float128 lgammaf128_r (_Float128, int *__signgamp) noexcept (true); extern _Float128 __lgammaf128_r (_Float128, int *__signgamp) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float128 rintf128 (_Float128 __x) noexcept (true); extern _Float128 __rintf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: extern _Float128 nextafterf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __nextafterf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float128 nextdownf128 (_Float128 __x) noexcept (true); extern _Float128 __nextdownf128 (_Float128 __x) noexcept (true); 12329: 12329: extern _Float128 nextupf128 (_Float128 __x) noexcept (true); extern _Float128 __nextupf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float128 remainderf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __remainderf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: 12329: extern _Float128 scalbnf128 (_Float128 __x, int __n) noexcept (true); extern _Float128 __scalbnf128 (_Float128 __x, int __n) noexcept (true); 12329: 12329: 12329: 12329: extern int ilogbf128 (_Float128 __x) noexcept (true); extern int __ilogbf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long int llogbf128 (_Float128 __x) noexcept (true); extern long int __llogbf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float128 scalblnf128 (_Float128 __x, long int __n) noexcept (true); extern _Float128 __scalblnf128 (_Float128 __x, long int __n) noexcept (true); 12329: 12329: 12329: 12329: extern _Float128 nearbyintf128 (_Float128 __x) noexcept (true); extern _Float128 __nearbyintf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float128 roundf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); extern _Float128 __roundf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern _Float128 truncf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); extern _Float128 __truncf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float128 remquof128 (_Float128 __x, _Float128 __y, int *__quo) noexcept (true); extern _Float128 __remquof128 (_Float128 __x, _Float128 __y, int *__quo) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long int lrintf128 (_Float128 __x) noexcept (true); extern long int __lrintf128 (_Float128 __x) noexcept (true); 12329: __extension__ 12329: extern long long int llrintf128 (_Float128 __x) noexcept (true); extern long long int __llrintf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: extern long int lroundf128 (_Float128 __x) noexcept (true); extern long int __lroundf128 (_Float128 __x) noexcept (true); 12329: __extension__ 12329: extern long long int llroundf128 (_Float128 __x) noexcept (true); extern long long int __llroundf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float128 fdimf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __fdimf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: 12329: extern _Float128 fmaxf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fmaxf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float128 fminf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fminf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern _Float128 fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); extern _Float128 __fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float128 roundevenf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); extern _Float128 __roundevenf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern __intmax_t fromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __intmax_t fromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: extern int canonicalizef128 (_Float128 *__cx, const _Float128 *__x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float128 fmaxmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fmaxmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float128 fminmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fminmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float128 fmaximumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fmaximumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float128 fminimumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fminimumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float128 fmaximum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fmaximum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float128 fminimum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fminimum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float128 fmaximum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fmaximum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float128 fminimum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fminimum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float128 fmaximum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fmaximum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float128 fminimum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fminimum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern int totalorderf128 (const _Float128 *__x, const _Float128 *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern int totalordermagf128 (const _Float128 *__x, const _Float128 *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern _Float128 getpayloadf128 (const _Float128 *__x) noexcept (true); extern _Float128 __getpayloadf128 (const _Float128 *__x) noexcept (true); 12329: 12329: 12329: extern int setpayloadf128 (_Float128 *__x, _Float128 __payload) noexcept (true); 12329: 12329: 12329: extern int setpayloadsigf128 (_Float128 *__x, _Float128 __payload) noexcept (true); 12329: # 485 "/usr/include/math.h" 2 3 4 12329: # 501 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 1 3 4 12329: # 53 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float32x acosf32x (_Float32x __x) noexcept (true); extern _Float32x __acosf32x (_Float32x __x) noexcept (true); 12329: 12329: extern _Float32x asinf32x (_Float32x __x) noexcept (true); extern _Float32x __asinf32x (_Float32x __x) noexcept (true); 12329: 12329: extern _Float32x atanf32x (_Float32x __x) noexcept (true); extern _Float32x __atanf32x (_Float32x __x) noexcept (true); 12329: 12329: extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) noexcept (true); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) noexcept (true); 12329: 12329: 12329: extern _Float32x cosf32x (_Float32x __x) noexcept (true); extern _Float32x __cosf32x (_Float32x __x) noexcept (true); 12329: 12329: extern _Float32x sinf32x (_Float32x __x) noexcept (true); extern _Float32x __sinf32x (_Float32x __x) noexcept (true); 12329: 12329: extern _Float32x tanf32x (_Float32x __x) noexcept (true); extern _Float32x __tanf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32x coshf32x (_Float32x __x) noexcept (true); extern _Float32x __coshf32x (_Float32x __x) noexcept (true); 12329: 12329: extern _Float32x sinhf32x (_Float32x __x) noexcept (true); extern _Float32x __sinhf32x (_Float32x __x) noexcept (true); 12329: 12329: extern _Float32x tanhf32x (_Float32x __x) noexcept (true); extern _Float32x __tanhf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) noexcept (true); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern _Float32x acoshf32x (_Float32x __x) noexcept (true); extern _Float32x __acoshf32x (_Float32x __x) noexcept (true); 12329: 12329: extern _Float32x asinhf32x (_Float32x __x) noexcept (true); extern _Float32x __asinhf32x (_Float32x __x) noexcept (true); 12329: 12329: extern _Float32x atanhf32x (_Float32x __x) noexcept (true); extern _Float32x __atanhf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32x expf32x (_Float32x __x) noexcept (true); extern _Float32x __expf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: extern _Float32x frexpf32x (_Float32x __x, int *__exponent) noexcept (true); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) noexcept (true); 12329: 12329: 12329: extern _Float32x ldexpf32x (_Float32x __x, int __exponent) noexcept (true); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) noexcept (true); 12329: 12329: 12329: extern _Float32x logf32x (_Float32x __x) noexcept (true); extern _Float32x __logf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: extern _Float32x log10f32x (_Float32x __x) noexcept (true); extern _Float32x __log10f32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) noexcept (true); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: extern _Float32x exp10f32x (_Float32x __x) noexcept (true); extern _Float32x __exp10f32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32x expm1f32x (_Float32x __x) noexcept (true); extern _Float32x __expm1f32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: extern _Float32x log1pf32x (_Float32x __x) noexcept (true); extern _Float32x __log1pf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: extern _Float32x logbf32x (_Float32x __x) noexcept (true); extern _Float32x __logbf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32x exp2f32x (_Float32x __x) noexcept (true); extern _Float32x __exp2f32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: extern _Float32x log2f32x (_Float32x __x) noexcept (true); extern _Float32x __log2f32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32x powf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) noexcept (true); 12329: 12329: 12329: extern _Float32x sqrtf32x (_Float32x __x) noexcept (true); extern _Float32x __sqrtf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32x cbrtf32x (_Float32x __x) noexcept (true); extern _Float32x __cbrtf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32x ceilf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); extern _Float32x __ceilf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32x fabsf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fabsf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32x floorf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); extern _Float32x __floorf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) noexcept (true); 12329: # 198 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __copysignf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float32x nanf32x (const char *__tagb) noexcept (true); extern _Float32x __nanf32x (const char *__tagb) noexcept (true); 12329: # 220 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float32x j0f32x (_Float32x) noexcept (true); extern _Float32x __j0f32x (_Float32x) noexcept (true); 12329: extern _Float32x j1f32x (_Float32x) noexcept (true); extern _Float32x __j1f32x (_Float32x) noexcept (true); 12329: extern _Float32x jnf32x (int, _Float32x) noexcept (true); extern _Float32x __jnf32x (int, _Float32x) noexcept (true); 12329: extern _Float32x y0f32x (_Float32x) noexcept (true); extern _Float32x __y0f32x (_Float32x) noexcept (true); 12329: extern _Float32x y1f32x (_Float32x) noexcept (true); extern _Float32x __y1f32x (_Float32x) noexcept (true); 12329: extern _Float32x ynf32x (int, _Float32x) noexcept (true); extern _Float32x __ynf32x (int, _Float32x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32x erff32x (_Float32x) noexcept (true); extern _Float32x __erff32x (_Float32x) noexcept (true); 12329: extern _Float32x erfcf32x (_Float32x) noexcept (true); extern _Float32x __erfcf32x (_Float32x) noexcept (true); 12329: extern _Float32x lgammaf32x (_Float32x) noexcept (true); extern _Float32x __lgammaf32x (_Float32x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32x tgammaf32x (_Float32x) noexcept (true); extern _Float32x __tgammaf32x (_Float32x) noexcept (true); 12329: # 252 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) noexcept (true); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32x rintf32x (_Float32x __x) noexcept (true); extern _Float32x __rintf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32x nextdownf32x (_Float32x __x) noexcept (true); extern _Float32x __nextdownf32x (_Float32x __x) noexcept (true); 12329: 12329: extern _Float32x nextupf32x (_Float32x __x) noexcept (true); extern _Float32x __nextupf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32x scalbnf32x (_Float32x __x, int __n) noexcept (true); extern _Float32x __scalbnf32x (_Float32x __x, int __n) noexcept (true); 12329: 12329: 12329: 12329: extern int ilogbf32x (_Float32x __x) noexcept (true); extern int __ilogbf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long int llogbf32x (_Float32x __x) noexcept (true); extern long int __llogbf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32x scalblnf32x (_Float32x __x, long int __n) noexcept (true); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32x nearbyintf32x (_Float32x __x) noexcept (true); extern _Float32x __nearbyintf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32x roundf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); extern _Float32x __roundf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern _Float32x truncf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); extern _Float32x __truncf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) noexcept (true); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long int lrintf32x (_Float32x __x) noexcept (true); extern long int __lrintf32x (_Float32x __x) noexcept (true); 12329: __extension__ 12329: extern long long int llrintf32x (_Float32x __x) noexcept (true); extern long long int __llrintf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: extern long int lroundf32x (_Float32x __x) noexcept (true); extern long int __lroundf32x (_Float32x __x) noexcept (true); 12329: __extension__ 12329: extern long long int llroundf32x (_Float32x __x) noexcept (true); extern long long int __llroundf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) noexcept (true); 12329: 12329: 12329: 12329: extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fmaxf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32x fminf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fminf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float32x roundevenf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); extern _Float32x __roundevenf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fmaxmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fminmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float32x fmaximumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fmaximumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32x fminimumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fminimumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32x fmaximum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fmaximum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32x fminimum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fminimum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32x fmaximum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fmaximum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32x fminimum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fminimum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32x fmaximum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fmaximum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float32x fminimum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fminimum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern int totalorderf32x (const _Float32x *__x, const _Float32x *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern int totalordermagf32x (const _Float32x *__x, const _Float32x *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern _Float32x getpayloadf32x (const _Float32x *__x) noexcept (true); extern _Float32x __getpayloadf32x (const _Float32x *__x) noexcept (true); 12329: 12329: 12329: extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) noexcept (true); 12329: 12329: 12329: extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) noexcept (true); 12329: # 502 "/usr/include/math.h" 2 3 4 12329: # 518 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 1 3 4 12329: # 53 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float64x acosf64x (_Float64x __x) noexcept (true); extern _Float64x __acosf64x (_Float64x __x) noexcept (true); 12329: 12329: extern _Float64x asinf64x (_Float64x __x) noexcept (true); extern _Float64x __asinf64x (_Float64x __x) noexcept (true); 12329: 12329: extern _Float64x atanf64x (_Float64x __x) noexcept (true); extern _Float64x __atanf64x (_Float64x __x) noexcept (true); 12329: 12329: extern _Float64x atan2f64x (_Float64x __y, _Float64x __x) noexcept (true); extern _Float64x __atan2f64x (_Float64x __y, _Float64x __x) noexcept (true); 12329: 12329: 12329: extern _Float64x cosf64x (_Float64x __x) noexcept (true); extern _Float64x __cosf64x (_Float64x __x) noexcept (true); 12329: 12329: extern _Float64x sinf64x (_Float64x __x) noexcept (true); extern _Float64x __sinf64x (_Float64x __x) noexcept (true); 12329: 12329: extern _Float64x tanf64x (_Float64x __x) noexcept (true); extern _Float64x __tanf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64x coshf64x (_Float64x __x) noexcept (true); extern _Float64x __coshf64x (_Float64x __x) noexcept (true); 12329: 12329: extern _Float64x sinhf64x (_Float64x __x) noexcept (true); extern _Float64x __sinhf64x (_Float64x __x) noexcept (true); 12329: 12329: extern _Float64x tanhf64x (_Float64x __x) noexcept (true); extern _Float64x __tanhf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: extern void sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) noexcept (true); extern void __sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern _Float64x acoshf64x (_Float64x __x) noexcept (true); extern _Float64x __acoshf64x (_Float64x __x) noexcept (true); 12329: 12329: extern _Float64x asinhf64x (_Float64x __x) noexcept (true); extern _Float64x __asinhf64x (_Float64x __x) noexcept (true); 12329: 12329: extern _Float64x atanhf64x (_Float64x __x) noexcept (true); extern _Float64x __atanhf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64x expf64x (_Float64x __x) noexcept (true); extern _Float64x __expf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: extern _Float64x frexpf64x (_Float64x __x, int *__exponent) noexcept (true); extern _Float64x __frexpf64x (_Float64x __x, int *__exponent) noexcept (true); 12329: 12329: 12329: extern _Float64x ldexpf64x (_Float64x __x, int __exponent) noexcept (true); extern _Float64x __ldexpf64x (_Float64x __x, int __exponent) noexcept (true); 12329: 12329: 12329: extern _Float64x logf64x (_Float64x __x) noexcept (true); extern _Float64x __logf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: extern _Float64x log10f64x (_Float64x __x) noexcept (true); extern _Float64x __log10f64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: extern _Float64x modff64x (_Float64x __x, _Float64x *__iptr) noexcept (true); extern _Float64x __modff64x (_Float64x __x, _Float64x *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); 12329: 12329: 12329: 12329: extern _Float64x exp10f64x (_Float64x __x) noexcept (true); extern _Float64x __exp10f64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64x expm1f64x (_Float64x __x) noexcept (true); extern _Float64x __expm1f64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: extern _Float64x log1pf64x (_Float64x __x) noexcept (true); extern _Float64x __log1pf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: extern _Float64x logbf64x (_Float64x __x) noexcept (true); extern _Float64x __logbf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64x exp2f64x (_Float64x __x) noexcept (true); extern _Float64x __exp2f64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: extern _Float64x log2f64x (_Float64x __x) noexcept (true); extern _Float64x __log2f64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64x powf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __powf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: extern _Float64x sqrtf64x (_Float64x __x) noexcept (true); extern _Float64x __sqrtf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64x hypotf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __hypotf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64x cbrtf64x (_Float64x __x) noexcept (true); extern _Float64x __cbrtf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64x ceilf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); extern _Float64x __ceilf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64x fabsf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fabsf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64x floorf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); extern _Float64x __floorf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64x fmodf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __fmodf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: # 198 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __copysignf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float64x nanf64x (const char *__tagb) noexcept (true); extern _Float64x __nanf64x (const char *__tagb) noexcept (true); 12329: # 220 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float64x j0f64x (_Float64x) noexcept (true); extern _Float64x __j0f64x (_Float64x) noexcept (true); 12329: extern _Float64x j1f64x (_Float64x) noexcept (true); extern _Float64x __j1f64x (_Float64x) noexcept (true); 12329: extern _Float64x jnf64x (int, _Float64x) noexcept (true); extern _Float64x __jnf64x (int, _Float64x) noexcept (true); 12329: extern _Float64x y0f64x (_Float64x) noexcept (true); extern _Float64x __y0f64x (_Float64x) noexcept (true); 12329: extern _Float64x y1f64x (_Float64x) noexcept (true); extern _Float64x __y1f64x (_Float64x) noexcept (true); 12329: extern _Float64x ynf64x (int, _Float64x) noexcept (true); extern _Float64x __ynf64x (int, _Float64x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64x erff64x (_Float64x) noexcept (true); extern _Float64x __erff64x (_Float64x) noexcept (true); 12329: extern _Float64x erfcf64x (_Float64x) noexcept (true); extern _Float64x __erfcf64x (_Float64x) noexcept (true); 12329: extern _Float64x lgammaf64x (_Float64x) noexcept (true); extern _Float64x __lgammaf64x (_Float64x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64x tgammaf64x (_Float64x) noexcept (true); extern _Float64x __tgammaf64x (_Float64x) noexcept (true); 12329: # 252 "/usr/include/aarch64-linux-gnu/bits/mathcalls.h" 3 4 12329: extern _Float64x lgammaf64x_r (_Float64x, int *__signgamp) noexcept (true); extern _Float64x __lgammaf64x_r (_Float64x, int *__signgamp) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64x rintf64x (_Float64x __x) noexcept (true); extern _Float64x __rintf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: extern _Float64x nextafterf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __nextafterf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64x nextdownf64x (_Float64x __x) noexcept (true); extern _Float64x __nextdownf64x (_Float64x __x) noexcept (true); 12329: 12329: extern _Float64x nextupf64x (_Float64x __x) noexcept (true); extern _Float64x __nextupf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64x remainderf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __remainderf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64x scalbnf64x (_Float64x __x, int __n) noexcept (true); extern _Float64x __scalbnf64x (_Float64x __x, int __n) noexcept (true); 12329: 12329: 12329: 12329: extern int ilogbf64x (_Float64x __x) noexcept (true); extern int __ilogbf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern long int llogbf64x (_Float64x __x) noexcept (true); extern long int __llogbf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64x scalblnf64x (_Float64x __x, long int __n) noexcept (true); extern _Float64x __scalblnf64x (_Float64x __x, long int __n) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64x nearbyintf64x (_Float64x __x) noexcept (true); extern _Float64x __nearbyintf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64x roundf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); extern _Float64x __roundf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern _Float64x truncf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); extern _Float64x __truncf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float64x remquof64x (_Float64x __x, _Float64x __y, int *__quo) noexcept (true); extern _Float64x __remquof64x (_Float64x __x, _Float64x __y, int *__quo) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern long int lrintf64x (_Float64x __x) noexcept (true); extern long int __lrintf64x (_Float64x __x) noexcept (true); 12329: __extension__ 12329: extern long long int llrintf64x (_Float64x __x) noexcept (true); extern long long int __llrintf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: extern long int lroundf64x (_Float64x __x) noexcept (true); extern long int __lroundf64x (_Float64x __x) noexcept (true); 12329: __extension__ 12329: extern long long int llroundf64x (_Float64x __x) noexcept (true); extern long long int __llroundf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64x fdimf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __fdimf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: 12329: extern _Float64x fmaxf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fmaxf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64x fminf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fminf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern _Float64x fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); extern _Float64x __fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern _Float64x roundevenf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); extern _Float64x __roundevenf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: extern __intmax_t fromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __intmax_t fromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: 12329: 12329: extern __uintmax_t ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) 12329: ; 12329: 12329: 12329: extern int canonicalizef64x (_Float64x *__cx, const _Float64x *__x) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern _Float64x fmaxmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fmaxmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64x fminmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fminmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern _Float64x fmaximumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fmaximumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64x fminimumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fminimumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64x fmaximum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fmaximum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64x fminimum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fminimum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64x fmaximum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fmaximum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64x fminimum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fminimum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64x fmaximum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fmaximum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: extern _Float64x fminimum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fminimum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 12329: 12329: 12329: 12329: 12329: extern int totalorderf64x (const _Float64x *__x, const _Float64x *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern int totalordermagf64x (const _Float64x *__x, const _Float64x *__y) noexcept (true) 12329: 12329: __attribute__ ((__pure__)); 12329: 12329: 12329: extern _Float64x getpayloadf64x (const _Float64x *__x) noexcept (true); extern _Float64x __getpayloadf64x (const _Float64x *__x) noexcept (true); 12329: 12329: 12329: extern int setpayloadf64x (_Float64x *__x, _Float64x __payload) noexcept (true); 12329: 12329: 12329: extern int setpayloadsigf64x (_Float64x *__x, _Float64x __payload) noexcept (true); 12329: # 519 "/usr/include/math.h" 2 3 4 12329: # 566 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern float fadd (double __x, double __y) noexcept (true); 12329: 12329: 12329: extern float fdiv (double __x, double __y) noexcept (true); 12329: 12329: 12329: extern float ffma (double __x, double __y, double __z) noexcept (true); 12329: 12329: 12329: extern float fmul (double __x, double __y) noexcept (true); 12329: 12329: 12329: extern float fsqrt (double __x) noexcept (true); 12329: 12329: 12329: extern float fsub (double __x, double __y) noexcept (true); 12329: # 567 "/usr/include/math.h" 2 3 4 12329: # 587 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern float faddl (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: extern float fdivl (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: extern float ffmal (long double __x, long double __y, long double __z) noexcept (true); 12329: 12329: 12329: extern float fmull (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: extern float fsqrtl (long double __x) noexcept (true); 12329: 12329: 12329: extern float fsubl (long double __x, long double __y) noexcept (true); 12329: # 588 "/usr/include/math.h" 2 3 4 12329: # 616 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern double daddl (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: extern double ddivl (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: extern double dfmal (long double __x, long double __y, long double __z) noexcept (true); 12329: 12329: 12329: extern double dmull (long double __x, long double __y) noexcept (true); 12329: 12329: 12329: extern double dsqrtl (long double __x) noexcept (true); 12329: 12329: 12329: extern double dsubl (long double __x, long double __y) noexcept (true); 12329: # 617 "/usr/include/math.h" 2 3 4 12329: # 697 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) noexcept (true); 12329: 12329: 12329: extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) noexcept (true); 12329: 12329: 12329: extern _Float32 f32fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); 12329: 12329: 12329: extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) noexcept (true); 12329: 12329: 12329: extern _Float32 f32sqrtf32x (_Float32x __x) noexcept (true); 12329: 12329: 12329: extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) noexcept (true); 12329: # 698 "/usr/include/math.h" 2 3 4 12329: # 707 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: 12329: 12329: extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: 12329: 12329: extern _Float32 f32fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); 12329: 12329: 12329: extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: 12329: 12329: extern _Float32 f32sqrtf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: # 708 "/usr/include/math.h" 2 3 4 12329: # 717 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern _Float32 f32addf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: extern _Float32 f32divf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: extern _Float32 f32fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); 12329: 12329: 12329: extern _Float32 f32mulf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: extern _Float32 f32sqrtf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: extern _Float32 f32subf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: # 718 "/usr/include/math.h" 2 3 4 12329: # 727 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern _Float32 f32addf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float32 f32divf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float32 f32fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); 12329: 12329: 12329: extern _Float32 f32mulf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float32 f32sqrtf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: extern _Float32 f32subf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: # 728 "/usr/include/math.h" 2 3 4 12329: # 747 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xfmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xsqrtf64 (_Float64 __x) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) noexcept (true); 12329: # 748 "/usr/include/math.h" 2 3 4 12329: # 757 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern _Float32x f32xaddf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xdivf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xfmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xmulf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xsqrtf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xsubf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: # 758 "/usr/include/math.h" 2 3 4 12329: # 767 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern _Float32x f32xaddf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xdivf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xfmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xmulf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xsqrtf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: extern _Float32x f32xsubf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: # 768 "/usr/include/math.h" 2 3 4 12329: # 787 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern _Float64 f64addf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: extern _Float64 f64divf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: extern _Float64 f64fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); 12329: 12329: 12329: extern _Float64 f64mulf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: 12329: 12329: extern _Float64 f64sqrtf64x (_Float64x __x) noexcept (true); 12329: 12329: 12329: extern _Float64 f64subf64x (_Float64x __x, _Float64x __y) noexcept (true); 12329: # 788 "/usr/include/math.h" 2 3 4 12329: # 797 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern _Float64 f64addf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float64 f64divf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float64 f64fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); 12329: 12329: 12329: extern _Float64 f64mulf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float64 f64sqrtf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: extern _Float64 f64subf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: # 798 "/usr/include/math.h" 2 3 4 12329: # 817 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 12329: # 24 "/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h" 3 4 12329: extern _Float64x f64xaddf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float64x f64xdivf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float64x f64xfmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); 12329: 12329: 12329: extern _Float64x f64xmulf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: 12329: 12329: extern _Float64x f64xsqrtf128 (_Float128 __x) noexcept (true); 12329: 12329: 12329: extern _Float64x f64xsubf128 (_Float128 __x, _Float128 __y) noexcept (true); 12329: # 818 "/usr/include/math.h" 2 3 4 12329: # 854 "/usr/include/math.h" 3 4 12329: extern int signgam; 12329: # 934 "/usr/include/math.h" 3 4 12329: enum 12329: { 12329: FP_NAN = 12329: 12329: 0, 12329: FP_INFINITE = 12329: 12329: 1, 12329: FP_ZERO = 12329: 12329: 2, 12329: FP_SUBNORMAL = 12329: 12329: 3, 12329: FP_NORMAL = 12329: 12329: 4 12329: }; 12329: # 1054 "/usr/include/math.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/iscanonical.h" 1 3 4 12329: # 1055 "/usr/include/math.h" 2 3 4 12329: # 1066 "/usr/include/math.h" 3 4 12329: extern "C++" { 12329: inline int issignaling (float __val) { return __issignalingf (__val); } 12329: inline int issignaling (double __val) { return __issignaling (__val); } 12329: inline int 12329: issignaling (long double __val) 12329: { 12329: 12329: 12329: 12329: return __issignalingl (__val); 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 1097 "/usr/include/math.h" 3 4 12329: extern "C++" { 12329: # 1128 "/usr/include/math.h" 3 4 12329: template inline bool 12329: iszero (__T __val) 12329: { 12329: return __val == 0; 12329: } 12329: 12329: } 12329: # 1363 "/usr/include/math.h" 3 4 12329: extern "C++" { 12329: template struct __iseqsig_type; 12329: 12329: template<> struct __iseqsig_type 12329: { 12329: static int __call (float __x, float __y) throw () 12329: { 12329: return __iseqsigf (__x, __y); 12329: } 12329: }; 12329: 12329: template<> struct __iseqsig_type 12329: { 12329: static int __call (double __x, double __y) throw () 12329: { 12329: return __iseqsig (__x, __y); 12329: } 12329: }; 12329: 12329: template<> struct __iseqsig_type 12329: { 12329: static int __call (long double __x, long double __y) throw () 12329: { 12329: 12329: return __iseqsigl (__x, __y); 12329: 12329: 12329: 12329: } 12329: }; 12329: # 1454 "/usr/include/math.h" 3 4 12329: template 12329: inline int 12329: iseqsig (_T1 __x, _T2 __y) throw () 12329: { 12329: 12329: typedef decltype (((__x) + (__y) + 0.0f)) _T3; 12329: 12329: 12329: 12329: return __iseqsig_type<_T3>::__call (__x, __y); 12329: } 12329: 12329: } 12329: 12329: 12329: 12329: 12329: } 12329: # 46 "/usr/include/c++/12/cmath" 2 3 12329: # 77 "/usr/include/c++/12/cmath" 3 12329: extern "C++" 12329: { 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: using ::acos; 12329: 12329: 12329: inline constexpr float 12329: acos(float __x) 12329: { return __builtin_acosf(__x); } 12329: 12329: inline constexpr long double 12329: acos(long double __x) 12329: { return __builtin_acosl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: acos(_Tp __x) 12329: { return __builtin_acos(__x); } 12329: 12329: using ::asin; 12329: 12329: 12329: inline constexpr float 12329: asin(float __x) 12329: { return __builtin_asinf(__x); } 12329: 12329: inline constexpr long double 12329: asin(long double __x) 12329: { return __builtin_asinl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: asin(_Tp __x) 12329: { return __builtin_asin(__x); } 12329: 12329: using ::atan; 12329: 12329: 12329: inline constexpr float 12329: atan(float __x) 12329: { return __builtin_atanf(__x); } 12329: 12329: inline constexpr long double 12329: atan(long double __x) 12329: { return __builtin_atanl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: atan(_Tp __x) 12329: { return __builtin_atan(__x); } 12329: 12329: using ::atan2; 12329: 12329: 12329: inline constexpr float 12329: atan2(float __y, float __x) 12329: { return __builtin_atan2f(__y, __x); } 12329: 12329: inline constexpr long double 12329: atan2(long double __y, long double __x) 12329: { return __builtin_atan2l(__y, __x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 12329: atan2(_Tp __y, _Up __x) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return atan2(__type(__y), __type(__x)); 12329: } 12329: 12329: using ::ceil; 12329: 12329: 12329: inline constexpr float 12329: ceil(float __x) 12329: { return __builtin_ceilf(__x); } 12329: 12329: inline constexpr long double 12329: ceil(long double __x) 12329: { return __builtin_ceill(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: ceil(_Tp __x) 12329: { return __builtin_ceil(__x); } 12329: 12329: using ::cos; 12329: 12329: 12329: inline constexpr float 12329: cos(float __x) 12329: { return __builtin_cosf(__x); } 12329: 12329: inline constexpr long double 12329: cos(long double __x) 12329: { return __builtin_cosl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: cos(_Tp __x) 12329: { return __builtin_cos(__x); } 12329: 12329: using ::cosh; 12329: 12329: 12329: inline constexpr float 12329: cosh(float __x) 12329: { return __builtin_coshf(__x); } 12329: 12329: inline constexpr long double 12329: cosh(long double __x) 12329: { return __builtin_coshl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: cosh(_Tp __x) 12329: { return __builtin_cosh(__x); } 12329: 12329: using ::exp; 12329: 12329: 12329: inline constexpr float 12329: exp(float __x) 12329: { return __builtin_expf(__x); } 12329: 12329: inline constexpr long double 12329: exp(long double __x) 12329: { return __builtin_expl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: exp(_Tp __x) 12329: { return __builtin_exp(__x); } 12329: 12329: using ::fabs; 12329: 12329: 12329: inline constexpr float 12329: fabs(float __x) 12329: { return __builtin_fabsf(__x); } 12329: 12329: inline constexpr long double 12329: fabs(long double __x) 12329: { return __builtin_fabsl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: fabs(_Tp __x) 12329: { return __builtin_fabs(__x); } 12329: 12329: using ::floor; 12329: 12329: 12329: inline constexpr float 12329: floor(float __x) 12329: { return __builtin_floorf(__x); } 12329: 12329: inline constexpr long double 12329: floor(long double __x) 12329: { return __builtin_floorl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: floor(_Tp __x) 12329: { return __builtin_floor(__x); } 12329: 12329: using ::fmod; 12329: 12329: 12329: inline constexpr float 12329: fmod(float __x, float __y) 12329: { return __builtin_fmodf(__x, __y); } 12329: 12329: inline constexpr long double 12329: fmod(long double __x, long double __y) 12329: { return __builtin_fmodl(__x, __y); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 12329: fmod(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return fmod(__type(__x), __type(__y)); 12329: } 12329: 12329: using ::frexp; 12329: 12329: 12329: inline float 12329: frexp(float __x, int* __exp) 12329: { return __builtin_frexpf(__x, __exp); } 12329: 12329: inline long double 12329: frexp(long double __x, int* __exp) 12329: { return __builtin_frexpl(__x, __exp); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: frexp(_Tp __x, int* __exp) 12329: { return __builtin_frexp(__x, __exp); } 12329: 12329: using ::ldexp; 12329: 12329: 12329: inline constexpr float 12329: ldexp(float __x, int __exp) 12329: { return __builtin_ldexpf(__x, __exp); } 12329: 12329: inline constexpr long double 12329: ldexp(long double __x, int __exp) 12329: { return __builtin_ldexpl(__x, __exp); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: ldexp(_Tp __x, int __exp) 12329: { return __builtin_ldexp(__x, __exp); } 12329: 12329: using ::log; 12329: 12329: 12329: inline constexpr float 12329: log(float __x) 12329: { return __builtin_logf(__x); } 12329: 12329: inline constexpr long double 12329: log(long double __x) 12329: { return __builtin_logl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: log(_Tp __x) 12329: { return __builtin_log(__x); } 12329: 12329: using ::log10; 12329: 12329: 12329: inline constexpr float 12329: log10(float __x) 12329: { return __builtin_log10f(__x); } 12329: 12329: inline constexpr long double 12329: log10(long double __x) 12329: { return __builtin_log10l(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: log10(_Tp __x) 12329: { return __builtin_log10(__x); } 12329: 12329: using ::modf; 12329: 12329: 12329: inline float 12329: modf(float __x, float* __iptr) 12329: { return __builtin_modff(__x, __iptr); } 12329: 12329: inline long double 12329: modf(long double __x, long double* __iptr) 12329: { return __builtin_modfl(__x, __iptr); } 12329: 12329: 12329: using ::pow; 12329: 12329: 12329: inline constexpr float 12329: pow(float __x, float __y) 12329: { return __builtin_powf(__x, __y); } 12329: 12329: inline constexpr long double 12329: pow(long double __x, long double __y) 12329: { return __builtin_powl(__x, __y); } 12329: # 412 "/usr/include/c++/12/cmath" 3 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 12329: pow(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return pow(__type(__x), __type(__y)); 12329: } 12329: 12329: using ::sin; 12329: 12329: 12329: inline constexpr float 12329: sin(float __x) 12329: { return __builtin_sinf(__x); } 12329: 12329: inline constexpr long double 12329: sin(long double __x) 12329: { return __builtin_sinl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: sin(_Tp __x) 12329: { return __builtin_sin(__x); } 12329: 12329: using ::sinh; 12329: 12329: 12329: inline constexpr float 12329: sinh(float __x) 12329: { return __builtin_sinhf(__x); } 12329: 12329: inline constexpr long double 12329: sinh(long double __x) 12329: { return __builtin_sinhl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: sinh(_Tp __x) 12329: { return __builtin_sinh(__x); } 12329: 12329: using ::sqrt; 12329: 12329: 12329: inline constexpr float 12329: sqrt(float __x) 12329: { return __builtin_sqrtf(__x); } 12329: 12329: inline constexpr long double 12329: sqrt(long double __x) 12329: { return __builtin_sqrtl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: sqrt(_Tp __x) 12329: { return __builtin_sqrt(__x); } 12329: 12329: using ::tan; 12329: 12329: 12329: inline constexpr float 12329: tan(float __x) 12329: { return __builtin_tanf(__x); } 12329: 12329: inline constexpr long double 12329: tan(long double __x) 12329: { return __builtin_tanl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: tan(_Tp __x) 12329: { return __builtin_tan(__x); } 12329: 12329: using ::tanh; 12329: 12329: 12329: inline constexpr float 12329: tanh(float __x) 12329: { return __builtin_tanhf(__x); } 12329: 12329: inline constexpr long double 12329: tanh(long double __x) 12329: { return __builtin_tanhl(__x); } 12329: 12329: 12329: template 12329: inline constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: tanh(_Tp __x) 12329: { return __builtin_tanh(__x); } 12329: # 536 "/usr/include/c++/12/cmath" 3 12329: constexpr int 12329: fpclassify(float __x) 12329: { return __builtin_fpclassify(0, 1, 4, 12329: 3, 2, __x); } 12329: 12329: constexpr int 12329: fpclassify(double __x) 12329: { return __builtin_fpclassify(0, 1, 4, 12329: 3, 2, __x); } 12329: 12329: constexpr int 12329: fpclassify(long double __x) 12329: { return __builtin_fpclassify(0, 1, 4, 12329: 3, 2, __x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: int>::__type 12329: fpclassify(_Tp __x) 12329: { return __x != 0 ? 4 : 2; } 12329: 12329: 12329: 12329: constexpr bool 12329: isfinite(float __x) 12329: { return __builtin_isfinite(__x); } 12329: 12329: constexpr bool 12329: isfinite(double __x) 12329: { return __builtin_isfinite(__x); } 12329: 12329: constexpr bool 12329: isfinite(long double __x) 12329: { return __builtin_isfinite(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: bool>::__type 12329: isfinite(_Tp __x) 12329: { return true; } 12329: 12329: 12329: 12329: constexpr bool 12329: isinf(float __x) 12329: { return __builtin_isinf(__x); } 12329: 12329: 12329: 12329: 12329: 12329: constexpr bool 12329: isinf(double __x) 12329: { return __builtin_isinf(__x); } 12329: 12329: 12329: constexpr bool 12329: isinf(long double __x) 12329: { return __builtin_isinf(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: bool>::__type 12329: isinf(_Tp __x) 12329: { return false; } 12329: 12329: 12329: 12329: constexpr bool 12329: isnan(float __x) 12329: { return __builtin_isnan(__x); } 12329: 12329: 12329: 12329: 12329: 12329: constexpr bool 12329: isnan(double __x) 12329: { return __builtin_isnan(__x); } 12329: 12329: 12329: constexpr bool 12329: isnan(long double __x) 12329: { return __builtin_isnan(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: bool>::__type 12329: isnan(_Tp __x) 12329: { return false; } 12329: 12329: 12329: 12329: constexpr bool 12329: isnormal(float __x) 12329: { return __builtin_isnormal(__x); } 12329: 12329: constexpr bool 12329: isnormal(double __x) 12329: { return __builtin_isnormal(__x); } 12329: 12329: constexpr bool 12329: isnormal(long double __x) 12329: { return __builtin_isnormal(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: bool>::__type 12329: isnormal(_Tp __x) 12329: { return __x != 0 ? true : false; } 12329: 12329: 12329: 12329: 12329: constexpr bool 12329: signbit(float __x) 12329: { return __builtin_signbit(__x); } 12329: 12329: constexpr bool 12329: signbit(double __x) 12329: { return __builtin_signbit(__x); } 12329: 12329: constexpr bool 12329: signbit(long double __x) 12329: { return __builtin_signbit(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: bool>::__type 12329: signbit(_Tp __x) 12329: { return __x < 0 ? true : false; } 12329: 12329: 12329: 12329: constexpr bool 12329: isgreater(float __x, float __y) 12329: { return __builtin_isgreater(__x, __y); } 12329: 12329: constexpr bool 12329: isgreater(double __x, double __y) 12329: { return __builtin_isgreater(__x, __y); } 12329: 12329: constexpr bool 12329: isgreater(long double __x, long double __y) 12329: { return __builtin_isgreater(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename 12329: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 12329: && __is_arithmetic<_Up>::__value), bool>::__type 12329: isgreater(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return __builtin_isgreater(__type(__x), __type(__y)); 12329: } 12329: 12329: 12329: 12329: constexpr bool 12329: isgreaterequal(float __x, float __y) 12329: { return __builtin_isgreaterequal(__x, __y); } 12329: 12329: constexpr bool 12329: isgreaterequal(double __x, double __y) 12329: { return __builtin_isgreaterequal(__x, __y); } 12329: 12329: constexpr bool 12329: isgreaterequal(long double __x, long double __y) 12329: { return __builtin_isgreaterequal(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename 12329: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 12329: && __is_arithmetic<_Up>::__value), bool>::__type 12329: isgreaterequal(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return __builtin_isgreaterequal(__type(__x), __type(__y)); 12329: } 12329: 12329: 12329: 12329: constexpr bool 12329: isless(float __x, float __y) 12329: { return __builtin_isless(__x, __y); } 12329: 12329: constexpr bool 12329: isless(double __x, double __y) 12329: { return __builtin_isless(__x, __y); } 12329: 12329: constexpr bool 12329: isless(long double __x, long double __y) 12329: { return __builtin_isless(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename 12329: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 12329: && __is_arithmetic<_Up>::__value), bool>::__type 12329: isless(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return __builtin_isless(__type(__x), __type(__y)); 12329: } 12329: 12329: 12329: 12329: constexpr bool 12329: islessequal(float __x, float __y) 12329: { return __builtin_islessequal(__x, __y); } 12329: 12329: constexpr bool 12329: islessequal(double __x, double __y) 12329: { return __builtin_islessequal(__x, __y); } 12329: 12329: constexpr bool 12329: islessequal(long double __x, long double __y) 12329: { return __builtin_islessequal(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename 12329: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 12329: && __is_arithmetic<_Up>::__value), bool>::__type 12329: islessequal(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return __builtin_islessequal(__type(__x), __type(__y)); 12329: } 12329: 12329: 12329: 12329: constexpr bool 12329: islessgreater(float __x, float __y) 12329: { return __builtin_islessgreater(__x, __y); } 12329: 12329: constexpr bool 12329: islessgreater(double __x, double __y) 12329: { return __builtin_islessgreater(__x, __y); } 12329: 12329: constexpr bool 12329: islessgreater(long double __x, long double __y) 12329: { return __builtin_islessgreater(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename 12329: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 12329: && __is_arithmetic<_Up>::__value), bool>::__type 12329: islessgreater(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return __builtin_islessgreater(__type(__x), __type(__y)); 12329: } 12329: 12329: 12329: 12329: constexpr bool 12329: isunordered(float __x, float __y) 12329: { return __builtin_isunordered(__x, __y); } 12329: 12329: constexpr bool 12329: isunordered(double __x, double __y) 12329: { return __builtin_isunordered(__x, __y); } 12329: 12329: constexpr bool 12329: isunordered(long double __x, long double __y) 12329: { return __builtin_isunordered(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename 12329: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 12329: && __is_arithmetic<_Up>::__value), bool>::__type 12329: isunordered(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return __builtin_isunordered(__type(__x), __type(__y)); 12329: } 12329: # 1065 "/usr/include/c++/12/cmath" 3 12329: using ::double_t; 12329: using ::float_t; 12329: 12329: 12329: using ::acosh; 12329: using ::acoshf; 12329: using ::acoshl; 12329: 12329: using ::asinh; 12329: using ::asinhf; 12329: using ::asinhl; 12329: 12329: using ::atanh; 12329: using ::atanhf; 12329: using ::atanhl; 12329: 12329: using ::cbrt; 12329: using ::cbrtf; 12329: using ::cbrtl; 12329: 12329: using ::copysign; 12329: using ::copysignf; 12329: using ::copysignl; 12329: 12329: using ::erf; 12329: using ::erff; 12329: using ::erfl; 12329: 12329: using ::erfc; 12329: using ::erfcf; 12329: using ::erfcl; 12329: 12329: using ::exp2; 12329: using ::exp2f; 12329: using ::exp2l; 12329: 12329: using ::expm1; 12329: using ::expm1f; 12329: using ::expm1l; 12329: 12329: using ::fdim; 12329: using ::fdimf; 12329: using ::fdiml; 12329: 12329: using ::fma; 12329: using ::fmaf; 12329: using ::fmal; 12329: 12329: using ::fmax; 12329: using ::fmaxf; 12329: using ::fmaxl; 12329: 12329: using ::fmin; 12329: using ::fminf; 12329: using ::fminl; 12329: 12329: using ::hypot; 12329: using ::hypotf; 12329: using ::hypotl; 12329: 12329: using ::ilogb; 12329: using ::ilogbf; 12329: using ::ilogbl; 12329: 12329: using ::lgamma; 12329: using ::lgammaf; 12329: using ::lgammal; 12329: 12329: 12329: using ::llrint; 12329: using ::llrintf; 12329: using ::llrintl; 12329: 12329: using ::llround; 12329: using ::llroundf; 12329: using ::llroundl; 12329: 12329: 12329: using ::log1p; 12329: using ::log1pf; 12329: using ::log1pl; 12329: 12329: using ::log2; 12329: using ::log2f; 12329: using ::log2l; 12329: 12329: using ::logb; 12329: using ::logbf; 12329: using ::logbl; 12329: 12329: using ::lrint; 12329: using ::lrintf; 12329: using ::lrintl; 12329: 12329: using ::lround; 12329: using ::lroundf; 12329: using ::lroundl; 12329: 12329: using ::nan; 12329: using ::nanf; 12329: using ::nanl; 12329: 12329: using ::nearbyint; 12329: using ::nearbyintf; 12329: using ::nearbyintl; 12329: 12329: using ::nextafter; 12329: using ::nextafterf; 12329: using ::nextafterl; 12329: 12329: using ::nexttoward; 12329: using ::nexttowardf; 12329: using ::nexttowardl; 12329: 12329: using ::remainder; 12329: using ::remainderf; 12329: using ::remainderl; 12329: 12329: using ::remquo; 12329: using ::remquof; 12329: using ::remquol; 12329: 12329: using ::rint; 12329: using ::rintf; 12329: using ::rintl; 12329: 12329: using ::round; 12329: using ::roundf; 12329: using ::roundl; 12329: 12329: using ::scalbln; 12329: using ::scalblnf; 12329: using ::scalblnl; 12329: 12329: using ::scalbn; 12329: using ::scalbnf; 12329: using ::scalbnl; 12329: 12329: using ::tgamma; 12329: using ::tgammaf; 12329: using ::tgammal; 12329: 12329: using ::trunc; 12329: using ::truncf; 12329: using ::truncl; 12329: 12329: 12329: 12329: constexpr float 12329: acosh(float __x) 12329: { return __builtin_acoshf(__x); } 12329: 12329: constexpr long double 12329: acosh(long double __x) 12329: { return __builtin_acoshl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: acosh(_Tp __x) 12329: { return __builtin_acosh(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: asinh(float __x) 12329: { return __builtin_asinhf(__x); } 12329: 12329: constexpr long double 12329: asinh(long double __x) 12329: { return __builtin_asinhl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: asinh(_Tp __x) 12329: { return __builtin_asinh(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: atanh(float __x) 12329: { return __builtin_atanhf(__x); } 12329: 12329: constexpr long double 12329: atanh(long double __x) 12329: { return __builtin_atanhl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: atanh(_Tp __x) 12329: { return __builtin_atanh(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: cbrt(float __x) 12329: { return __builtin_cbrtf(__x); } 12329: 12329: constexpr long double 12329: cbrt(long double __x) 12329: { return __builtin_cbrtl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: cbrt(_Tp __x) 12329: { return __builtin_cbrt(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: copysign(float __x, float __y) 12329: { return __builtin_copysignf(__x, __y); } 12329: 12329: constexpr long double 12329: copysign(long double __x, long double __y) 12329: { return __builtin_copysignl(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 12329: copysign(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return copysign(__type(__x), __type(__y)); 12329: } 12329: 12329: 12329: 12329: constexpr float 12329: erf(float __x) 12329: { return __builtin_erff(__x); } 12329: 12329: constexpr long double 12329: erf(long double __x) 12329: { return __builtin_erfl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: erf(_Tp __x) 12329: { return __builtin_erf(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: erfc(float __x) 12329: { return __builtin_erfcf(__x); } 12329: 12329: constexpr long double 12329: erfc(long double __x) 12329: { return __builtin_erfcl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: erfc(_Tp __x) 12329: { return __builtin_erfc(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: exp2(float __x) 12329: { return __builtin_exp2f(__x); } 12329: 12329: constexpr long double 12329: exp2(long double __x) 12329: { return __builtin_exp2l(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: exp2(_Tp __x) 12329: { return __builtin_exp2(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: expm1(float __x) 12329: { return __builtin_expm1f(__x); } 12329: 12329: constexpr long double 12329: expm1(long double __x) 12329: { return __builtin_expm1l(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: expm1(_Tp __x) 12329: { return __builtin_expm1(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: fdim(float __x, float __y) 12329: { return __builtin_fdimf(__x, __y); } 12329: 12329: constexpr long double 12329: fdim(long double __x, long double __y) 12329: { return __builtin_fdiml(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 12329: fdim(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return fdim(__type(__x), __type(__y)); 12329: } 12329: 12329: 12329: 12329: constexpr float 12329: fma(float __x, float __y, float __z) 12329: { return __builtin_fmaf(__x, __y, __z); } 12329: 12329: constexpr long double 12329: fma(long double __x, long double __y, long double __z) 12329: { return __builtin_fmal(__x, __y, __z); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type 12329: fma(_Tp __x, _Up __y, _Vp __z) 12329: { 12329: typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; 12329: return fma(__type(__x), __type(__y), __type(__z)); 12329: } 12329: 12329: 12329: 12329: constexpr float 12329: fmax(float __x, float __y) 12329: { return __builtin_fmaxf(__x, __y); } 12329: 12329: constexpr long double 12329: fmax(long double __x, long double __y) 12329: { return __builtin_fmaxl(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 12329: fmax(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return fmax(__type(__x), __type(__y)); 12329: } 12329: 12329: 12329: 12329: constexpr float 12329: fmin(float __x, float __y) 12329: { return __builtin_fminf(__x, __y); } 12329: 12329: constexpr long double 12329: fmin(long double __x, long double __y) 12329: { return __builtin_fminl(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 12329: fmin(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return fmin(__type(__x), __type(__y)); 12329: } 12329: 12329: 12329: 12329: constexpr float 12329: hypot(float __x, float __y) 12329: { return __builtin_hypotf(__x, __y); } 12329: 12329: constexpr long double 12329: hypot(long double __x, long double __y) 12329: { return __builtin_hypotl(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 12329: hypot(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return hypot(__type(__x), __type(__y)); 12329: } 12329: 12329: 12329: 12329: constexpr int 12329: ilogb(float __x) 12329: { return __builtin_ilogbf(__x); } 12329: 12329: constexpr int 12329: ilogb(long double __x) 12329: { return __builtin_ilogbl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr 12329: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: int>::__type 12329: ilogb(_Tp __x) 12329: { return __builtin_ilogb(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: lgamma(float __x) 12329: { return __builtin_lgammaf(__x); } 12329: 12329: constexpr long double 12329: lgamma(long double __x) 12329: { return __builtin_lgammal(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: lgamma(_Tp __x) 12329: { return __builtin_lgamma(__x); } 12329: 12329: 12329: 12329: constexpr long long 12329: llrint(float __x) 12329: { return __builtin_llrintf(__x); } 12329: 12329: constexpr long long 12329: llrint(long double __x) 12329: { return __builtin_llrintl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: long long>::__type 12329: llrint(_Tp __x) 12329: { return __builtin_llrint(__x); } 12329: 12329: 12329: 12329: constexpr long long 12329: llround(float __x) 12329: { return __builtin_llroundf(__x); } 12329: 12329: constexpr long long 12329: llround(long double __x) 12329: { return __builtin_llroundl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: long long>::__type 12329: llround(_Tp __x) 12329: { return __builtin_llround(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: log1p(float __x) 12329: { return __builtin_log1pf(__x); } 12329: 12329: constexpr long double 12329: log1p(long double __x) 12329: { return __builtin_log1pl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: log1p(_Tp __x) 12329: { return __builtin_log1p(__x); } 12329: 12329: 12329: 12329: 12329: constexpr float 12329: log2(float __x) 12329: { return __builtin_log2f(__x); } 12329: 12329: constexpr long double 12329: log2(long double __x) 12329: { return __builtin_log2l(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: log2(_Tp __x) 12329: { return __builtin_log2(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: logb(float __x) 12329: { return __builtin_logbf(__x); } 12329: 12329: constexpr long double 12329: logb(long double __x) 12329: { return __builtin_logbl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: logb(_Tp __x) 12329: { return __builtin_logb(__x); } 12329: 12329: 12329: 12329: constexpr long 12329: lrint(float __x) 12329: { return __builtin_lrintf(__x); } 12329: 12329: constexpr long 12329: lrint(long double __x) 12329: { return __builtin_lrintl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: long>::__type 12329: lrint(_Tp __x) 12329: { return __builtin_lrint(__x); } 12329: 12329: 12329: 12329: constexpr long 12329: lround(float __x) 12329: { return __builtin_lroundf(__x); } 12329: 12329: constexpr long 12329: lround(long double __x) 12329: { return __builtin_lroundl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: long>::__type 12329: lround(_Tp __x) 12329: { return __builtin_lround(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: nearbyint(float __x) 12329: { return __builtin_nearbyintf(__x); } 12329: 12329: constexpr long double 12329: nearbyint(long double __x) 12329: { return __builtin_nearbyintl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: nearbyint(_Tp __x) 12329: { return __builtin_nearbyint(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: nextafter(float __x, float __y) 12329: { return __builtin_nextafterf(__x, __y); } 12329: 12329: constexpr long double 12329: nextafter(long double __x, long double __y) 12329: { return __builtin_nextafterl(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 12329: nextafter(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return nextafter(__type(__x), __type(__y)); 12329: } 12329: 12329: 12329: 12329: constexpr float 12329: nexttoward(float __x, long double __y) 12329: { return __builtin_nexttowardf(__x, __y); } 12329: 12329: constexpr long double 12329: nexttoward(long double __x, long double __y) 12329: { return __builtin_nexttowardl(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: nexttoward(_Tp __x, long double __y) 12329: { return __builtin_nexttoward(__x, __y); } 12329: 12329: 12329: 12329: constexpr float 12329: remainder(float __x, float __y) 12329: { return __builtin_remainderf(__x, __y); } 12329: 12329: constexpr long double 12329: remainder(long double __x, long double __y) 12329: { return __builtin_remainderl(__x, __y); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 12329: remainder(_Tp __x, _Up __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return remainder(__type(__x), __type(__y)); 12329: } 12329: 12329: 12329: 12329: inline float 12329: remquo(float __x, float __y, int* __pquo) 12329: { return __builtin_remquof(__x, __y, __pquo); } 12329: 12329: inline long double 12329: remquo(long double __x, long double __y, int* __pquo) 12329: { return __builtin_remquol(__x, __y, __pquo); } 12329: 12329: 12329: 12329: template 12329: inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 12329: remquo(_Tp __x, _Up __y, int* __pquo) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return remquo(__type(__x), __type(__y), __pquo); 12329: } 12329: 12329: 12329: 12329: constexpr float 12329: rint(float __x) 12329: { return __builtin_rintf(__x); } 12329: 12329: constexpr long double 12329: rint(long double __x) 12329: { return __builtin_rintl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: rint(_Tp __x) 12329: { return __builtin_rint(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: round(float __x) 12329: { return __builtin_roundf(__x); } 12329: 12329: constexpr long double 12329: round(long double __x) 12329: { return __builtin_roundl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: round(_Tp __x) 12329: { return __builtin_round(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: scalbln(float __x, long __ex) 12329: { return __builtin_scalblnf(__x, __ex); } 12329: 12329: constexpr long double 12329: scalbln(long double __x, long __ex) 12329: { return __builtin_scalblnl(__x, __ex); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: scalbln(_Tp __x, long __ex) 12329: { return __builtin_scalbln(__x, __ex); } 12329: 12329: 12329: 12329: constexpr float 12329: scalbn(float __x, int __ex) 12329: { return __builtin_scalbnf(__x, __ex); } 12329: 12329: constexpr long double 12329: scalbn(long double __x, int __ex) 12329: { return __builtin_scalbnl(__x, __ex); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: scalbn(_Tp __x, int __ex) 12329: { return __builtin_scalbn(__x, __ex); } 12329: 12329: 12329: 12329: constexpr float 12329: tgamma(float __x) 12329: { return __builtin_tgammaf(__x); } 12329: 12329: constexpr long double 12329: tgamma(long double __x) 12329: { return __builtin_tgammal(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: tgamma(_Tp __x) 12329: { return __builtin_tgamma(__x); } 12329: 12329: 12329: 12329: constexpr float 12329: trunc(float __x) 12329: { return __builtin_truncf(__x); } 12329: 12329: constexpr long double 12329: trunc(long double __x) 12329: { return __builtin_truncl(__x); } 12329: 12329: 12329: 12329: template 12329: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 12329: double>::__type 12329: trunc(_Tp __x) 12329: { return __builtin_trunc(__x); } 12329: # 1931 "/usr/include/c++/12/cmath" 3 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: } 12329: # 22 "/usr/include/boost/config/no_tr1/cmath.hpp" 2 3 4 12329: # 17 "/usr/include/boost/numeric/conversion/converter_policies.hpp" 2 3 4 12329: # 26 "/usr/include/boost/numeric/conversion/converter_policies.hpp" 3 4 12329: namespace boost { namespace numeric 12329: { 12329: 12329: template 12329: struct Trunc 12329: { 12329: typedef S source_type ; 12329: 12329: typedef typename mpl::if_< is_arithmetic,S,S const&>::type argument_type ; 12329: 12329: static source_type nearbyint ( argument_type s ) 12329: { 12329: 12329: using std::floor ; 12329: using std::ceil ; 12329: 12329: 12329: return s < static_cast(0) ? ceil(s) : floor(s) ; 12329: } 12329: 12329: typedef mpl::integral_c< std::float_round_style, std::round_toward_zero> round_style ; 12329: } ; 12329: 12329: 12329: 12329: template 12329: struct Floor 12329: { 12329: typedef S source_type ; 12329: 12329: typedef typename mpl::if_< is_arithmetic,S,S const&>::type argument_type ; 12329: 12329: static source_type nearbyint ( argument_type s ) 12329: { 12329: 12329: using std::floor ; 12329: 12329: 12329: return floor(s) ; 12329: } 12329: 12329: typedef mpl::integral_c< std::float_round_style, std::round_toward_neg_infinity> round_style ; 12329: } ; 12329: 12329: template 12329: struct Ceil 12329: { 12329: typedef S source_type ; 12329: 12329: typedef typename mpl::if_< is_arithmetic,S,S const&>::type argument_type ; 12329: 12329: static source_type nearbyint ( argument_type s ) 12329: { 12329: 12329: using std::ceil ; 12329: 12329: 12329: return ceil(s) ; 12329: } 12329: 12329: typedef mpl::integral_c< std::float_round_style, std::round_toward_infinity> round_style ; 12329: } ; 12329: 12329: template 12329: struct RoundEven 12329: { 12329: typedef S source_type ; 12329: 12329: typedef typename mpl::if_< is_arithmetic,S,S const&>::type argument_type ; 12329: 12329: static source_type nearbyint ( argument_type s ) 12329: { 12329: 12329: 12329: 12329: using std::floor ; 12329: using std::ceil ; 12329: 12329: 12329: 12329: S prev = floor(s); 12329: S next = ceil(s); 12329: 12329: S rt = (s - prev) - (next - s); 12329: 12329: S const zero(0.0); 12329: S const two(2.0); 12329: 12329: if ( rt < zero ) 12329: return prev; 12329: else if ( rt > zero ) 12329: return next; 12329: else 12329: { 12329: bool is_prev_even = two * floor(prev / two) == prev ; 12329: return ( is_prev_even ? prev : next ) ; 12329: } 12329: } 12329: 12329: typedef mpl::integral_c< std::float_round_style, std::round_to_nearest> round_style ; 12329: } ; 12329: 12329: 12329: enum range_check_result 12329: { 12329: cInRange = 0 , 12329: cNegOverflow = 1 , 12329: cPosOverflow = 2 12329: } ; 12329: 12329: class bad_numeric_cast : public std::bad_cast 12329: { 12329: public: 12329: 12329: virtual const char * what() const noexcept 12329: { return "bad numeric conversion: overflow"; } 12329: }; 12329: 12329: class negative_overflow : public bad_numeric_cast 12329: { 12329: public: 12329: 12329: virtual const char * what() const noexcept 12329: { return "bad numeric conversion: negative overflow"; } 12329: }; 12329: class positive_overflow : public bad_numeric_cast 12329: { 12329: public: 12329: 12329: virtual const char * what() const noexcept 12329: { return "bad numeric conversion: positive overflow"; } 12329: }; 12329: 12329: struct def_overflow_handler 12329: { 12329: void operator() ( range_check_result r ) 12329: { 12329: 12329: if ( r == cNegOverflow ) 12329: throw negative_overflow() ; 12329: else if ( r == cPosOverflow ) 12329: throw positive_overflow() ; 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: } ; 12329: 12329: struct silent_overflow_handler 12329: { 12329: void operator() ( range_check_result ) {} 12329: } ; 12329: 12329: template 12329: struct raw_converter 12329: { 12329: typedef typename Traits::result_type result_type ; 12329: typedef typename Traits::argument_type argument_type ; 12329: 12329: static result_type low_level_convert ( argument_type s ) { return static_cast(s) ; } 12329: } ; 12329: 12329: struct UseInternalRangeChecker {} ; 12329: 12329: } } 12329: # 15 "/usr/include/boost/numeric/conversion/converter.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 1 3 4 12329: # 17 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/bounds.hpp" 1 3 4 12329: # 13 "/usr/include/boost/numeric/conversion/bounds.hpp" 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/detail/bounds.hpp" 1 3 4 12329: # 17 "/usr/include/boost/numeric/conversion/detail/bounds.hpp" 3 4 12329: namespace boost { namespace numeric { namespace boundsdetail 12329: { 12329: template 12329: class Integral 12329: { 12329: typedef std::numeric_limits limits ; 12329: 12329: public : 12329: 12329: static N lowest () { return limits::min (); } 12329: static N highest () { return limits::max (); } 12329: static N smallest() { return static_cast(1); } 12329: } ; 12329: 12329: template 12329: class Float 12329: { 12329: typedef std::numeric_limits limits ; 12329: 12329: public : 12329: 12329: static N lowest () { return static_cast(-limits::max ()) ; } 12329: static N highest () { return limits::max (); } 12329: static N smallest() { return limits::min (); } 12329: } ; 12329: 12329: template 12329: struct get_impl 12329: { 12329: typedef mpl::bool_< ::std::numeric_limits::is_integer > is_int ; 12329: 12329: typedef Integral impl_int ; 12329: typedef Float impl_float ; 12329: 12329: typedef typename mpl::if_::type type ; 12329: } ; 12329: 12329: } } } 12329: # 14 "/usr/include/boost/numeric/conversion/bounds.hpp" 2 3 4 12329: 12329: namespace boost { namespace numeric 12329: { 12329: 12329: template 12329: struct bounds : boundsdetail::get_impl::type 12329: {} ; 12329: 12329: } } 12329: # 18 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace numeric { namespace convdetail 12329: { 12329: 12329: typedef mpl::integral_c round2zero_c ; 12329: typedef mpl::integral_c round2nearest_c ; 12329: typedef mpl::integral_c round2inf_c ; 12329: typedef mpl::integral_c round2neg_inf_c ; 12329: # 40 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 3 4 12329: template 12329: struct for_round_style 12329: { 12329: typedef ct_switch4 selector ; 12329: 12329: typedef typename selector::type type ; 12329: } ; 12329: # 81 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 3 4 12329: struct non_applicable { typedef mpl::false_ do_apply ; } ; 12329: struct applicable { typedef mpl::true_ do_apply ; } ; 12329: # 96 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 3 4 12329: template 12329: struct LT_LoT : applicable 12329: { 12329: typedef typename Traits::target_type T ; 12329: typedef typename Traits::source_type S ; 12329: typedef typename Traits::argument_type argument_type ; 12329: 12329: static range_check_result apply ( argument_type s ) 12329: { 12329: return s < static_cast(bounds::lowest()) ? cNegOverflow : cInRange ; 12329: } 12329: } ; 12329: 12329: 12329: 12329: template 12329: struct LT_Zero : applicable 12329: { 12329: typedef typename Traits::source_type S ; 12329: typedef typename Traits::argument_type argument_type ; 12329: 12329: static range_check_result apply ( argument_type s ) 12329: { 12329: return s < static_cast(0) ? cNegOverflow : cInRange ; 12329: } 12329: } ; 12329: 12329: 12329: 12329: template 12329: struct LE_PrevLoT : applicable 12329: { 12329: typedef typename Traits::target_type T ; 12329: typedef typename Traits::source_type S ; 12329: typedef typename Traits::argument_type argument_type ; 12329: 12329: static range_check_result apply ( argument_type s ) 12329: { 12329: return s <= static_cast(bounds::lowest()) - static_cast(1.0) 12329: ? cNegOverflow : cInRange ; 12329: } 12329: } ; 12329: 12329: 12329: 12329: template 12329: struct LT_HalfPrevLoT : applicable 12329: { 12329: typedef typename Traits::target_type T ; 12329: typedef typename Traits::source_type S ; 12329: typedef typename Traits::argument_type argument_type ; 12329: 12329: static range_check_result apply ( argument_type s ) 12329: { 12329: return s < static_cast(bounds::lowest()) - static_cast(0.5) 12329: ? cNegOverflow : cInRange ; 12329: } 12329: } ; 12329: 12329: 12329: 12329: template 12329: struct GT_HiT : applicable 12329: { 12329: typedef typename Traits::target_type T ; 12329: typedef typename Traits::source_type S ; 12329: typedef typename Traits::argument_type argument_type ; 12329: 12329: static range_check_result apply ( argument_type s ) 12329: { 12329: return s > static_cast(bounds::highest()) 12329: ? cPosOverflow : cInRange ; 12329: } 12329: } ; 12329: 12329: 12329: 12329: template 12329: struct GE_SuccHiT : applicable 12329: { 12329: typedef typename Traits::target_type T ; 12329: typedef typename Traits::source_type S ; 12329: typedef typename Traits::argument_type argument_type ; 12329: 12329: static range_check_result apply ( argument_type s ) 12329: { 12329: return s >= static_cast(bounds::highest()) + static_cast(1.0) 12329: ? cPosOverflow : cInRange ; 12329: } 12329: } ; 12329: 12329: 12329: 12329: template 12329: struct GT_HalfSuccHiT : applicable 12329: { 12329: typedef typename Traits::target_type T ; 12329: typedef typename Traits::source_type S ; 12329: typedef typename Traits::argument_type argument_type ; 12329: 12329: static range_check_result apply ( argument_type s ) 12329: { 12329: return s >= static_cast(bounds::highest()) + static_cast(0.5) 12329: ? cPosOverflow : cInRange ; 12329: } 12329: } ; 12329: # 215 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 3 4 12329: template 12329: struct applyBoth 12329: { 12329: typedef typename PredA::argument_type argument_type ; 12329: 12329: static range_check_result apply ( argument_type s ) 12329: { 12329: range_check_result r = PredA::apply(s) ; 12329: if ( r == cInRange ) 12329: r = PredB::apply(s); 12329: return r ; 12329: } 12329: } ; 12329: 12329: template 12329: struct combine 12329: { 12329: typedef applyBoth Both ; 12329: typedef void NNone ; 12329: 12329: typedef typename PredA::do_apply do_applyA ; 12329: typedef typename PredB::do_apply do_applyB ; 12329: 12329: typedef typename for_both::type type ; 12329: } ; 12329: # 262 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 3 4 12329: template 12329: struct dummy_range_checker 12329: { 12329: typedef typename Traits::argument_type argument_type ; 12329: 12329: static range_check_result out_of_range ( argument_type ) { return cInRange ; } 12329: static void validate_range ( argument_type ) {} 12329: } ; 12329: # 279 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 3 4 12329: template 12329: struct generic_range_checker 12329: { 12329: typedef OverflowHandler overflow_handler ; 12329: 12329: typedef typename Traits::argument_type argument_type ; 12329: 12329: static range_check_result out_of_range ( argument_type s ) 12329: { 12329: typedef typename combine::type Predicate ; 12329: 12329: return Predicate::apply(s); 12329: } 12329: 12329: static void validate_range ( argument_type s ) 12329: { OverflowHandler()( out_of_range(s) ) ; } 12329: } ; 12329: # 305 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 3 4 12329: template 12329: struct GetRC_Sig2Sig_or_Unsig2Unsig 12329: { 12329: typedef dummy_range_checker Dummy ; 12329: 12329: typedef LT_LoT Pred1 ; 12329: typedef GT_HiT Pred2 ; 12329: 12329: typedef generic_range_checker Normal ; 12329: 12329: typedef typename Traits::subranged subranged ; 12329: 12329: typedef typename mpl::if_::type type ; 12329: } ; 12329: 12329: template 12329: struct GetRC_Sig2Unsig 12329: { 12329: typedef LT_Zero Pred1 ; 12329: typedef GT_HiT Pred2 ; 12329: 12329: typedef generic_range_checker ChoiceA ; 12329: 12329: typedef generic_range_checker ChoiceB ; 12329: 12329: typedef typename Traits::target_type T ; 12329: typedef typename Traits::source_type S ; 12329: 12329: typedef typename subranged_Unsig2Sig::type oposite_subranged ; 12329: 12329: typedef typename mpl::not_::type positively_subranged ; 12329: 12329: typedef typename mpl::if_::type type ; 12329: } ; 12329: 12329: template 12329: struct GetRC_Unsig2Sig 12329: { 12329: typedef GT_HiT Pred1 ; 12329: 12329: typedef generic_range_checker type ; 12329: } ; 12329: 12329: template 12329: struct GetRC_Int2Int 12329: { 12329: typedef GetRC_Sig2Sig_or_Unsig2Unsig Sig2SigQ ; 12329: typedef GetRC_Sig2Unsig Sig2UnsigQ ; 12329: typedef GetRC_Unsig2Sig Unsig2SigQ ; 12329: typedef Sig2SigQ Unsig2UnsigQ ; 12329: 12329: typedef typename Traits::sign_mixture sign_mixture ; 12329: 12329: typedef typename 12329: for_sign_mixture::type 12329: selector ; 12329: 12329: typedef typename selector::type type ; 12329: } ; 12329: 12329: template 12329: struct GetRC_Int2Float 12329: { 12329: typedef dummy_range_checker type ; 12329: } ; 12329: 12329: template 12329: struct GetRC_Float2Int 12329: { 12329: typedef LE_PrevLoT Pred1 ; 12329: typedef GE_SuccHiT Pred2 ; 12329: typedef LT_HalfPrevLoT Pred3 ; 12329: typedef GT_HalfSuccHiT Pred4 ; 12329: typedef GT_HiT Pred5 ; 12329: typedef LT_LoT Pred6 ; 12329: 12329: typedef generic_range_checker ToZero ; 12329: typedef generic_range_checker ToNearest ; 12329: typedef generic_range_checker ToInf ; 12329: typedef generic_range_checker ToNegInf ; 12329: 12329: typedef typename Float2IntRounder::round_style round_style ; 12329: 12329: typedef typename for_round_style::type type ; 12329: } ; 12329: 12329: template 12329: struct GetRC_Float2Float 12329: { 12329: typedef dummy_range_checker Dummy ; 12329: 12329: typedef LT_LoT Pred1 ; 12329: typedef GT_HiT Pred2 ; 12329: 12329: typedef generic_range_checker Normal ; 12329: 12329: typedef typename Traits::subranged subranged ; 12329: 12329: typedef typename mpl::if_::type type ; 12329: } ; 12329: 12329: template 12329: struct GetRC_BuiltIn2BuiltIn 12329: { 12329: typedef GetRC_Int2Int Int2IntQ ; 12329: typedef GetRC_Int2Float Int2FloatQ ; 12329: typedef GetRC_Float2Int Float2IntQ ; 12329: typedef GetRC_Float2Float Float2FloatQ ; 12329: 12329: typedef typename Traits::int_float_mixture int_float_mixture ; 12329: 12329: typedef typename for_int_float_mixture::type selector ; 12329: 12329: typedef typename selector::type type ; 12329: } ; 12329: 12329: template 12329: struct GetRC 12329: { 12329: typedef GetRC_BuiltIn2BuiltIn BuiltIn2BuiltInQ ; 12329: 12329: typedef dummy_range_checker Dummy ; 12329: 12329: typedef mpl::identity DummyQ ; 12329: 12329: typedef typename Traits::udt_builtin_mixture udt_builtin_mixture ; 12329: 12329: typedef typename for_udt_builtin_mixture::type selector ; 12329: 12329: typedef typename selector::type type ; 12329: } ; 12329: # 452 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 3 4 12329: template 12329: struct trivial_converter_impl : public dummy_range_checker 12329: { 12329: typedef Traits traits ; 12329: 12329: typedef typename Traits::source_type source_type ; 12329: typedef typename Traits::argument_type argument_type ; 12329: typedef typename Traits::result_type result_type ; 12329: 12329: static result_type low_level_convert ( argument_type s ) { return s ; } 12329: static source_type nearbyint ( argument_type s ) { return s ; } 12329: static result_type convert ( argument_type s ) { return s ; } 12329: } ; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct rounding_converter : public RangeChecker 12329: ,public Float2IntRounder 12329: ,public RawConverter 12329: { 12329: typedef RangeChecker RangeCheckerBase ; 12329: typedef Float2IntRounder Float2IntRounderBase ; 12329: typedef RawConverter RawConverterBase ; 12329: 12329: typedef Traits traits ; 12329: 12329: typedef typename Traits::source_type source_type ; 12329: typedef typename Traits::argument_type argument_type ; 12329: typedef typename Traits::result_type result_type ; 12329: 12329: static result_type convert ( argument_type s ) 12329: { 12329: RangeCheckerBase::validate_range(s); 12329: source_type s1 = Float2IntRounderBase::nearbyint(s); 12329: return RawConverterBase::low_level_convert(s1); 12329: } 12329: } ; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct non_rounding_converter : public RangeChecker 12329: ,public RawConverter 12329: { 12329: typedef RangeChecker RangeCheckerBase ; 12329: typedef RawConverter RawConverterBase ; 12329: 12329: typedef Traits traits ; 12329: 12329: typedef typename Traits::source_type source_type ; 12329: typedef typename Traits::argument_type argument_type ; 12329: typedef typename Traits::result_type result_type ; 12329: 12329: static source_type nearbyint ( argument_type s ) { return s ; } 12329: 12329: static result_type convert ( argument_type s ) 12329: { 12329: RangeCheckerBase::validate_range(s); 12329: return RawConverterBase::low_level_convert(s); 12329: } 12329: } ; 12329: # 528 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 3 4 12329: template 12329: struct get_non_trivial_converter 12329: { 12329: typedef GetRC InternalRangeCheckerQ ; 12329: 12329: typedef is_same use_internal_RC ; 12329: 12329: typedef mpl::identity UserRangeCheckerQ ; 12329: 12329: typedef typename 12329: mpl::eval_if::type 12329: RangeChecker ; 12329: 12329: typedef non_rounding_converter NonRounding ; 12329: typedef rounding_converter Rounding ; 12329: 12329: typedef mpl::identity NonRoundingQ ; 12329: typedef mpl::identity RoundingQ ; 12329: 12329: typedef typename Traits::int_float_mixture int_float_mixture ; 12329: 12329: typedef typename 12329: for_int_float_mixture::type 12329: selector ; 12329: 12329: typedef typename selector::type type ; 12329: } ; 12329: 12329: template< class Traits 12329: ,class OverflowHandler 12329: ,class Float2IntRounder 12329: ,class RawConverter 12329: ,class UserRangeChecker 12329: > 12329: struct get_converter_impl 12329: { 12329: # 574 "/usr/include/boost/numeric/conversion/detail/converter.hpp" 3 4 12329: typedef trivial_converter_impl Trivial ; 12329: typedef mpl::identity TrivialQ ; 12329: 12329: typedef get_non_trivial_converter< Traits 12329: ,OverflowHandler 12329: ,Float2IntRounder 12329: ,RawConverter 12329: ,UserRangeChecker 12329: > NonTrivialQ ; 12329: 12329: typedef typename Traits::trivial trivial ; 12329: 12329: typedef typename mpl::eval_if::type type ; 12329: } ; 12329: 12329: } } } 12329: # 17 "/usr/include/boost/numeric/conversion/converter.hpp" 2 3 4 12329: 12329: namespace boost { namespace numeric 12329: { 12329: 12329: template, 12329: class OverflowHandler = def_overflow_handler, 12329: class Float2IntRounder = Trunc< typename Traits::source_type> , 12329: class RawConverter = raw_converter, 12329: class UserRangeChecker = UseInternalRangeChecker 12329: > 12329: struct converter : convdetail::get_converter_impl::type 12329: { 12329: typedef Traits traits ; 12329: 12329: typedef typename Traits::argument_type argument_type ; 12329: typedef typename Traits::result_type result_type ; 12329: 12329: result_type operator() ( argument_type s ) const { return this->convert(s) ; } 12329: } ; 12329: 12329: 12329: 12329: template , 12329: class UserRangeChecker = UseInternalRangeChecker 12329: > 12329: struct make_converter_from 12329: { 12329: template, 12329: class RawConverter = raw_converter 12329: > 12329: struct to 12329: { 12329: typedef converter type ; 12329: } ; 12329: 12329: } ; 12329: 12329: } } 12329: # 34 "/usr/include/boost/numeric/conversion/cast.hpp" 2 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/numeric_cast_traits.hpp" 1 3 4 12329: # 14 "/usr/include/boost/numeric/conversion/numeric_cast_traits.hpp" 3 4 12329: namespace boost { namespace numeric { 12329: 12329: template 12329: struct numeric_cast_traits 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: }} 12329: 12329: 12329: # 1 "/usr/include/boost/cstdint.hpp" 1 3 4 12329: # 28 "/usr/include/boost/numeric/conversion/numeric_cast_traits.hpp" 2 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp" 1 3 4 12329: # 12 "/usr/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp" 3 4 12329: # 1 "/usr/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp" 1 3 4 12329: # 12 "/usr/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp" 3 4 12329: namespace boost { namespace numeric { 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , signed char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , unsigned char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , unsigned short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , unsigned int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , unsigned long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , float 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , long double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , signed char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , unsigned char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , unsigned short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , unsigned int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , unsigned long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , float 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , long double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , signed char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , unsigned char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , unsigned short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , unsigned int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , unsigned long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , float 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , long double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , signed char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , unsigned char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , unsigned short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , unsigned int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , unsigned long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , float 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , long double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , signed char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , unsigned char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , unsigned short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , unsigned int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , unsigned long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , float 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , long double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , signed char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , unsigned char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , unsigned short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , unsigned int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , unsigned long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , float 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , long double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , signed char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , unsigned char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , unsigned short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , unsigned int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , unsigned long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , float 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , long double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , signed char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , unsigned char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , unsigned short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , unsigned int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , unsigned long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , float 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , long double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , signed char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , unsigned char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , unsigned short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , unsigned int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , unsigned long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , float 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , long double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , signed char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , unsigned char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , unsigned short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , unsigned int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , unsigned long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , float 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , long double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , signed char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , unsigned char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , unsigned short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , unsigned int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , unsigned long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , float 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , long double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , signed char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , unsigned char 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , unsigned short 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , unsigned int 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , unsigned long 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , float 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , long double 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: }} 12329: # 13 "/usr/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp" 1 3 4 12329: # 9 "/usr/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp" 3 4 12329: namespace boost { namespace numeric { 12329: 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: char 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: signed char 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned char 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: short 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned short 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: int 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned int 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: unsigned long 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: float 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: double 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: long double 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: boost::long_long_type 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: boost::long_long_type 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: boost::ulong_long_type 12329: , boost::long_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: 12329: template <> 12329: struct numeric_cast_traits 12329: < 12329: boost::ulong_long_type 12329: , boost::ulong_long_type 12329: > 12329: { 12329: typedef def_overflow_handler overflow_policy; 12329: typedef UseInternalRangeChecker range_checking_policy; 12329: typedef Trunc rounding_policy; 12329: }; 12329: }} 12329: # 16 "/usr/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp" 2 3 4 12329: # 29 "/usr/include/boost/numeric/conversion/numeric_cast_traits.hpp" 2 3 4 12329: # 35 "/usr/include/boost/numeric/conversion/cast.hpp" 2 3 4 12329: 12329: namespace boost 12329: { 12329: template 12329: inline Target numeric_cast( Source arg ) 12329: { 12329: typedef numeric::conversion_traits conv_traits; 12329: typedef numeric::numeric_cast_traits cast_traits; 12329: typedef boost::numeric::converter 12329: < 12329: Target, 12329: Source, 12329: conv_traits, 12329: typename cast_traits::overflow_policy, 12329: typename cast_traits::rounding_policy, 12329: boost::numeric::raw_converter< conv_traits >, 12329: typename cast_traits::range_checking_policy 12329: > converter; 12329: return converter::convert(arg); 12329: } 12329: 12329: using numeric::bad_numeric_cast; 12329: } 12329: # 37 "/usr/include/boost/lexical_cast/detail/converter_numeric.hpp" 2 3 4 12329: 12329: namespace boost { namespace detail { 12329: 12329: template 12329: struct detect_precision_loss 12329: { 12329: typedef Source source_type; 12329: typedef boost::numeric::Trunc Rounder; 12329: typedef typename conditional< 12329: boost::is_arithmetic::value, Source, Source const& 12329: >::type argument_type ; 12329: 12329: static inline source_type nearbyint(argument_type s, bool& is_ok) noexcept { 12329: const source_type near_int = Rounder::nearbyint(s); 12329: if (near_int && is_ok) { 12329: const source_type orig_div_round = s / near_int; 12329: const source_type eps = std::numeric_limits::epsilon(); 12329: 12329: is_ok = !((orig_div_round > 1 ? orig_div_round - 1 : 1 - orig_div_round) > eps); 12329: } 12329: 12329: return s; 12329: } 12329: 12329: typedef typename Rounder::round_style round_style; 12329: }; 12329: 12329: template 12329: struct fake_precision_loss: public Base 12329: { 12329: typedef Source source_type ; 12329: typedef typename conditional< 12329: boost::is_arithmetic::value, Source, Source const& 12329: >::type argument_type ; 12329: 12329: static inline source_type nearbyint(argument_type s, bool& ) noexcept { 12329: return s; 12329: } 12329: }; 12329: 12329: struct nothrow_overflow_handler 12329: { 12329: inline bool operator() ( boost::numeric::range_check_result r ) const noexcept { 12329: return (r == boost::numeric::cInRange); 12329: } 12329: }; 12329: 12329: template 12329: inline bool noexcept_numeric_convert(const Source& arg, Target& result) noexcept { 12329: typedef boost::numeric::converter< 12329: Target, 12329: Source, 12329: boost::numeric::conversion_traits, 12329: nothrow_overflow_handler, 12329: detect_precision_loss 12329: > converter_orig_t; 12329: 12329: typedef typename boost::conditional< 12329: boost::is_base_of< detect_precision_loss, converter_orig_t >::value, 12329: converter_orig_t, 12329: fake_precision_loss 12329: >::type converter_t; 12329: 12329: bool res = nothrow_overflow_handler()(converter_t::out_of_range(arg)); 12329: result = converter_t::low_level_convert(converter_t::nearbyint(arg, res)); 12329: return res; 12329: } 12329: 12329: template 12329: struct lexical_cast_dynamic_num_not_ignoring_minus 12329: { 12329: static inline bool try_convert(const Source &arg, Target& result) noexcept { 12329: return noexcept_numeric_convert(arg, result); 12329: } 12329: }; 12329: 12329: template 12329: struct lexical_cast_dynamic_num_ignoring_minus 12329: { 12329: static inline bool try_convert(const Source &arg, Target& result) noexcept { 12329: typedef typename boost::conditional< 12329: boost::is_float::value, 12329: boost::type_identity, 12329: boost::make_unsigned 12329: >::type usource_lazy_t; 12329: typedef typename usource_lazy_t::type usource_t; 12329: 12329: if (arg < 0) { 12329: const bool res = noexcept_numeric_convert(0u - arg, result); 12329: result = static_cast(0u - result); 12329: return res; 12329: } else { 12329: return noexcept_numeric_convert(arg, result); 12329: } 12329: } 12329: }; 12329: # 152 "/usr/include/boost/lexical_cast/detail/converter_numeric.hpp" 3 4 12329: template 12329: struct dynamic_num_converter_impl 12329: { 12329: static inline bool try_convert(const Source &arg, Target& result) noexcept { 12329: typedef typename boost::conditional< 12329: boost::is_unsigned::value && 12329: (boost::is_signed::value || boost::is_float::value) && 12329: !(boost::is_same::value) && 12329: !(boost::is_same::value), 12329: lexical_cast_dynamic_num_ignoring_minus, 12329: lexical_cast_dynamic_num_not_ignoring_minus 12329: >::type caster_type; 12329: 12329: return caster_type::try_convert(arg, result); 12329: } 12329: }; 12329: 12329: }} 12329: # 44 "/usr/include/boost/lexical_cast/try_lexical_convert.hpp" 2 3 4 12329: # 1 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 1 3 4 12329: # 23 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 3 4 12329: 12329: # 38 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/has_left_shift.hpp" 1 3 4 12329: # 43 "/usr/include/boost/type_traits/has_left_shift.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 1 3 4 12329: # 25 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 3 4 12329: 12329: # 26 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 3 12329: # 43 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 3 12329: namespace boost 12329: { 12329: 12329: namespace binary_op_detail { 12329: 12329: struct dont_care; 12329: 12329: template 12329: struct has_left_shift_ret_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_left_shift_ret_imp::type>() << std::declval::type>())>::type> 12329: : public boost::integral_constant::type>() << std::declval::type>()), Ret>::value> {}; 12329: 12329: template 12329: struct has_left_shift_void_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_left_shift_void_imp::type>() << std::declval::type>())>::type> 12329: : public boost::integral_constant::type>() << std::declval::type>())>::value> {}; 12329: 12329: template 12329: struct has_left_shift_dc_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_left_shift_dc_imp::type>() << std::declval::type>())>::type> 12329: : public boost::true_type {}; 12329: 12329: } 12329: 12329: template 12329: struct has_left_shift : public boost::binary_op_detail:: has_left_shift_ret_imp {}; 12329: template 12329: struct has_left_shift : public boost::binary_op_detail:: has_left_shift_void_imp {}; 12329: template 12329: struct has_left_shift : public boost::binary_op_detail:: has_left_shift_dc_imp {}; 12329: 12329: 12329: } 12329: # 44 "/usr/include/boost/type_traits/has_left_shift.hpp" 2 3 4 12329: # 39 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 2 3 4 12329: # 1 "/usr/include/boost/type_traits/has_right_shift.hpp" 1 3 4 12329: # 43 "/usr/include/boost/type_traits/has_right_shift.hpp" 3 4 12329: # 1 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 1 3 4 12329: # 25 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 3 4 12329: 12329: # 26 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 3 12329: # 43 "/usr/include/boost/type_traits/detail/has_binary_operator.hpp" 3 12329: namespace boost 12329: { 12329: 12329: namespace binary_op_detail { 12329: 12329: struct dont_care; 12329: 12329: template 12329: struct has_right_shift_ret_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_right_shift_ret_imp::type>() >> std::declval::type>())>::type> 12329: : public boost::integral_constant::type>() >> std::declval::type>()), Ret>::value> {}; 12329: 12329: template 12329: struct has_right_shift_void_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_right_shift_void_imp::type>() >> std::declval::type>())>::type> 12329: : public boost::integral_constant::type>() >> std::declval::type>())>::value> {}; 12329: 12329: template 12329: struct has_right_shift_dc_imp : public boost::false_type {}; 12329: 12329: template 12329: struct has_right_shift_dc_imp::type>() >> std::declval::type>())>::type> 12329: : public boost::true_type {}; 12329: 12329: } 12329: 12329: template 12329: struct has_right_shift : public boost::binary_op_detail:: has_right_shift_ret_imp {}; 12329: template 12329: struct has_right_shift : public boost::binary_op_detail:: has_right_shift_void_imp {}; 12329: template 12329: struct has_right_shift : public boost::binary_op_detail:: has_right_shift_dc_imp {}; 12329: 12329: 12329: } 12329: # 44 "/usr/include/boost/type_traits/has_right_shift.hpp" 2 3 4 12329: # 40 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/detail/lcast_precision.hpp" 1 3 4 12329: # 11 "/usr/include/boost/detail/lcast_precision.hpp" 3 4 12329: # 1 "/usr/include/c++/12/climits" 1 3 4 12329: # 39 "/usr/include/c++/12/climits" 3 4 12329: 12329: # 40 "/usr/include/c++/12/climits" 3 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 1 3 4 12329: # 43 "/usr/include/c++/12/climits" 2 3 12329: # 12 "/usr/include/boost/detail/lcast_precision.hpp" 2 3 4 12329: # 1 "/usr/include/c++/12/ios" 1 3 4 12329: # 36 "/usr/include/c++/12/ios" 3 4 12329: 12329: # 37 "/usr/include/c++/12/ios" 3 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/basic_ios.h" 1 3 12329: # 33 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/locale_facets.h" 1 3 12329: # 37 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: 12329: # 1 "/usr/include/c++/12/cwctype" 1 3 12329: # 39 "/usr/include/c++/12/cwctype" 3 12329: 12329: # 40 "/usr/include/c++/12/cwctype" 3 12329: # 50 "/usr/include/c++/12/cwctype" 3 12329: # 1 "/usr/include/wctype.h" 1 3 4 12329: # 38 "/usr/include/wctype.h" 3 4 12329: # 1 "/usr/include/aarch64-linux-gnu/bits/wctype-wchar.h" 1 3 4 12329: # 38 "/usr/include/aarch64-linux-gnu/bits/wctype-wchar.h" 3 4 12329: typedef unsigned long int wctype_t; 12329: # 56 "/usr/include/aarch64-linux-gnu/bits/wctype-wchar.h" 3 4 12329: enum 12329: { 12329: __ISwupper = 0, 12329: __ISwlower = 1, 12329: __ISwalpha = 2, 12329: __ISwdigit = 3, 12329: __ISwxdigit = 4, 12329: __ISwspace = 5, 12329: __ISwprint = 6, 12329: __ISwgraph = 7, 12329: __ISwblank = 8, 12329: __ISwcntrl = 9, 12329: __ISwpunct = 10, 12329: __ISwalnum = 11, 12329: 12329: _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), 12329: _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), 12329: _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), 12329: _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), 12329: _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), 12329: _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), 12329: _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), 12329: _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), 12329: _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), 12329: _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), 12329: _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), 12329: _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) 12329: }; 12329: 12329: 12329: 12329: extern "C" { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int iswalnum (wint_t __wc) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern int iswalpha (wint_t __wc) noexcept (true); 12329: 12329: 12329: extern int iswcntrl (wint_t __wc) noexcept (true); 12329: 12329: 12329: 12329: extern int iswdigit (wint_t __wc) noexcept (true); 12329: 12329: 12329: 12329: extern int iswgraph (wint_t __wc) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int iswlower (wint_t __wc) noexcept (true); 12329: 12329: 12329: extern int iswprint (wint_t __wc) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int iswpunct (wint_t __wc) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int iswspace (wint_t __wc) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int iswupper (wint_t __wc) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int iswxdigit (wint_t __wc) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern int iswblank (wint_t __wc) noexcept (true); 12329: # 155 "/usr/include/aarch64-linux-gnu/bits/wctype-wchar.h" 3 4 12329: extern wctype_t wctype (const char *__property) noexcept (true); 12329: 12329: 12329: 12329: extern int iswctype (wint_t __wc, wctype_t __desc) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern wint_t towlower (wint_t __wc) noexcept (true); 12329: 12329: 12329: extern wint_t towupper (wint_t __wc) noexcept (true); 12329: 12329: } 12329: # 39 "/usr/include/wctype.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: extern "C" { 12329: 12329: 12329: 12329: typedef const __int32_t *wctrans_t; 12329: 12329: 12329: 12329: extern wctrans_t wctrans (const char *__property) noexcept (true); 12329: 12329: 12329: extern wint_t towctrans (wint_t __wc, wctrans_t __desc) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern int iswalnum_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: extern int iswalpha_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: extern int iswcntrl_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: 12329: extern int iswdigit_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: 12329: extern int iswgraph_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int iswlower_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: extern int iswprint_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int iswpunct_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int iswspace_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int iswupper_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int iswxdigit_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: 12329: 12329: extern int iswblank_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: 12329: extern wctype_t wctype_l (const char *__property, locale_t __locale) 12329: noexcept (true); 12329: 12329: 12329: 12329: extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale) 12329: noexcept (true); 12329: 12329: 12329: 12329: 12329: 12329: 12329: extern wint_t towlower_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: extern wint_t towupper_l (wint_t __wc, locale_t __locale) noexcept (true); 12329: 12329: 12329: 12329: extern wctrans_t wctrans_l (const char *__property, locale_t __locale) 12329: noexcept (true); 12329: 12329: 12329: extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, 12329: locale_t __locale) noexcept (true); 12329: 12329: 12329: 12329: } 12329: # 51 "/usr/include/c++/12/cwctype" 2 3 12329: # 80 "/usr/include/c++/12/cwctype" 3 12329: namespace std 12329: { 12329: using ::wctrans_t; 12329: using ::wctype_t; 12329: using ::wint_t; 12329: 12329: using ::iswalnum; 12329: using ::iswalpha; 12329: 12329: using ::iswblank; 12329: 12329: using ::iswcntrl; 12329: using ::iswctype; 12329: using ::iswdigit; 12329: using ::iswgraph; 12329: using ::iswlower; 12329: using ::iswprint; 12329: using ::iswpunct; 12329: using ::iswspace; 12329: using ::iswupper; 12329: using ::iswxdigit; 12329: using ::towctrans; 12329: using ::towlower; 12329: using ::towupper; 12329: using ::wctrans; 12329: using ::wctype; 12329: } 12329: # 40 "/usr/include/c++/12/bits/locale_facets.h" 2 3 12329: # 1 "/usr/include/c++/12/cctype" 1 3 12329: # 39 "/usr/include/c++/12/cctype" 3 12329: 12329: # 40 "/usr/include/c++/12/cctype" 3 12329: # 41 "/usr/include/c++/12/bits/locale_facets.h" 2 3 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/ctype_base.h" 1 3 12329: # 36 "/usr/include/aarch64-linux-gnu/c++/12/bits/ctype_base.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: struct ctype_base 12329: { 12329: 12329: typedef const int* __to_type; 12329: 12329: 12329: 12329: typedef unsigned short mask; 12329: static const mask upper = _ISupper; 12329: static const mask lower = _ISlower; 12329: static const mask alpha = _ISalpha; 12329: static const mask digit = _ISdigit; 12329: static const mask xdigit = _ISxdigit; 12329: static const mask space = _ISspace; 12329: static const mask print = _ISprint; 12329: static const mask graph = _ISalpha | _ISdigit | _ISpunct; 12329: static const mask cntrl = _IScntrl; 12329: static const mask punct = _ISpunct; 12329: static const mask alnum = _ISalpha | _ISdigit; 12329: 12329: static const mask blank = _ISblank; 12329: 12329: }; 12329: 12329: 12329: } 12329: # 42 "/usr/include/c++/12/bits/locale_facets.h" 2 3 12329: # 50 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 74 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: template 12329: void 12329: __convert_to_v(const char*, _Tp&, ios_base::iostate&, 12329: const __c_locale&) throw(); 12329: 12329: 12329: template<> 12329: void 12329: __convert_to_v(const char*, float&, ios_base::iostate&, 12329: const __c_locale&) throw(); 12329: 12329: template<> 12329: void 12329: __convert_to_v(const char*, double&, ios_base::iostate&, 12329: const __c_locale&) throw(); 12329: 12329: template<> 12329: void 12329: __convert_to_v(const char*, long double&, ios_base::iostate&, 12329: const __c_locale&) throw(); 12329: 12329: 12329: 12329: template 12329: struct __pad 12329: { 12329: static void 12329: _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, 12329: const _CharT* __olds, streamsize __newlen, streamsize __oldlen); 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: _CharT* 12329: __add_grouping(_CharT* __s, _CharT __sep, 12329: const char* __gbeg, size_t __gsize, 12329: const _CharT* __first, const _CharT* __last); 12329: 12329: 12329: 12329: 12329: template 12329: inline 12329: ostreambuf_iterator<_CharT> 12329: __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) 12329: { 12329: __s._M_put(__ws, __len); 12329: return __s; 12329: } 12329: 12329: 12329: template 12329: inline 12329: _OutIter 12329: __write(_OutIter __s, const _CharT* __ws, int __len) 12329: { 12329: for (int __j = 0; __j < __len; __j++, ++__s) 12329: *__s = __ws[__j]; 12329: return __s; 12329: } 12329: # 152 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: template 12329: class __ctype_abstract_base : public locale::facet, public ctype_base 12329: { 12329: public: 12329: 12329: 12329: typedef _CharT char_type; 12329: # 171 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: bool 12329: is(mask __m, char_type __c) const 12329: { return this->do_is(__m, __c); } 12329: # 188 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: const char_type* 12329: is(const char_type *__lo, const char_type *__hi, mask *__vec) const 12329: { return this->do_is(__lo, __hi, __vec); } 12329: # 204 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: const char_type* 12329: scan_is(mask __m, const char_type* __lo, const char_type* __hi) const 12329: { return this->do_scan_is(__m, __lo, __hi); } 12329: # 220 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: const char_type* 12329: scan_not(mask __m, const char_type* __lo, const char_type* __hi) const 12329: { return this->do_scan_not(__m, __lo, __hi); } 12329: # 234 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: char_type 12329: toupper(char_type __c) const 12329: { return this->do_toupper(__c); } 12329: # 249 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: const char_type* 12329: toupper(char_type *__lo, const char_type* __hi) const 12329: { return this->do_toupper(__lo, __hi); } 12329: # 263 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: char_type 12329: tolower(char_type __c) const 12329: { return this->do_tolower(__c); } 12329: # 278 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: const char_type* 12329: tolower(char_type* __lo, const char_type* __hi) const 12329: { return this->do_tolower(__lo, __hi); } 12329: # 295 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: char_type 12329: widen(char __c) const 12329: { return this->do_widen(__c); } 12329: # 314 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: const char* 12329: widen(const char* __lo, const char* __hi, char_type* __to) const 12329: { return this->do_widen(__lo, __hi, __to); } 12329: # 333 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: char 12329: narrow(char_type __c, char __dfault) const 12329: { return this->do_narrow(__c, __dfault); } 12329: # 355 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: const char_type* 12329: narrow(const char_type* __lo, const char_type* __hi, 12329: char __dfault, char* __to) const 12329: { return this->do_narrow(__lo, __hi, __dfault, __to); } 12329: 12329: protected: 12329: explicit 12329: __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } 12329: 12329: virtual 12329: ~__ctype_abstract_base() { } 12329: # 380 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual bool 12329: do_is(mask __m, char_type __c) const = 0; 12329: # 399 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_is(const char_type* __lo, const char_type* __hi, 12329: mask* __vec) const = 0; 12329: # 418 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_scan_is(mask __m, const char_type* __lo, 12329: const char_type* __hi) const = 0; 12329: # 437 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_scan_not(mask __m, const char_type* __lo, 12329: const char_type* __hi) const = 0; 12329: # 455 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char_type 12329: do_toupper(char_type __c) const = 0; 12329: # 472 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_toupper(char_type* __lo, const char_type* __hi) const = 0; 12329: # 488 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char_type 12329: do_tolower(char_type __c) const = 0; 12329: # 505 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_tolower(char_type* __lo, const char_type* __hi) const = 0; 12329: # 524 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char_type 12329: do_widen(char __c) const = 0; 12329: # 545 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char* 12329: do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; 12329: # 566 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char 12329: do_narrow(char_type __c, char __dfault) const = 0; 12329: # 591 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_narrow(const char_type* __lo, const char_type* __hi, 12329: char __dfault, char* __to) const = 0; 12329: }; 12329: # 614 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: template 12329: class ctype : public __ctype_abstract_base<_CharT> 12329: { 12329: public: 12329: 12329: typedef _CharT char_type; 12329: typedef typename __ctype_abstract_base<_CharT>::mask mask; 12329: 12329: 12329: static locale::id id; 12329: 12329: explicit 12329: ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } 12329: 12329: protected: 12329: virtual 12329: ~ctype(); 12329: 12329: virtual bool 12329: do_is(mask __m, char_type __c) const; 12329: 12329: virtual const char_type* 12329: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 12329: 12329: virtual const char_type* 12329: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 12329: 12329: virtual const char_type* 12329: do_scan_not(mask __m, const char_type* __lo, 12329: const char_type* __hi) const; 12329: 12329: virtual char_type 12329: do_toupper(char_type __c) const; 12329: 12329: virtual const char_type* 12329: do_toupper(char_type* __lo, const char_type* __hi) const; 12329: 12329: virtual char_type 12329: do_tolower(char_type __c) const; 12329: 12329: virtual const char_type* 12329: do_tolower(char_type* __lo, const char_type* __hi) const; 12329: 12329: virtual char_type 12329: do_widen(char __c) const; 12329: 12329: virtual const char* 12329: do_widen(const char* __lo, const char* __hi, char_type* __dest) const; 12329: 12329: virtual char 12329: do_narrow(char_type, char __dfault) const; 12329: 12329: virtual const char_type* 12329: do_narrow(const char_type* __lo, const char_type* __hi, 12329: char __dfault, char* __to) const; 12329: }; 12329: 12329: template 12329: locale::id ctype<_CharT>::id; 12329: 12329: 12329: 12329: template 12329: class ctype >; 12329: # 688 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: template<> 12329: class ctype : public locale::facet, public ctype_base 12329: { 12329: public: 12329: 12329: 12329: typedef char char_type; 12329: 12329: protected: 12329: 12329: __c_locale _M_c_locale_ctype; 12329: bool _M_del; 12329: __to_type _M_toupper; 12329: __to_type _M_tolower; 12329: const mask* _M_table; 12329: mutable char _M_widen_ok; 12329: mutable char _M_widen[1 + static_cast(-1)]; 12329: mutable char _M_narrow[1 + static_cast(-1)]; 12329: mutable char _M_narrow_ok; 12329: 12329: 12329: public: 12329: 12329: static locale::id id; 12329: 12329: static const size_t table_size = 1 + static_cast(-1); 12329: # 725 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: explicit 12329: ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); 12329: # 738 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: explicit 12329: ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, 12329: size_t __refs = 0); 12329: # 751 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: inline bool 12329: is(mask __m, char __c) const; 12329: # 766 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: inline const char* 12329: is(const char* __lo, const char* __hi, mask* __vec) const; 12329: # 780 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: inline const char* 12329: scan_is(mask __m, const char* __lo, const char* __hi) const; 12329: # 794 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: inline const char* 12329: scan_not(mask __m, const char* __lo, const char* __hi) const; 12329: # 809 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: char_type 12329: toupper(char_type __c) const 12329: { return this->do_toupper(__c); } 12329: # 826 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: const char_type* 12329: toupper(char_type *__lo, const char_type* __hi) const 12329: { return this->do_toupper(__lo, __hi); } 12329: # 842 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: char_type 12329: tolower(char_type __c) const 12329: { return this->do_tolower(__c); } 12329: # 859 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: const char_type* 12329: tolower(char_type* __lo, const char_type* __hi) const 12329: { return this->do_tolower(__lo, __hi); } 12329: # 879 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: char_type 12329: widen(char __c) const 12329: { 12329: if (_M_widen_ok) 12329: return _M_widen[static_cast(__c)]; 12329: this->_M_widen_init(); 12329: return this->do_widen(__c); 12329: } 12329: # 906 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: const char* 12329: widen(const char* __lo, const char* __hi, char_type* __to) const 12329: { 12329: if (_M_widen_ok == 1) 12329: { 12329: if (__builtin_expect(__hi != __lo, true)) 12329: __builtin_memcpy(__to, __lo, __hi - __lo); 12329: return __hi; 12329: } 12329: if (!_M_widen_ok) 12329: _M_widen_init(); 12329: return this->do_widen(__lo, __hi, __to); 12329: } 12329: # 938 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: char 12329: narrow(char_type __c, char __dfault) const 12329: { 12329: if (_M_narrow[static_cast(__c)]) 12329: return _M_narrow[static_cast(__c)]; 12329: const char __t = do_narrow(__c, __dfault); 12329: if (__t != __dfault) 12329: _M_narrow[static_cast(__c)] = __t; 12329: return __t; 12329: } 12329: # 971 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: const char_type* 12329: narrow(const char_type* __lo, const char_type* __hi, 12329: char __dfault, char* __to) const 12329: { 12329: if (__builtin_expect(_M_narrow_ok == 1, true)) 12329: { 12329: if (__builtin_expect(__hi != __lo, true)) 12329: __builtin_memcpy(__to, __lo, __hi - __lo); 12329: return __hi; 12329: } 12329: if (!_M_narrow_ok) 12329: _M_narrow_init(); 12329: return this->do_narrow(__lo, __hi, __dfault, __to); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: const mask* 12329: table() const throw() 12329: { return _M_table; } 12329: 12329: 12329: static const mask* 12329: classic_table() throw(); 12329: protected: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: virtual 12329: ~ctype(); 12329: # 1021 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char_type 12329: do_toupper(char_type __c) const; 12329: # 1038 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_toupper(char_type* __lo, const char_type* __hi) const; 12329: # 1054 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char_type 12329: do_tolower(char_type __c) const; 12329: # 1071 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_tolower(char_type* __lo, const char_type* __hi) const; 12329: # 1091 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char_type 12329: do_widen(char __c) const 12329: { return __c; } 12329: # 1114 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char* 12329: do_widen(const char* __lo, const char* __hi, char_type* __to) const 12329: { 12329: if (__builtin_expect(__hi != __lo, true)) 12329: __builtin_memcpy(__to, __lo, __hi - __lo); 12329: return __hi; 12329: } 12329: # 1141 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char 12329: do_narrow(char_type __c, char __dfault __attribute__((__unused__))) const 12329: { return __c; } 12329: # 1167 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_narrow(const char_type* __lo, const char_type* __hi, 12329: char __dfault __attribute__((__unused__)), char* __to) const 12329: { 12329: if (__builtin_expect(__hi != __lo, true)) 12329: __builtin_memcpy(__to, __lo, __hi - __lo); 12329: return __hi; 12329: } 12329: 12329: private: 12329: void _M_narrow_init() const; 12329: void _M_widen_init() const; 12329: }; 12329: # 1193 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: template<> 12329: class ctype : public __ctype_abstract_base 12329: { 12329: public: 12329: 12329: 12329: typedef wchar_t char_type; 12329: typedef wctype_t __wmask_type; 12329: 12329: protected: 12329: __c_locale _M_c_locale_ctype; 12329: 12329: 12329: bool _M_narrow_ok; 12329: char _M_narrow[128]; 12329: wint_t _M_widen[1 + static_cast(-1)]; 12329: 12329: 12329: mask _M_bit[16]; 12329: __wmask_type _M_wmask[16]; 12329: 12329: public: 12329: 12329: 12329: static locale::id id; 12329: # 1226 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: explicit 12329: ctype(size_t __refs = 0); 12329: # 1237 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: explicit 12329: ctype(__c_locale __cloc, size_t __refs = 0); 12329: 12329: protected: 12329: __wmask_type 12329: _M_convert_to_wmask(const mask __m) const throw(); 12329: 12329: 12329: virtual 12329: ~ctype(); 12329: # 1261 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual bool 12329: do_is(mask __m, char_type __c) const; 12329: # 1280 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 12329: # 1298 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 12329: # 1316 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_scan_not(mask __m, const char_type* __lo, 12329: const char_type* __hi) const; 12329: # 1333 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char_type 12329: do_toupper(char_type __c) const; 12329: # 1350 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_toupper(char_type* __lo, const char_type* __hi) const; 12329: # 1366 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char_type 12329: do_tolower(char_type __c) const; 12329: # 1383 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_tolower(char_type* __lo, const char_type* __hi) const; 12329: # 1403 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char_type 12329: do_widen(char __c) const; 12329: # 1425 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char* 12329: do_widen(const char* __lo, const char* __hi, char_type* __to) const; 12329: # 1448 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char 12329: do_narrow(char_type __c, char __dfault) const; 12329: # 1474 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual const char_type* 12329: do_narrow(const char_type* __lo, const char_type* __hi, 12329: char __dfault, char* __to) const; 12329: 12329: 12329: void 12329: _M_initialize_ctype() throw(); 12329: }; 12329: 12329: 12329: 12329: template 12329: class ctype_byname : public ctype<_CharT> 12329: { 12329: public: 12329: typedef typename ctype<_CharT>::mask mask; 12329: 12329: explicit 12329: ctype_byname(const char* __s, size_t __refs = 0); 12329: 12329: 12329: explicit 12329: ctype_byname(const string& __s, size_t __refs = 0) 12329: : ctype_byname(__s.c_str(), __refs) { } 12329: 12329: 12329: protected: 12329: virtual 12329: ~ctype_byname() { } 12329: }; 12329: 12329: 12329: template<> 12329: class ctype_byname : public ctype 12329: { 12329: public: 12329: explicit 12329: ctype_byname(const char* __s, size_t __refs = 0); 12329: 12329: 12329: explicit 12329: ctype_byname(const string& __s, size_t __refs = 0); 12329: 12329: 12329: protected: 12329: virtual 12329: ~ctype_byname(); 12329: }; 12329: 12329: 12329: template<> 12329: class ctype_byname : public ctype 12329: { 12329: public: 12329: explicit 12329: ctype_byname(const char* __s, size_t __refs = 0); 12329: 12329: 12329: explicit 12329: ctype_byname(const string& __s, size_t __refs = 0); 12329: 12329: 12329: protected: 12329: virtual 12329: ~ctype_byname(); 12329: }; 12329: 12329: 12329: 12329: } 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/ctype_inline.h" 1 3 12329: # 37 "/usr/include/aarch64-linux-gnu/c++/12/bits/ctype_inline.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: bool 12329: ctype:: 12329: is(mask __m, char __c) const 12329: { return _M_table[static_cast(__c)] & __m; } 12329: 12329: const char* 12329: ctype:: 12329: is(const char* __low, const char* __high, mask* __vec) const 12329: { 12329: while (__low < __high) 12329: *__vec++ = _M_table[static_cast(*__low++)]; 12329: return __high; 12329: } 12329: 12329: const char* 12329: ctype:: 12329: scan_is(mask __m, const char* __low, const char* __high) const 12329: { 12329: while (__low < __high 12329: && !(_M_table[static_cast(*__low)] & __m)) 12329: ++__low; 12329: return __low; 12329: } 12329: 12329: const char* 12329: ctype:: 12329: scan_not(mask __m, const char* __low, const char* __high) const 12329: { 12329: while (__low < __high 12329: && (_M_table[static_cast(*__low)] & __m) != 0) 12329: ++__low; 12329: return __low; 12329: } 12329: 12329: 12329: } 12329: # 1547 "/usr/include/c++/12/bits/locale_facets.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: class __num_base 12329: { 12329: public: 12329: 12329: 12329: enum 12329: { 12329: _S_ominus, 12329: _S_oplus, 12329: _S_ox, 12329: _S_oX, 12329: _S_odigits, 12329: _S_odigits_end = _S_odigits + 16, 12329: _S_oudigits = _S_odigits_end, 12329: _S_oudigits_end = _S_oudigits + 16, 12329: _S_oe = _S_odigits + 14, 12329: _S_oE = _S_oudigits + 14, 12329: _S_oend = _S_oudigits_end 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: static const char* _S_atoms_out; 12329: 12329: 12329: 12329: static const char* _S_atoms_in; 12329: 12329: enum 12329: { 12329: _S_iminus, 12329: _S_iplus, 12329: _S_ix, 12329: _S_iX, 12329: _S_izero, 12329: _S_ie = _S_izero + 14, 12329: _S_iE = _S_izero + 20, 12329: _S_iend = 26 12329: }; 12329: 12329: 12329: 12329: static void 12329: _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); 12329: }; 12329: 12329: template 12329: struct __numpunct_cache : public locale::facet 12329: { 12329: const char* _M_grouping; 12329: size_t _M_grouping_size; 12329: bool _M_use_grouping; 12329: const _CharT* _M_truename; 12329: size_t _M_truename_size; 12329: const _CharT* _M_falsename; 12329: size_t _M_falsename_size; 12329: _CharT _M_decimal_point; 12329: _CharT _M_thousands_sep; 12329: 12329: 12329: 12329: 12329: 12329: _CharT _M_atoms_out[__num_base::_S_oend]; 12329: 12329: 12329: 12329: 12329: 12329: _CharT _M_atoms_in[__num_base::_S_iend]; 12329: 12329: bool _M_allocated; 12329: 12329: __numpunct_cache(size_t __refs = 0) 12329: : facet(__refs), _M_grouping(0), _M_grouping_size(0), 12329: _M_use_grouping(false), 12329: _M_truename(0), _M_truename_size(0), _M_falsename(0), 12329: _M_falsename_size(0), _M_decimal_point(_CharT()), 12329: _M_thousands_sep(_CharT()), _M_allocated(false) 12329: { } 12329: 12329: ~__numpunct_cache(); 12329: 12329: void 12329: _M_cache(const locale& __loc); 12329: 12329: private: 12329: __numpunct_cache& 12329: operator=(const __numpunct_cache&); 12329: 12329: explicit 12329: __numpunct_cache(const __numpunct_cache&); 12329: }; 12329: 12329: template 12329: __numpunct_cache<_CharT>::~__numpunct_cache() 12329: { 12329: if (_M_allocated) 12329: { 12329: delete [] _M_grouping; 12329: delete [] _M_truename; 12329: delete [] _M_falsename; 12329: } 12329: } 12329: 12329: namespace __cxx11 { 12329: # 1677 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: template 12329: class numpunct : public locale::facet 12329: { 12329: public: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef basic_string<_CharT> string_type; 12329: 12329: typedef __numpunct_cache<_CharT> __cache_type; 12329: 12329: protected: 12329: __cache_type* _M_data; 12329: 12329: public: 12329: 12329: static locale::id id; 12329: 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: numpunct(size_t __refs = 0) 12329: : facet(__refs), _M_data(0) 12329: { _M_initialize_numpunct(); } 12329: # 1715 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: explicit 12329: numpunct(__cache_type* __cache, size_t __refs = 0) 12329: : facet(__refs), _M_data(__cache) 12329: { _M_initialize_numpunct(); } 12329: # 1729 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: explicit 12329: numpunct(__c_locale __cloc, size_t __refs = 0) 12329: : facet(__refs), _M_data(0) 12329: { _M_initialize_numpunct(__cloc); } 12329: # 1743 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: char_type 12329: decimal_point() const 12329: { return this->do_decimal_point(); } 12329: # 1756 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: char_type 12329: thousands_sep() const 12329: { return this->do_thousands_sep(); } 12329: # 1787 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: string 12329: grouping() const 12329: { return this->do_grouping(); } 12329: # 1800 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: string_type 12329: truename() const 12329: { return this->do_truename(); } 12329: # 1813 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: string_type 12329: falsename() const 12329: { return this->do_falsename(); } 12329: 12329: protected: 12329: 12329: virtual 12329: ~numpunct(); 12329: # 1830 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char_type 12329: do_decimal_point() const 12329: { return _M_data->_M_decimal_point; } 12329: # 1842 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual char_type 12329: do_thousands_sep() const 12329: { return _M_data->_M_thousands_sep; } 12329: # 1855 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual string 12329: do_grouping() const 12329: { return _M_data->_M_grouping; } 12329: # 1868 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual string_type 12329: do_truename() const 12329: { return _M_data->_M_truename; } 12329: # 1881 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual string_type 12329: do_falsename() const 12329: { return _M_data->_M_falsename; } 12329: 12329: 12329: void 12329: _M_initialize_numpunct(__c_locale __cloc = 0); 12329: }; 12329: 12329: template 12329: locale::id numpunct<_CharT>::id; 12329: 12329: template<> 12329: numpunct::~numpunct(); 12329: 12329: template<> 12329: void 12329: numpunct::_M_initialize_numpunct(__c_locale __cloc); 12329: 12329: 12329: template<> 12329: numpunct::~numpunct(); 12329: 12329: template<> 12329: void 12329: numpunct::_M_initialize_numpunct(__c_locale __cloc); 12329: 12329: 12329: 12329: template 12329: class numpunct_byname : public numpunct<_CharT> 12329: { 12329: public: 12329: typedef _CharT char_type; 12329: typedef basic_string<_CharT> string_type; 12329: 12329: explicit 12329: numpunct_byname(const char* __s, size_t __refs = 0) 12329: : numpunct<_CharT>(__refs) 12329: { 12329: if (__builtin_strcmp(__s, "C") != 0 12329: && __builtin_strcmp(__s, "POSIX") != 0) 12329: { 12329: __c_locale __tmp; 12329: this->_S_create_c_locale(__tmp, __s); 12329: this->_M_initialize_numpunct(__tmp); 12329: this->_S_destroy_c_locale(__tmp); 12329: } 12329: } 12329: 12329: 12329: explicit 12329: numpunct_byname(const string& __s, size_t __refs = 0) 12329: : numpunct_byname(__s.c_str(), __refs) { } 12329: 12329: 12329: protected: 12329: virtual 12329: ~numpunct_byname() { } 12329: }; 12329: 12329: } 12329: 12329: 12329: # 1959 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: template 12329: class num_get : public locale::facet 12329: { 12329: public: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef _InIter iter_type; 12329: 12329: 12329: 12329: static locale::id id; 12329: # 1980 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: explicit 12329: num_get(size_t __refs = 0) : facet(__refs) { } 12329: # 2006 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: iter_type 12329: get(iter_type __in, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, bool& __v) const 12329: { return this->do_get(__in, __end, __io, __err, __v); } 12329: # 2043 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: iter_type 12329: get(iter_type __in, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, long& __v) const 12329: { return this->do_get(__in, __end, __io, __err, __v); } 12329: 12329: iter_type 12329: get(iter_type __in, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, unsigned short& __v) const 12329: { return this->do_get(__in, __end, __io, __err, __v); } 12329: 12329: iter_type 12329: get(iter_type __in, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, unsigned int& __v) const 12329: { return this->do_get(__in, __end, __io, __err, __v); } 12329: 12329: iter_type 12329: get(iter_type __in, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, unsigned long& __v) const 12329: { return this->do_get(__in, __end, __io, __err, __v); } 12329: 12329: 12329: iter_type 12329: get(iter_type __in, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, long long& __v) const 12329: { return this->do_get(__in, __end, __io, __err, __v); } 12329: 12329: iter_type 12329: get(iter_type __in, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, unsigned long long& __v) const 12329: { return this->do_get(__in, __end, __io, __err, __v); } 12329: # 2103 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: iter_type 12329: get(iter_type __in, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, float& __v) const 12329: { return this->do_get(__in, __end, __io, __err, __v); } 12329: 12329: iter_type 12329: get(iter_type __in, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, double& __v) const 12329: { return this->do_get(__in, __end, __io, __err, __v); } 12329: 12329: iter_type 12329: get(iter_type __in, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, long double& __v) const 12329: { return this->do_get(__in, __end, __io, __err, __v); } 12329: # 2146 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: iter_type 12329: get(iter_type __in, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, void*& __v) const 12329: { return this->do_get(__in, __end, __io, __err, __v); } 12329: 12329: protected: 12329: 12329: virtual ~num_get() { } 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: iter_type 12329: _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, 12329: string&) const; 12329: 12329: template 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: iter_type 12329: _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, 12329: _ValueT&) const; 12329: 12329: template 12329: typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type 12329: _M_find(const _CharT2*, size_t __len, _CharT2 __c) const 12329: { 12329: int __ret = -1; 12329: if (__len <= 10) 12329: { 12329: if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) 12329: __ret = __c - _CharT2('0'); 12329: } 12329: else 12329: { 12329: if (__c >= _CharT2('0') && __c <= _CharT2('9')) 12329: __ret = __c - _CharT2('0'); 12329: else if (__c >= _CharT2('a') && __c <= _CharT2('f')) 12329: __ret = 10 + (__c - _CharT2('a')); 12329: else if (__c >= _CharT2('A') && __c <= _CharT2('F')) 12329: __ret = 10 + (__c - _CharT2('A')); 12329: } 12329: return __ret; 12329: } 12329: 12329: template 12329: typename __gnu_cxx::__enable_if::__value, 12329: int>::__type 12329: _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const 12329: { 12329: int __ret = -1; 12329: const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); 12329: if (__q) 12329: { 12329: __ret = __q - __zero; 12329: if (__ret > 15) 12329: __ret -= 6; 12329: } 12329: return __ret; 12329: } 12329: # 2219 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual iter_type 12329: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; 12329: 12329: virtual iter_type 12329: do_get(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, long& __v) const 12329: { return _M_extract_int(__beg, __end, __io, __err, __v); } 12329: 12329: virtual iter_type 12329: do_get(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, unsigned short& __v) const 12329: { return _M_extract_int(__beg, __end, __io, __err, __v); } 12329: 12329: virtual iter_type 12329: do_get(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, unsigned int& __v) const 12329: { return _M_extract_int(__beg, __end, __io, __err, __v); } 12329: 12329: virtual iter_type 12329: do_get(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, unsigned long& __v) const 12329: { return _M_extract_int(__beg, __end, __io, __err, __v); } 12329: 12329: 12329: virtual iter_type 12329: do_get(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, long long& __v) const 12329: { return _M_extract_int(__beg, __end, __io, __err, __v); } 12329: 12329: virtual iter_type 12329: do_get(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, unsigned long long& __v) const 12329: { return _M_extract_int(__beg, __end, __io, __err, __v); } 12329: 12329: 12329: virtual iter_type 12329: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; 12329: 12329: virtual iter_type 12329: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 12329: double&) const; 12329: # 2271 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual iter_type 12329: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 12329: long double&) const; 12329: 12329: 12329: virtual iter_type 12329: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; 12329: # 2299 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: }; 12329: 12329: template 12329: locale::id num_get<_CharT, _InIter>::id; 12329: # 2317 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: template 12329: class num_put : public locale::facet 12329: { 12329: public: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef _OutIter iter_type; 12329: 12329: 12329: 12329: static locale::id id; 12329: # 2338 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: explicit 12329: num_put(size_t __refs = 0) : facet(__refs) { } 12329: # 2356 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: iter_type 12329: put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 12329: { return this->do_put(__s, __io, __fill, __v); } 12329: # 2398 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: iter_type 12329: put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 12329: { return this->do_put(__s, __io, __fill, __v); } 12329: 12329: iter_type 12329: put(iter_type __s, ios_base& __io, char_type __fill, 12329: unsigned long __v) const 12329: { return this->do_put(__s, __io, __fill, __v); } 12329: 12329: 12329: iter_type 12329: put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const 12329: { return this->do_put(__s, __io, __fill, __v); } 12329: 12329: iter_type 12329: put(iter_type __s, ios_base& __io, char_type __fill, 12329: unsigned long long __v) const 12329: { return this->do_put(__s, __io, __fill, __v); } 12329: # 2461 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: iter_type 12329: put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 12329: { return this->do_put(__s, __io, __fill, __v); } 12329: 12329: iter_type 12329: put(iter_type __s, ios_base& __io, char_type __fill, 12329: long double __v) const 12329: { return this->do_put(__s, __io, __fill, __v); } 12329: # 2486 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: iter_type 12329: put(iter_type __s, ios_base& __io, char_type __fill, 12329: const void* __v) const 12329: { return this->do_put(__s, __io, __fill, __v); } 12329: 12329: protected: 12329: template 12329: iter_type 12329: _M_insert_float(iter_type, ios_base& __io, char_type __fill, 12329: char __mod, _ValueT __v) const; 12329: 12329: void 12329: _M_group_float(const char* __grouping, size_t __grouping_size, 12329: char_type __sep, const char_type* __p, char_type* __new, 12329: char_type* __cs, int& __len) const; 12329: 12329: template 12329: iter_type 12329: _M_insert_int(iter_type, ios_base& __io, char_type __fill, 12329: _ValueT __v) const; 12329: 12329: void 12329: _M_group_int(const char* __grouping, size_t __grouping_size, 12329: char_type __sep, ios_base& __io, char_type* __new, 12329: char_type* __cs, int& __len) const; 12329: 12329: void 12329: _M_pad(char_type __fill, streamsize __w, ios_base& __io, 12329: char_type* __new, const char_type* __cs, int& __len) const; 12329: 12329: 12329: virtual 12329: ~num_put() { } 12329: # 2534 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: virtual iter_type 12329: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; 12329: 12329: virtual iter_type 12329: do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 12329: { return _M_insert_int(__s, __io, __fill, __v); } 12329: 12329: virtual iter_type 12329: do_put(iter_type __s, ios_base& __io, char_type __fill, 12329: unsigned long __v) const 12329: { return _M_insert_int(__s, __io, __fill, __v); } 12329: 12329: 12329: virtual iter_type 12329: do_put(iter_type __s, ios_base& __io, char_type __fill, 12329: long long __v) const 12329: { return _M_insert_int(__s, __io, __fill, __v); } 12329: 12329: virtual iter_type 12329: do_put(iter_type __s, ios_base& __io, char_type __fill, 12329: unsigned long long __v) const 12329: { return _M_insert_int(__s, __io, __fill, __v); } 12329: 12329: 12329: virtual iter_type 12329: do_put(iter_type, ios_base&, char_type, double) const; 12329: 12329: 12329: 12329: 12329: 12329: 12329: virtual iter_type 12329: do_put(iter_type, ios_base&, char_type, long double) const; 12329: 12329: 12329: virtual iter_type 12329: do_put(iter_type, ios_base&, char_type, const void*) const; 12329: # 2586 "/usr/include/c++/12/bits/locale_facets.h" 3 12329: }; 12329: 12329: template 12329: locale::id num_put<_CharT, _OutIter>::id; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool 12329: isspace(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).is(ctype_base::space, __c); } 12329: 12329: 12329: template 12329: inline bool 12329: isprint(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).is(ctype_base::print, __c); } 12329: 12329: 12329: template 12329: inline bool 12329: iscntrl(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).is(ctype_base::cntrl, __c); } 12329: 12329: 12329: template 12329: inline bool 12329: isupper(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).is(ctype_base::upper, __c); } 12329: 12329: 12329: template 12329: inline bool 12329: islower(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).is(ctype_base::lower, __c); } 12329: 12329: 12329: template 12329: inline bool 12329: isalpha(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).is(ctype_base::alpha, __c); } 12329: 12329: 12329: template 12329: inline bool 12329: isdigit(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).is(ctype_base::digit, __c); } 12329: 12329: 12329: template 12329: inline bool 12329: ispunct(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).is(ctype_base::punct, __c); } 12329: 12329: 12329: template 12329: inline bool 12329: isxdigit(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).is(ctype_base::xdigit, __c); } 12329: 12329: 12329: template 12329: inline bool 12329: isalnum(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).is(ctype_base::alnum, __c); } 12329: 12329: 12329: template 12329: inline bool 12329: isgraph(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).is(ctype_base::graph, __c); } 12329: 12329: 12329: 12329: template 12329: inline bool 12329: isblank(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).is(ctype_base::blank, __c); } 12329: 12329: 12329: 12329: template 12329: inline _CharT 12329: toupper(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).toupper(__c); } 12329: 12329: 12329: template 12329: inline _CharT 12329: tolower(_CharT __c, const locale& __loc) 12329: { return use_facet >(__loc).tolower(__c); } 12329: 12329: 12329: } 12329: 12329: # 1 "/usr/include/c++/12/bits/locale_facets.tcc" 1 3 12329: # 33 "/usr/include/c++/12/bits/locale_facets.tcc" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/locale_facets.tcc" 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: template 12329: struct __use_cache 12329: { 12329: const _Facet* 12329: operator() (const locale& __loc) const; 12329: }; 12329: 12329: 12329: template 12329: struct __use_cache<__numpunct_cache<_CharT> > 12329: { 12329: const __numpunct_cache<_CharT>* 12329: operator() (const locale& __loc) const 12329: { 12329: const size_t __i = numpunct<_CharT>::id._M_id(); 12329: const locale::facet** __caches = __loc._M_impl->_M_caches; 12329: if (!__caches[__i]) 12329: { 12329: __numpunct_cache<_CharT>* __tmp = 0; 12329: try 12329: { 12329: __tmp = new __numpunct_cache<_CharT>; 12329: __tmp->_M_cache(__loc); 12329: } 12329: catch(...) 12329: { 12329: delete __tmp; 12329: throw; 12329: } 12329: __loc._M_impl->_M_install_cache(__tmp, __i); 12329: } 12329: return static_cast*>(__caches[__i]); 12329: } 12329: }; 12329: 12329: template 12329: void 12329: __numpunct_cache<_CharT>::_M_cache(const locale& __loc) 12329: { 12329: const numpunct<_CharT>& __np = use_facet >(__loc); 12329: 12329: char* __grouping = 0; 12329: _CharT* __truename = 0; 12329: _CharT* __falsename = 0; 12329: try 12329: { 12329: const string& __g = __np.grouping(); 12329: _M_grouping_size = __g.size(); 12329: __grouping = new char[_M_grouping_size]; 12329: __g.copy(__grouping, _M_grouping_size); 12329: _M_use_grouping = (_M_grouping_size 12329: && static_cast(__grouping[0]) > 0 12329: && (__grouping[0] 12329: != __gnu_cxx::__numeric_traits::__max)); 12329: 12329: const basic_string<_CharT>& __tn = __np.truename(); 12329: _M_truename_size = __tn.size(); 12329: __truename = new _CharT[_M_truename_size]; 12329: __tn.copy(__truename, _M_truename_size); 12329: 12329: const basic_string<_CharT>& __fn = __np.falsename(); 12329: _M_falsename_size = __fn.size(); 12329: __falsename = new _CharT[_M_falsename_size]; 12329: __fn.copy(__falsename, _M_falsename_size); 12329: 12329: _M_decimal_point = __np.decimal_point(); 12329: _M_thousands_sep = __np.thousands_sep(); 12329: 12329: const ctype<_CharT>& __ct = use_facet >(__loc); 12329: __ct.widen(__num_base::_S_atoms_out, 12329: __num_base::_S_atoms_out 12329: + __num_base::_S_oend, _M_atoms_out); 12329: __ct.widen(__num_base::_S_atoms_in, 12329: __num_base::_S_atoms_in 12329: + __num_base::_S_iend, _M_atoms_in); 12329: 12329: _M_grouping = __grouping; 12329: _M_truename = __truename; 12329: _M_falsename = __falsename; 12329: _M_allocated = true; 12329: } 12329: catch(...) 12329: { 12329: delete [] __grouping; 12329: delete [] __truename; 12329: delete [] __falsename; 12329: throw; 12329: } 12329: } 12329: # 139 "/usr/include/c++/12/bits/locale_facets.tcc" 3 12329: __attribute__ ((__pure__)) bool 12329: __verify_grouping(const char* __grouping, size_t __grouping_size, 12329: const string& __grouping_tmp) throw (); 12329: 12329: 12329: 12329: template 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: _InIter 12329: num_get<_CharT, _InIter>:: 12329: _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, 12329: ios_base::iostate& __err, string& __xtrc) const 12329: { 12329: typedef char_traits<_CharT> __traits_type; 12329: typedef __numpunct_cache<_CharT> __cache_type; 12329: __use_cache<__cache_type> __uc; 12329: const locale& __loc = __io._M_getloc(); 12329: const __cache_type* __lc = __uc(__loc); 12329: const _CharT* __lit = __lc->_M_atoms_in; 12329: char_type __c = char_type(); 12329: 12329: 12329: bool __testeof = __beg == __end; 12329: 12329: 12329: if (!__testeof) 12329: { 12329: __c = *__beg; 12329: const bool __plus = __c == __lit[__num_base::_S_iplus]; 12329: if ((__plus || __c == __lit[__num_base::_S_iminus]) 12329: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 12329: && !(__c == __lc->_M_decimal_point)) 12329: { 12329: __xtrc += __plus ? '+' : '-'; 12329: if (++__beg != __end) 12329: __c = *__beg; 12329: else 12329: __testeof = true; 12329: } 12329: } 12329: 12329: 12329: bool __found_mantissa = false; 12329: int __sep_pos = 0; 12329: while (!__testeof) 12329: { 12329: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 12329: || __c == __lc->_M_decimal_point) 12329: break; 12329: else if (__c == __lit[__num_base::_S_izero]) 12329: { 12329: if (!__found_mantissa) 12329: { 12329: __xtrc += '0'; 12329: __found_mantissa = true; 12329: } 12329: ++__sep_pos; 12329: 12329: if (++__beg != __end) 12329: __c = *__beg; 12329: else 12329: __testeof = true; 12329: } 12329: else 12329: break; 12329: } 12329: 12329: 12329: bool __found_dec = false; 12329: bool __found_sci = false; 12329: string __found_grouping; 12329: if (__lc->_M_use_grouping) 12329: __found_grouping.reserve(32); 12329: const char_type* __lit_zero = __lit + __num_base::_S_izero; 12329: 12329: if (!__lc->_M_allocated) 12329: 12329: while (!__testeof) 12329: { 12329: const int __digit = _M_find(__lit_zero, 10, __c); 12329: if (__digit != -1) 12329: { 12329: __xtrc += '0' + __digit; 12329: __found_mantissa = true; 12329: } 12329: else if (__c == __lc->_M_decimal_point 12329: && !__found_dec && !__found_sci) 12329: { 12329: __xtrc += '.'; 12329: __found_dec = true; 12329: } 12329: else if ((__c == __lit[__num_base::_S_ie] 12329: || __c == __lit[__num_base::_S_iE]) 12329: && !__found_sci && __found_mantissa) 12329: { 12329: 12329: __xtrc += 'e'; 12329: __found_sci = true; 12329: 12329: 12329: if (++__beg != __end) 12329: { 12329: __c = *__beg; 12329: const bool __plus = __c == __lit[__num_base::_S_iplus]; 12329: if (__plus || __c == __lit[__num_base::_S_iminus]) 12329: __xtrc += __plus ? '+' : '-'; 12329: else 12329: continue; 12329: } 12329: else 12329: { 12329: __testeof = true; 12329: break; 12329: } 12329: } 12329: else 12329: break; 12329: 12329: if (++__beg != __end) 12329: __c = *__beg; 12329: else 12329: __testeof = true; 12329: } 12329: else 12329: while (!__testeof) 12329: { 12329: 12329: 12329: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 12329: { 12329: if (!__found_dec && !__found_sci) 12329: { 12329: 12329: 12329: if (__sep_pos) 12329: { 12329: __found_grouping += static_cast(__sep_pos); 12329: __sep_pos = 0; 12329: } 12329: else 12329: { 12329: 12329: 12329: __xtrc.clear(); 12329: break; 12329: } 12329: } 12329: else 12329: break; 12329: } 12329: else if (__c == __lc->_M_decimal_point) 12329: { 12329: if (!__found_dec && !__found_sci) 12329: { 12329: 12329: 12329: 12329: if (__found_grouping.size()) 12329: __found_grouping += static_cast(__sep_pos); 12329: __xtrc += '.'; 12329: __found_dec = true; 12329: } 12329: else 12329: break; 12329: } 12329: else 12329: { 12329: const char_type* __q = 12329: __traits_type::find(__lit_zero, 10, __c); 12329: if (__q) 12329: { 12329: __xtrc += '0' + (__q - __lit_zero); 12329: __found_mantissa = true; 12329: ++__sep_pos; 12329: } 12329: else if ((__c == __lit[__num_base::_S_ie] 12329: || __c == __lit[__num_base::_S_iE]) 12329: && !__found_sci && __found_mantissa) 12329: { 12329: 12329: if (__found_grouping.size() && !__found_dec) 12329: __found_grouping += static_cast(__sep_pos); 12329: __xtrc += 'e'; 12329: __found_sci = true; 12329: 12329: 12329: if (++__beg != __end) 12329: { 12329: __c = *__beg; 12329: const bool __plus = __c == __lit[__num_base::_S_iplus]; 12329: if ((__plus || __c == __lit[__num_base::_S_iminus]) 12329: && !(__lc->_M_use_grouping 12329: && __c == __lc->_M_thousands_sep) 12329: && !(__c == __lc->_M_decimal_point)) 12329: __xtrc += __plus ? '+' : '-'; 12329: else 12329: continue; 12329: } 12329: else 12329: { 12329: __testeof = true; 12329: break; 12329: } 12329: } 12329: else 12329: break; 12329: } 12329: 12329: if (++__beg != __end) 12329: __c = *__beg; 12329: else 12329: __testeof = true; 12329: } 12329: 12329: 12329: 12329: if (__found_grouping.size()) 12329: { 12329: 12329: if (!__found_dec && !__found_sci) 12329: __found_grouping += static_cast(__sep_pos); 12329: 12329: if (!std::__verify_grouping(__lc->_M_grouping, 12329: __lc->_M_grouping_size, 12329: __found_grouping)) 12329: __err = ios_base::failbit; 12329: } 12329: 12329: return __beg; 12329: } 12329: 12329: template 12329: template 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: _InIter 12329: num_get<_CharT, _InIter>:: 12329: _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, 12329: ios_base::iostate& __err, _ValueT& __v) const 12329: { 12329: typedef char_traits<_CharT> __traits_type; 12329: using __gnu_cxx::__add_unsigned; 12329: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 12329: typedef __numpunct_cache<_CharT> __cache_type; 12329: __use_cache<__cache_type> __uc; 12329: const locale& __loc = __io._M_getloc(); 12329: const __cache_type* __lc = __uc(__loc); 12329: const _CharT* __lit = __lc->_M_atoms_in; 12329: char_type __c = char_type(); 12329: 12329: 12329: const ios_base::fmtflags __basefield = __io.flags() 12329: & ios_base::basefield; 12329: const bool __oct = __basefield == ios_base::oct; 12329: int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); 12329: 12329: 12329: bool __testeof = __beg == __end; 12329: 12329: 12329: bool __negative = false; 12329: if (!__testeof) 12329: { 12329: __c = *__beg; 12329: __negative = __c == __lit[__num_base::_S_iminus]; 12329: if ((__negative || __c == __lit[__num_base::_S_iplus]) 12329: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 12329: && !(__c == __lc->_M_decimal_point)) 12329: { 12329: if (++__beg != __end) 12329: __c = *__beg; 12329: else 12329: __testeof = true; 12329: } 12329: } 12329: 12329: 12329: 12329: bool __found_zero = false; 12329: int __sep_pos = 0; 12329: while (!__testeof) 12329: { 12329: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 12329: || __c == __lc->_M_decimal_point) 12329: break; 12329: else if (__c == __lit[__num_base::_S_izero] 12329: && (!__found_zero || __base == 10)) 12329: { 12329: __found_zero = true; 12329: ++__sep_pos; 12329: if (__basefield == 0) 12329: __base = 8; 12329: if (__base == 8) 12329: __sep_pos = 0; 12329: } 12329: else if (__found_zero 12329: && (__c == __lit[__num_base::_S_ix] 12329: || __c == __lit[__num_base::_S_iX])) 12329: { 12329: if (__basefield == 0) 12329: __base = 16; 12329: if (__base == 16) 12329: { 12329: __found_zero = false; 12329: __sep_pos = 0; 12329: } 12329: else 12329: break; 12329: } 12329: else 12329: break; 12329: 12329: if (++__beg != __end) 12329: { 12329: __c = *__beg; 12329: if (!__found_zero) 12329: break; 12329: } 12329: else 12329: __testeof = true; 12329: } 12329: 12329: 12329: 12329: const size_t __len = (__base == 16 ? __num_base::_S_iend 12329: - __num_base::_S_izero : __base); 12329: 12329: 12329: typedef __gnu_cxx::__numeric_traits<_ValueT> __num_traits; 12329: string __found_grouping; 12329: if (__lc->_M_use_grouping) 12329: __found_grouping.reserve(32); 12329: bool __testfail = false; 12329: bool __testoverflow = false; 12329: const __unsigned_type __max = 12329: (__negative && __num_traits::__is_signed) 12329: ? -static_cast<__unsigned_type>(__num_traits::__min) 12329: : __num_traits::__max; 12329: const __unsigned_type __smax = __max / __base; 12329: __unsigned_type __result = 0; 12329: int __digit = 0; 12329: const char_type* __lit_zero = __lit + __num_base::_S_izero; 12329: 12329: if (!__lc->_M_allocated) 12329: 12329: while (!__testeof) 12329: { 12329: __digit = _M_find(__lit_zero, __len, __c); 12329: if (__digit == -1) 12329: break; 12329: 12329: if (__result > __smax) 12329: __testoverflow = true; 12329: else 12329: { 12329: __result *= __base; 12329: __testoverflow |= __result > __max - __digit; 12329: __result += __digit; 12329: ++__sep_pos; 12329: } 12329: 12329: if (++__beg != __end) 12329: __c = *__beg; 12329: else 12329: __testeof = true; 12329: } 12329: else 12329: while (!__testeof) 12329: { 12329: 12329: 12329: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 12329: { 12329: 12329: 12329: if (__sep_pos) 12329: { 12329: __found_grouping += static_cast(__sep_pos); 12329: __sep_pos = 0; 12329: } 12329: else 12329: { 12329: __testfail = true; 12329: break; 12329: } 12329: } 12329: else if (__c == __lc->_M_decimal_point) 12329: break; 12329: else 12329: { 12329: const char_type* __q = 12329: __traits_type::find(__lit_zero, __len, __c); 12329: if (!__q) 12329: break; 12329: 12329: __digit = __q - __lit_zero; 12329: if (__digit > 15) 12329: __digit -= 6; 12329: if (__result > __smax) 12329: __testoverflow = true; 12329: else 12329: { 12329: __result *= __base; 12329: __testoverflow |= __result > __max - __digit; 12329: __result += __digit; 12329: ++__sep_pos; 12329: } 12329: } 12329: 12329: if (++__beg != __end) 12329: __c = *__beg; 12329: else 12329: __testeof = true; 12329: } 12329: 12329: 12329: 12329: if (__found_grouping.size()) 12329: { 12329: 12329: __found_grouping += static_cast(__sep_pos); 12329: 12329: if (!std::__verify_grouping(__lc->_M_grouping, 12329: __lc->_M_grouping_size, 12329: __found_grouping)) 12329: __err = ios_base::failbit; 12329: } 12329: 12329: 12329: 12329: if ((!__sep_pos && !__found_zero && !__found_grouping.size()) 12329: || __testfail) 12329: { 12329: __v = 0; 12329: __err = ios_base::failbit; 12329: } 12329: else if (__testoverflow) 12329: { 12329: if (__negative && __num_traits::__is_signed) 12329: __v = __num_traits::__min; 12329: else 12329: __v = __num_traits::__max; 12329: __err = ios_base::failbit; 12329: } 12329: else 12329: __v = __negative ? -__result : __result; 12329: 12329: if (__testeof) 12329: __err |= ios_base::eofbit; 12329: return __beg; 12329: } 12329: 12329: 12329: 12329: template 12329: _InIter 12329: num_get<_CharT, _InIter>:: 12329: do_get(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, bool& __v) const 12329: { 12329: if (!(__io.flags() & ios_base::boolalpha)) 12329: { 12329: 12329: 12329: 12329: long __l = -1; 12329: __beg = _M_extract_int(__beg, __end, __io, __err, __l); 12329: if (__l == 0 || __l == 1) 12329: __v = bool(__l); 12329: else 12329: { 12329: 12329: 12329: __v = true; 12329: __err = ios_base::failbit; 12329: if (__beg == __end) 12329: __err |= ios_base::eofbit; 12329: } 12329: } 12329: else 12329: { 12329: 12329: typedef __numpunct_cache<_CharT> __cache_type; 12329: __use_cache<__cache_type> __uc; 12329: const locale& __loc = __io._M_getloc(); 12329: const __cache_type* __lc = __uc(__loc); 12329: 12329: bool __testf = true; 12329: bool __testt = true; 12329: bool __donef = __lc->_M_falsename_size == 0; 12329: bool __donet = __lc->_M_truename_size == 0; 12329: bool __testeof = false; 12329: size_t __n = 0; 12329: while (!__donef || !__donet) 12329: { 12329: if (__beg == __end) 12329: { 12329: __testeof = true; 12329: break; 12329: } 12329: 12329: const char_type __c = *__beg; 12329: 12329: if (!__donef) 12329: __testf = __c == __lc->_M_falsename[__n]; 12329: 12329: if (!__testf && __donet) 12329: break; 12329: 12329: if (!__donet) 12329: __testt = __c == __lc->_M_truename[__n]; 12329: 12329: if (!__testt && __donef) 12329: break; 12329: 12329: if (!__testt && !__testf) 12329: break; 12329: 12329: ++__n; 12329: ++__beg; 12329: 12329: __donef = !__testf || __n >= __lc->_M_falsename_size; 12329: __donet = !__testt || __n >= __lc->_M_truename_size; 12329: } 12329: if (__testf && __n == __lc->_M_falsename_size && __n) 12329: { 12329: __v = false; 12329: if (__testt && __n == __lc->_M_truename_size) 12329: __err = ios_base::failbit; 12329: else 12329: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 12329: } 12329: else if (__testt && __n == __lc->_M_truename_size && __n) 12329: { 12329: __v = true; 12329: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 12329: } 12329: else 12329: { 12329: 12329: 12329: __v = false; 12329: __err = ios_base::failbit; 12329: if (__testeof) 12329: __err |= ios_base::eofbit; 12329: } 12329: } 12329: return __beg; 12329: } 12329: 12329: template 12329: _InIter 12329: num_get<_CharT, _InIter>:: 12329: do_get(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, float& __v) const 12329: { 12329: string __xtrc; 12329: __xtrc.reserve(32); 12329: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 12329: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 12329: if (__beg == __end) 12329: __err |= ios_base::eofbit; 12329: return __beg; 12329: } 12329: 12329: template 12329: _InIter 12329: num_get<_CharT, _InIter>:: 12329: do_get(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, double& __v) const 12329: { 12329: string __xtrc; 12329: __xtrc.reserve(32); 12329: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 12329: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 12329: if (__beg == __end) 12329: __err |= ios_base::eofbit; 12329: return __beg; 12329: } 12329: # 735 "/usr/include/c++/12/bits/locale_facets.tcc" 3 12329: template 12329: _InIter 12329: num_get<_CharT, _InIter>:: 12329: do_get(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, long double& __v) const 12329: { 12329: string __xtrc; 12329: __xtrc.reserve(32); 12329: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 12329: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 12329: if (__beg == __end) 12329: __err |= ios_base::eofbit; 12329: return __beg; 12329: } 12329: 12329: template 12329: _InIter 12329: num_get<_CharT, _InIter>:: 12329: do_get(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, void*& __v) const 12329: { 12329: 12329: typedef ios_base::fmtflags fmtflags; 12329: const fmtflags __fmt = __io.flags(); 12329: __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); 12329: 12329: typedef __gnu_cxx::__conditional_type<(sizeof(void*) 12329: <= sizeof(unsigned long)), 12329: unsigned long, unsigned long long>::__type _UIntPtrType; 12329: 12329: _UIntPtrType __ul; 12329: __beg = _M_extract_int(__beg, __end, __io, __err, __ul); 12329: 12329: 12329: __io.flags(__fmt); 12329: 12329: __v = reinterpret_cast(__ul); 12329: return __beg; 12329: } 12329: # 795 "/usr/include/c++/12/bits/locale_facets.tcc" 3 12329: template 12329: void 12329: num_put<_CharT, _OutIter>:: 12329: _M_pad(_CharT __fill, streamsize __w, ios_base& __io, 12329: _CharT* __new, const _CharT* __cs, int& __len) const 12329: { 12329: 12329: 12329: __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, 12329: __cs, __w, __len); 12329: __len = static_cast(__w); 12329: } 12329: 12329: 12329: 12329: template 12329: int 12329: __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, 12329: ios_base::fmtflags __flags, bool __dec) 12329: { 12329: _CharT* __buf = __bufend; 12329: if (__builtin_expect(__dec, true)) 12329: { 12329: 12329: do 12329: { 12329: *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; 12329: __v /= 10; 12329: } 12329: while (__v != 0); 12329: } 12329: else if ((__flags & ios_base::basefield) == ios_base::oct) 12329: { 12329: 12329: do 12329: { 12329: *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; 12329: __v >>= 3; 12329: } 12329: while (__v != 0); 12329: } 12329: else 12329: { 12329: 12329: const bool __uppercase = __flags & ios_base::uppercase; 12329: const int __case_offset = __uppercase ? __num_base::_S_oudigits 12329: : __num_base::_S_odigits; 12329: do 12329: { 12329: *--__buf = __lit[(__v & 0xf) + __case_offset]; 12329: __v >>= 4; 12329: } 12329: while (__v != 0); 12329: } 12329: return __bufend - __buf; 12329: } 12329: 12329: 12329: 12329: template 12329: void 12329: num_put<_CharT, _OutIter>:: 12329: _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, 12329: ios_base&, _CharT* __new, _CharT* __cs, int& __len) const 12329: { 12329: _CharT* __p = std::__add_grouping(__new, __sep, __grouping, 12329: __grouping_size, __cs, __cs + __len); 12329: __len = __p - __new; 12329: } 12329: 12329: template 12329: template 12329: _OutIter 12329: num_put<_CharT, _OutIter>:: 12329: _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, 12329: _ValueT __v) const 12329: { 12329: using __gnu_cxx::__add_unsigned; 12329: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 12329: typedef __numpunct_cache<_CharT> __cache_type; 12329: __use_cache<__cache_type> __uc; 12329: const locale& __loc = __io._M_getloc(); 12329: const __cache_type* __lc = __uc(__loc); 12329: const _CharT* __lit = __lc->_M_atoms_out; 12329: const ios_base::fmtflags __flags = __io.flags(); 12329: 12329: 12329: const int __ilen = 5 * sizeof(_ValueT); 12329: _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 12329: * __ilen)); 12329: 12329: 12329: 12329: const ios_base::fmtflags __basefield = __flags & ios_base::basefield; 12329: const bool __dec = (__basefield != ios_base::oct 12329: && __basefield != ios_base::hex); 12329: const __unsigned_type __u = ((__v > 0 || !__dec) 12329: ? __unsigned_type(__v) 12329: : -__unsigned_type(__v)); 12329: int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); 12329: __cs += __ilen - __len; 12329: 12329: 12329: if (__lc->_M_use_grouping) 12329: { 12329: 12329: 12329: _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 12329: * (__len + 1) 12329: * 2)); 12329: _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, 12329: __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); 12329: __cs = __cs2 + 2; 12329: } 12329: 12329: 12329: if (__builtin_expect(__dec, true)) 12329: { 12329: 12329: if (__v >= 0) 12329: { 12329: if (bool(__flags & ios_base::showpos) 12329: && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) 12329: *--__cs = __lit[__num_base::_S_oplus], ++__len; 12329: } 12329: else 12329: *--__cs = __lit[__num_base::_S_ominus], ++__len; 12329: } 12329: else if (bool(__flags & ios_base::showbase) && __v) 12329: { 12329: if (__basefield == ios_base::oct) 12329: *--__cs = __lit[__num_base::_S_odigits], ++__len; 12329: else 12329: { 12329: 12329: const bool __uppercase = __flags & ios_base::uppercase; 12329: *--__cs = __lit[__num_base::_S_ox + __uppercase]; 12329: 12329: *--__cs = __lit[__num_base::_S_odigits]; 12329: __len += 2; 12329: } 12329: } 12329: 12329: 12329: const streamsize __w = __io.width(); 12329: if (__w > static_cast(__len)) 12329: { 12329: _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 12329: * __w)); 12329: _M_pad(__fill, __w, __io, __cs3, __cs, __len); 12329: __cs = __cs3; 12329: } 12329: __io.width(0); 12329: 12329: 12329: 12329: return std::__write(__s, __cs, __len); 12329: } 12329: 12329: template 12329: void 12329: num_put<_CharT, _OutIter>:: 12329: _M_group_float(const char* __grouping, size_t __grouping_size, 12329: _CharT __sep, const _CharT* __p, _CharT* __new, 12329: _CharT* __cs, int& __len) const 12329: { 12329: 12329: 12329: 12329: const int __declen = __p ? __p - __cs : __len; 12329: _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, 12329: __grouping_size, 12329: __cs, __cs + __declen); 12329: 12329: 12329: int __newlen = __p2 - __new; 12329: if (__p) 12329: { 12329: char_traits<_CharT>::copy(__p2, __p, __len - __declen); 12329: __newlen += __len - __declen; 12329: } 12329: __len = __newlen; 12329: } 12329: # 989 "/usr/include/c++/12/bits/locale_facets.tcc" 3 12329: template 12329: template 12329: _OutIter 12329: num_put<_CharT, _OutIter>:: 12329: _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, 12329: _ValueT __v) const 12329: { 12329: typedef __numpunct_cache<_CharT> __cache_type; 12329: __use_cache<__cache_type> __uc; 12329: const locale& __loc = __io._M_getloc(); 12329: const __cache_type* __lc = __uc(__loc); 12329: 12329: 12329: const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); 12329: 12329: const int __max_digits = 12329: __gnu_cxx::__numeric_traits<_ValueT>::__digits10; 12329: 12329: 12329: int __len; 12329: 12329: char __fbuf[16]; 12329: __num_base::_S_format_float(__io, __fbuf, __mod); 12329: 12329: 12329: 12329: const bool __use_prec = 12329: (__io.flags() & ios_base::floatfield) != ios_base::floatfield; 12329: 12329: 12329: 12329: int __cs_size = __max_digits * 3; 12329: char* __cs = static_cast(__builtin_alloca(__cs_size)); 12329: if (__use_prec) 12329: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 12329: __fbuf, __prec, __v); 12329: else 12329: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 12329: __fbuf, __v); 12329: 12329: 12329: if (__len >= __cs_size) 12329: { 12329: __cs_size = __len + 1; 12329: __cs = static_cast(__builtin_alloca(__cs_size)); 12329: if (__use_prec) 12329: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 12329: __fbuf, __prec, __v); 12329: else 12329: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 12329: __fbuf, __v); 12329: } 12329: # 1062 "/usr/include/c++/12/bits/locale_facets.tcc" 3 12329: const ctype<_CharT>& __ctype = use_facet >(__loc); 12329: 12329: _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 12329: * __len)); 12329: __ctype.widen(__cs, __cs + __len, __ws); 12329: 12329: 12329: _CharT* __wp = 0; 12329: const char* __p = char_traits::find(__cs, __len, '.'); 12329: if (__p) 12329: { 12329: __wp = __ws + (__p - __cs); 12329: *__wp = __lc->_M_decimal_point; 12329: } 12329: 12329: 12329: 12329: 12329: if (__lc->_M_use_grouping 12329: && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' 12329: && __cs[1] >= '0' && __cs[2] >= '0'))) 12329: { 12329: 12329: 12329: _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 12329: * __len * 2)); 12329: 12329: streamsize __off = 0; 12329: if (__cs[0] == '-' || __cs[0] == '+') 12329: { 12329: __off = 1; 12329: __ws2[0] = __ws[0]; 12329: __len -= 1; 12329: } 12329: 12329: _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, 12329: __lc->_M_thousands_sep, __wp, __ws2 + __off, 12329: __ws + __off, __len); 12329: __len += __off; 12329: 12329: __ws = __ws2; 12329: } 12329: 12329: 12329: const streamsize __w = __io.width(); 12329: if (__w > static_cast(__len)) 12329: { 12329: _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 12329: * __w)); 12329: _M_pad(__fill, __w, __io, __ws3, __ws, __len); 12329: __ws = __ws3; 12329: } 12329: __io.width(0); 12329: 12329: 12329: 12329: return std::__write(__s, __ws, __len); 12329: } 12329: 12329: template 12329: _OutIter 12329: num_put<_CharT, _OutIter>:: 12329: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 12329: { 12329: const ios_base::fmtflags __flags = __io.flags(); 12329: if ((__flags & ios_base::boolalpha) == 0) 12329: { 12329: const long __l = __v; 12329: __s = _M_insert_int(__s, __io, __fill, __l); 12329: } 12329: else 12329: { 12329: typedef __numpunct_cache<_CharT> __cache_type; 12329: __use_cache<__cache_type> __uc; 12329: const locale& __loc = __io._M_getloc(); 12329: const __cache_type* __lc = __uc(__loc); 12329: 12329: const _CharT* __name = __v ? __lc->_M_truename 12329: : __lc->_M_falsename; 12329: int __len = __v ? __lc->_M_truename_size 12329: : __lc->_M_falsename_size; 12329: 12329: const streamsize __w = __io.width(); 12329: if (__w > static_cast(__len)) 12329: { 12329: const streamsize __plen = __w - __len; 12329: _CharT* __ps 12329: = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 12329: * __plen)); 12329: 12329: char_traits<_CharT>::assign(__ps, __plen, __fill); 12329: __io.width(0); 12329: 12329: if ((__flags & ios_base::adjustfield) == ios_base::left) 12329: { 12329: __s = std::__write(__s, __name, __len); 12329: __s = std::__write(__s, __ps, __plen); 12329: } 12329: else 12329: { 12329: __s = std::__write(__s, __ps, __plen); 12329: __s = std::__write(__s, __name, __len); 12329: } 12329: return __s; 12329: } 12329: __io.width(0); 12329: __s = std::__write(__s, __name, __len); 12329: } 12329: return __s; 12329: } 12329: 12329: template 12329: _OutIter 12329: num_put<_CharT, _OutIter>:: 12329: do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 12329: { return _M_insert_float(__s, __io, __fill, char(), __v); } 12329: # 1187 "/usr/include/c++/12/bits/locale_facets.tcc" 3 12329: template 12329: _OutIter 12329: num_put<_CharT, _OutIter>:: 12329: do_put(iter_type __s, ios_base& __io, char_type __fill, 12329: long double __v) const 12329: { return _M_insert_float(__s, __io, __fill, 'L', __v); } 12329: 12329: template 12329: _OutIter 12329: num_put<_CharT, _OutIter>:: 12329: do_put(iter_type __s, ios_base& __io, char_type __fill, 12329: const void* __v) const 12329: { 12329: const ios_base::fmtflags __flags = __io.flags(); 12329: const ios_base::fmtflags __fmt = ~(ios_base::basefield 12329: | ios_base::uppercase); 12329: __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); 12329: 12329: typedef __gnu_cxx::__conditional_type<(sizeof(const void*) 12329: <= sizeof(unsigned long)), 12329: unsigned long, unsigned long long>::__type _UIntPtrType; 12329: 12329: __s = _M_insert_int(__s, __io, __fill, 12329: reinterpret_cast<_UIntPtrType>(__v)); 12329: __io.flags(__flags); 12329: return __s; 12329: } 12329: # 1224 "/usr/include/c++/12/bits/locale_facets.tcc" 3 12329: 12329: # 1233 "/usr/include/c++/12/bits/locale_facets.tcc" 3 12329: template 12329: void 12329: __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, 12329: _CharT* __news, const _CharT* __olds, 12329: streamsize __newlen, streamsize __oldlen) 12329: { 12329: const size_t __plen = static_cast(__newlen - __oldlen); 12329: const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; 12329: 12329: 12329: if (__adjust == ios_base::left) 12329: { 12329: _Traits::copy(__news, __olds, __oldlen); 12329: _Traits::assign(__news + __oldlen, __plen, __fill); 12329: return; 12329: } 12329: 12329: size_t __mod = 0; 12329: if (__adjust == ios_base::internal) 12329: { 12329: 12329: 12329: 12329: const locale& __loc = __io._M_getloc(); 12329: const ctype<_CharT>& __ctype = use_facet >(__loc); 12329: 12329: if (__ctype.widen('-') == __olds[0] 12329: || __ctype.widen('+') == __olds[0]) 12329: { 12329: __news[0] = __olds[0]; 12329: __mod = 1; 12329: ++__news; 12329: } 12329: else if (__ctype.widen('0') == __olds[0] 12329: && __oldlen > 1 12329: && (__ctype.widen('x') == __olds[1] 12329: || __ctype.widen('X') == __olds[1])) 12329: { 12329: __news[0] = __olds[0]; 12329: __news[1] = __olds[1]; 12329: __mod = 2; 12329: __news += 2; 12329: } 12329: 12329: } 12329: _Traits::assign(__news, __plen, __fill); 12329: _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); 12329: } 12329: 12329: template 12329: _CharT* 12329: __add_grouping(_CharT* __s, _CharT __sep, 12329: const char* __gbeg, size_t __gsize, 12329: const _CharT* __first, const _CharT* __last) 12329: { 12329: size_t __idx = 0; 12329: size_t __ctr = 0; 12329: 12329: while (__last - __first > __gbeg[__idx] 12329: && static_cast(__gbeg[__idx]) > 0 12329: && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) 12329: { 12329: __last -= __gbeg[__idx]; 12329: __idx < __gsize - 1 ? ++__idx : ++__ctr; 12329: } 12329: 12329: while (__first != __last) 12329: *__s++ = *__first++; 12329: 12329: while (__ctr--) 12329: { 12329: *__s++ = __sep; 12329: for (char __i = __gbeg[__idx]; __i > 0; --__i) 12329: *__s++ = *__first++; 12329: } 12329: 12329: while (__idx--) 12329: { 12329: *__s++ = __sep; 12329: for (char __i = __gbeg[__idx]; __i > 0; --__i) 12329: *__s++ = *__first++; 12329: } 12329: 12329: return __s; 12329: } 12329: 12329: 12329: 12329: 12329: extern template class __cxx11:: numpunct; 12329: extern template class __cxx11:: numpunct_byname; 12329: extern template class num_get; 12329: extern template class num_put; 12329: extern template class ctype_byname; 12329: 12329: extern template 12329: const ctype& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const numpunct& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const num_put& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const num_get& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: 12329: extern template class __cxx11:: numpunct; 12329: extern template class __cxx11:: numpunct_byname; 12329: extern template class num_get; 12329: extern template class num_put; 12329: extern template class ctype_byname; 12329: 12329: extern template 12329: const ctype& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const numpunct& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const num_put& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const num_get& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: 12329: 12329: 12329: } 12329: # 2688 "/usr/include/c++/12/bits/locale_facets.h" 2 3 12329: # 38 "/usr/include/c++/12/bits/basic_ios.h" 2 3 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: inline const _Facet& 12329: __check_facet(const _Facet* __f) 12329: { 12329: if (!__f) 12329: __throw_bad_cast(); 12329: return *__f; 12329: } 12329: # 66 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: template 12329: class basic_ios : public ios_base 12329: { 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef typename _Traits::int_type int_type; 12329: typedef typename _Traits::pos_type pos_type; 12329: typedef typename _Traits::off_type off_type; 12329: typedef _Traits traits_type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef ctype<_CharT> __ctype_type; 12329: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 12329: __num_put_type; 12329: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 12329: __num_get_type; 12329: 12329: 12329: 12329: protected: 12329: basic_ostream<_CharT, _Traits>* _M_tie; 12329: mutable char_type _M_fill; 12329: mutable bool _M_fill_init; 12329: basic_streambuf<_CharT, _Traits>* _M_streambuf; 12329: 12329: 12329: const __ctype_type* _M_ctype; 12329: 12329: const __num_put_type* _M_num_put; 12329: 12329: const __num_get_type* _M_num_get; 12329: 12329: public: 12329: # 117 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: explicit operator bool() const 12329: { return !this->fail(); } 12329: 12329: 12329: 12329: 12329: 12329: bool 12329: operator!() const 12329: { return this->fail(); } 12329: # 136 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: iostate 12329: rdstate() const 12329: { return _M_streambuf_state; } 12329: # 147 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: void 12329: clear(iostate __state = goodbit); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: setstate(iostate __state) 12329: { this->clear(this->rdstate() | __state); } 12329: 12329: 12329: 12329: 12329: void 12329: _M_setstate(iostate __state) 12329: { 12329: 12329: 12329: _M_streambuf_state |= __state; 12329: if (this->exceptions() & __state) 12329: throw; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: bool 12329: good() const 12329: { return this->rdstate() == 0; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: bool 12329: eof() const 12329: { return (this->rdstate() & eofbit) != 0; } 12329: # 200 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: bool 12329: fail() const 12329: { return (this->rdstate() & (badbit | failbit)) != 0; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: bool 12329: bad() const 12329: { return (this->rdstate() & badbit) != 0; } 12329: # 221 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: iostate 12329: exceptions() const 12329: { return _M_exception; } 12329: # 256 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: void 12329: exceptions(iostate __except) 12329: { 12329: _M_exception = __except; 12329: this->clear(_M_streambuf_state); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: basic_ios(basic_streambuf<_CharT, _Traits>* __sb) 12329: : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), 12329: _M_ctype(0), _M_num_put(0), _M_num_get(0) 12329: { this->init(__sb); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: virtual 12329: ~basic_ios() { } 12329: # 294 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: basic_ostream<_CharT, _Traits>* 12329: tie() const 12329: { return _M_tie; } 12329: # 306 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: basic_ostream<_CharT, _Traits>* 12329: tie(basic_ostream<_CharT, _Traits>* __tiestr) 12329: { 12329: basic_ostream<_CharT, _Traits>* __old = _M_tie; 12329: _M_tie = __tiestr; 12329: return __old; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_streambuf<_CharT, _Traits>* 12329: rdbuf() const 12329: { return _M_streambuf; } 12329: # 346 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: basic_streambuf<_CharT, _Traits>* 12329: rdbuf(basic_streambuf<_CharT, _Traits>* __sb); 12329: # 360 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: basic_ios& 12329: copyfmt(const basic_ios& __rhs); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: char_type 12329: fill() const 12329: { 12329: if (!_M_fill_init) 12329: { 12329: _M_fill = this->widen(' '); 12329: _M_fill_init = true; 12329: } 12329: return _M_fill; 12329: } 12329: # 389 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: char_type 12329: fill(char_type __ch) 12329: { 12329: char_type __old = this->fill(); 12329: _M_fill = __ch; 12329: return __old; 12329: } 12329: # 409 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: locale 12329: imbue(const locale& __loc); 12329: # 429 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: char 12329: narrow(char_type __c, char __dfault) const 12329: { return __check_facet(_M_ctype).narrow(__c, __dfault); } 12329: # 448 "/usr/include/c++/12/bits/basic_ios.h" 3 12329: char_type 12329: widen(char __c) const 12329: { return __check_facet(_M_ctype).widen(__c); } 12329: 12329: protected: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: basic_ios() 12329: : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), 12329: _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) 12329: { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: init(basic_streambuf<_CharT, _Traits>* __sb); 12329: 12329: 12329: basic_ios(const basic_ios&) = delete; 12329: basic_ios& operator=(const basic_ios&) = delete; 12329: 12329: void 12329: move(basic_ios& __rhs) 12329: { 12329: ios_base::_M_move(__rhs); 12329: _M_cache_locale(_M_ios_locale); 12329: this->tie(__rhs.tie(nullptr)); 12329: _M_fill = __rhs._M_fill; 12329: _M_fill_init = __rhs._M_fill_init; 12329: _M_streambuf = nullptr; 12329: } 12329: 12329: void 12329: move(basic_ios&& __rhs) 12329: { this->move(__rhs); } 12329: 12329: void 12329: swap(basic_ios& __rhs) noexcept 12329: { 12329: ios_base::_M_swap(__rhs); 12329: _M_cache_locale(_M_ios_locale); 12329: __rhs._M_cache_locale(__rhs._M_ios_locale); 12329: std::swap(_M_tie, __rhs._M_tie); 12329: std::swap(_M_fill, __rhs._M_fill); 12329: std::swap(_M_fill_init, __rhs._M_fill_init); 12329: } 12329: 12329: void 12329: set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 12329: { _M_streambuf = __sb; } 12329: 12329: 12329: void 12329: _M_cache_locale(const locale& __loc); 12329: }; 12329: 12329: 12329: } 12329: 12329: # 1 "/usr/include/c++/12/bits/basic_ios.tcc" 1 3 12329: # 33 "/usr/include/c++/12/bits/basic_ios.tcc" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/basic_ios.tcc" 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: void 12329: basic_ios<_CharT, _Traits>::clear(iostate __state) 12329: { 12329: if (this->rdbuf()) 12329: _M_streambuf_state = __state; 12329: else 12329: _M_streambuf_state = __state | badbit; 12329: if (this->exceptions() & this->rdstate()) 12329: __throw_ios_failure(("basic_ios::clear")); 12329: } 12329: 12329: template 12329: basic_streambuf<_CharT, _Traits>* 12329: basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 12329: { 12329: basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; 12329: _M_streambuf = __sb; 12329: this->clear(); 12329: return __old; 12329: } 12329: 12329: template 12329: basic_ios<_CharT, _Traits>& 12329: basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) 12329: { 12329: 12329: 12329: if (this != std::__addressof(__rhs)) 12329: { 12329: 12329: 12329: 12329: 12329: _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? 12329: _M_local_word : new _Words[__rhs._M_word_size]; 12329: 12329: 12329: _Callback_list* __cb = __rhs._M_callbacks; 12329: if (__cb) 12329: __cb->_M_add_reference(); 12329: _M_call_callbacks(erase_event); 12329: if (_M_word != _M_local_word) 12329: { 12329: delete [] _M_word; 12329: _M_word = 0; 12329: } 12329: _M_dispose_callbacks(); 12329: 12329: 12329: _M_callbacks = __cb; 12329: for (int __i = 0; __i < __rhs._M_word_size; ++__i) 12329: __words[__i] = __rhs._M_word[__i]; 12329: _M_word = __words; 12329: _M_word_size = __rhs._M_word_size; 12329: 12329: this->flags(__rhs.flags()); 12329: this->width(__rhs.width()); 12329: this->precision(__rhs.precision()); 12329: this->tie(__rhs.tie()); 12329: this->fill(__rhs.fill()); 12329: _M_ios_locale = __rhs.getloc(); 12329: _M_cache_locale(_M_ios_locale); 12329: 12329: _M_call_callbacks(copyfmt_event); 12329: 12329: 12329: this->exceptions(__rhs.exceptions()); 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: locale 12329: basic_ios<_CharT, _Traits>::imbue(const locale& __loc) 12329: { 12329: locale __old(this->getloc()); 12329: ios_base::imbue(__loc); 12329: _M_cache_locale(__loc); 12329: if (this->rdbuf() != 0) 12329: this->rdbuf()->pubimbue(__loc); 12329: return __old; 12329: } 12329: 12329: template 12329: void 12329: basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) 12329: { 12329: 12329: ios_base::_M_init(); 12329: 12329: 12329: _M_cache_locale(_M_ios_locale); 12329: # 146 "/usr/include/c++/12/bits/basic_ios.tcc" 3 12329: _M_fill = _CharT(); 12329: _M_fill_init = false; 12329: 12329: _M_tie = 0; 12329: _M_exception = goodbit; 12329: _M_streambuf = __sb; 12329: _M_streambuf_state = __sb ? goodbit : badbit; 12329: } 12329: 12329: template 12329: void 12329: basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) 12329: { 12329: if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) 12329: _M_ctype = std::__addressof(use_facet<__ctype_type>(__loc)); 12329: else 12329: _M_ctype = 0; 12329: 12329: if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) 12329: _M_num_put = std::__addressof(use_facet<__num_put_type>(__loc)); 12329: else 12329: _M_num_put = 0; 12329: 12329: if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) 12329: _M_num_get = std::__addressof(use_facet<__num_get_type>(__loc)); 12329: else 12329: _M_num_get = 0; 12329: } 12329: 12329: 12329: 12329: 12329: extern template class basic_ios; 12329: 12329: 12329: extern template class basic_ios; 12329: 12329: 12329: 12329: 12329: } 12329: # 517 "/usr/include/c++/12/bits/basic_ios.h" 2 3 12329: # 45 "/usr/include/c++/12/ios" 2 3 12329: # 13 "/usr/include/boost/detail/lcast_precision.hpp" 2 3 4 12329: # 36 "/usr/include/boost/detail/lcast_precision.hpp" 3 4 12329: namespace boost { namespace detail { 12329: 12329: class lcast_abstract_stub {}; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct lcast_precision 12329: { 12329: 12329: 12329: 12329: typedef typename boost::conditional< 12329: boost::is_abstract::value 12329: , std::numeric_limits 12329: , std::numeric_limits 12329: >::type limits; 12329: 12329: 12329: static const bool use_default_precision = !limits::is_specialized || limits::is_exact 12329: 12329: ; 12329: 12329: static const bool is_specialized_bin = !use_default_precision && limits::radix == 2 && limits::digits > 0 12329: 12329: 12329: ; 12329: 12329: static const bool is_specialized_dec = !use_default_precision && limits::radix == 10 && limits::digits10 > 0 12329: 12329: 12329: ; 12329: 12329: static const std::streamsize streamsize_max = boost::integer_traits::const_max 12329: 12329: ; 12329: 12329: static const unsigned int precision_dec = limits::digits10 + 1U; 12329: 12329: static_assert(!is_specialized_dec || precision_dec <= streamsize_max + 0UL, "!is_specialized_dec || precision_dec <= streamsize_max + 0UL") 12329: 12329: ; 12329: 12329: static const unsigned long precision_bin = 2UL + limits::digits * 30103UL / 100000UL 12329: 12329: ; 12329: 12329: static_assert(!is_specialized_bin || (limits::digits + 0UL < (0x7fffffffffffffffL * 2UL + 1UL) / 30103UL && precision_bin > limits::digits10 + 0UL && precision_bin <= streamsize_max + 0UL), "!is_specialized_bin || (limits::digits + 0UL < ULONG_MAX / 30103UL && precision_bin > limits::digits10 + 0UL && precision_bin <= streamsize_max + 0UL)") 12329: 12329: 12329: 12329: ; 12329: 12329: static const std::streamsize value = is_specialized_bin ? precision_bin : is_specialized_dec ? precision_dec : 6 12329: 12329: 12329: ; 12329: }; 12329: 12329: 12329: template 12329: inline std::streamsize lcast_get_precision(T* = 0) 12329: { 12329: 12329: return lcast_precision::value; 12329: # 166 "/usr/include/boost/detail/lcast_precision.hpp" 3 4 12329: } 12329: 12329: template 12329: inline void lcast_set_precision(std::ios_base& stream, T*) 12329: { 12329: stream.precision(lcast_get_precision()); 12329: } 12329: 12329: template 12329: inline void lcast_set_precision(std::ios_base& stream, Source*, Target*) 12329: { 12329: std::streamsize const s = lcast_get_precision(static_cast(0)); 12329: std::streamsize const t = lcast_get_precision(static_cast(0)); 12329: stream.precision(s > t ? s : t); 12329: } 12329: 12329: }} 12329: # 42 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/lexical_cast/detail/widest_char.hpp" 1 3 4 12329: # 23 "/usr/include/boost/lexical_cast/detail/widest_char.hpp" 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace detail { 12329: 12329: template 12329: struct widest_char { 12329: typedef typename boost::conditional< 12329: (sizeof(TargetChar) > sizeof(SourceChar)) 12329: , TargetChar 12329: , SourceChar 12329: >::type type; 12329: }; 12329: 12329: }} 12329: # 44 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/array" 1 3 4 12329: # 32 "/usr/include/c++/12/array" 3 4 12329: 12329: # 33 "/usr/include/c++/12/array" 3 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/compare" 1 3 12329: # 33 "/usr/include/c++/12/compare" 3 12329: 12329: # 34 "/usr/include/c++/12/compare" 3 12329: # 39 "/usr/include/c++/12/array" 2 3 12329: # 48 "/usr/include/c++/12/array" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: struct __array_traits 12329: { 12329: typedef _Tp _Type[_Nm]; 12329: typedef __is_swappable<_Tp> _Is_swappable; 12329: typedef __is_nothrow_swappable<_Tp> _Is_nothrow_swappable; 12329: 12329: static constexpr _Tp& 12329: _S_ref(const _Type& __t, std::size_t __n) noexcept 12329: { return const_cast<_Tp&>(__t[__n]); } 12329: 12329: static constexpr _Tp* 12329: _S_ptr(const _Type& __t) noexcept 12329: { return const_cast<_Tp*>(__t); } 12329: }; 12329: 12329: template 12329: struct __array_traits<_Tp, 0> 12329: { 12329: struct _Type { }; 12329: typedef true_type _Is_swappable; 12329: typedef true_type _Is_nothrow_swappable; 12329: 12329: static constexpr _Tp& 12329: _S_ref(const _Type&, std::size_t) noexcept 12329: { return *static_cast<_Tp*>(nullptr); } 12329: 12329: static constexpr _Tp* 12329: _S_ptr(const _Type&) noexcept 12329: { return nullptr; } 12329: }; 12329: # 98 "/usr/include/c++/12/array" 3 12329: template 12329: struct array 12329: { 12329: typedef _Tp value_type; 12329: typedef value_type* pointer; 12329: typedef const value_type* const_pointer; 12329: typedef value_type& reference; 12329: typedef const value_type& const_reference; 12329: typedef value_type* iterator; 12329: typedef const value_type* const_iterator; 12329: typedef std::size_t size_type; 12329: typedef std::ptrdiff_t difference_type; 12329: typedef std::reverse_iterator reverse_iterator; 12329: typedef std::reverse_iterator const_reverse_iterator; 12329: 12329: 12329: typedef __array_traits<_Tp, _Nm> _AT_Type; 12329: typename _AT_Type::_Type _M_elems; 12329: 12329: 12329: 12329: 12329: void 12329: fill(const value_type& __u) 12329: { std::fill_n(begin(), size(), __u); } 12329: 12329: void 12329: swap(array& __other) 12329: noexcept(_AT_Type::_Is_nothrow_swappable::value) 12329: { std::swap_ranges(begin(), end(), __other.begin()); } 12329: 12329: 12329: [[__gnu__::__const__, __nodiscard__]] 12329: iterator 12329: begin() noexcept 12329: { return iterator(data()); } 12329: 12329: [[__nodiscard__]] 12329: const_iterator 12329: begin() const noexcept 12329: { return const_iterator(data()); } 12329: 12329: [[__gnu__::__const__, __nodiscard__]] 12329: iterator 12329: end() noexcept 12329: { return iterator(data() + _Nm); } 12329: 12329: [[__nodiscard__]] 12329: const_iterator 12329: end() const noexcept 12329: { return const_iterator(data() + _Nm); } 12329: 12329: [[__gnu__::__const__, __nodiscard__]] 12329: reverse_iterator 12329: rbegin() noexcept 12329: { return reverse_iterator(end()); } 12329: 12329: [[__nodiscard__]] 12329: const_reverse_iterator 12329: rbegin() const noexcept 12329: { return const_reverse_iterator(end()); } 12329: 12329: [[__gnu__::__const__, __nodiscard__]] 12329: reverse_iterator 12329: rend() noexcept 12329: { return reverse_iterator(begin()); } 12329: 12329: [[__nodiscard__]] 12329: const_reverse_iterator 12329: rend() const noexcept 12329: { return const_reverse_iterator(begin()); } 12329: 12329: [[__nodiscard__]] 12329: const_iterator 12329: cbegin() const noexcept 12329: { return const_iterator(data()); } 12329: 12329: [[__nodiscard__]] 12329: const_iterator 12329: cend() const noexcept 12329: { return const_iterator(data() + _Nm); } 12329: 12329: [[__nodiscard__]] 12329: const_reverse_iterator 12329: crbegin() const noexcept 12329: { return const_reverse_iterator(end()); } 12329: 12329: [[__nodiscard__]] 12329: const_reverse_iterator 12329: crend() const noexcept 12329: { return const_reverse_iterator(begin()); } 12329: 12329: 12329: [[__gnu__::__const__, __nodiscard__]] 12329: constexpr size_type 12329: size() const noexcept { return _Nm; } 12329: 12329: [[__gnu__::__const__, __nodiscard__]] 12329: constexpr size_type 12329: max_size() const noexcept { return _Nm; } 12329: 12329: [[__gnu__::__const__, __nodiscard__]] 12329: constexpr bool 12329: empty() const noexcept { return size() == 0; } 12329: 12329: 12329: [[__nodiscard__]] 12329: reference 12329: operator[](size_type __n) noexcept 12329: { 12329: ; 12329: return _AT_Type::_S_ref(_M_elems, __n); 12329: } 12329: 12329: [[__nodiscard__]] 12329: constexpr const_reference 12329: operator[](size_type __n) const noexcept 12329: { 12329: 12329: ; 12329: 12329: return _AT_Type::_S_ref(_M_elems, __n); 12329: } 12329: 12329: reference 12329: at(size_type __n) 12329: { 12329: if (__n >= _Nm) 12329: std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 12329: , 12329: __n, _Nm); 12329: return _AT_Type::_S_ref(_M_elems, __n); 12329: } 12329: 12329: constexpr const_reference 12329: at(size_type __n) const 12329: { 12329: 12329: 12329: return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n) 12329: : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 12329: , 12329: __n, _Nm), 12329: _AT_Type::_S_ref(_M_elems, 0)); 12329: } 12329: 12329: [[__nodiscard__]] 12329: reference 12329: front() noexcept 12329: { 12329: ; 12329: return *begin(); 12329: } 12329: 12329: [[__nodiscard__]] 12329: constexpr const_reference 12329: front() const noexcept 12329: { 12329: 12329: ; 12329: 12329: return _AT_Type::_S_ref(_M_elems, 0); 12329: } 12329: 12329: [[__nodiscard__]] 12329: reference 12329: back() noexcept 12329: { 12329: ; 12329: return _Nm ? *(end() - 1) : *end(); 12329: } 12329: 12329: [[__nodiscard__]] 12329: constexpr const_reference 12329: back() const noexcept 12329: { 12329: 12329: ; 12329: 12329: return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1) 12329: : _AT_Type::_S_ref(_M_elems, 0); 12329: } 12329: 12329: [[__gnu__::__const__, __nodiscard__]] 12329: pointer 12329: data() noexcept 12329: { return _AT_Type::_S_ptr(_M_elems); } 12329: 12329: [[__nodiscard__]] 12329: const_pointer 12329: data() const noexcept 12329: { return _AT_Type::_S_ptr(_M_elems); } 12329: }; 12329: # 300 "/usr/include/c++/12/array" 3 12329: template 12329: [[__nodiscard__]] 12329: 12329: inline bool 12329: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 12329: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 12329: # 329 "/usr/include/c++/12/array" 3 12329: template 12329: [[__nodiscard__]] 12329: 12329: inline bool 12329: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 12329: { return !(__one == __two); } 12329: 12329: template 12329: [[__nodiscard__]] 12329: 12329: inline bool 12329: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 12329: { 12329: return std::lexicographical_compare(__a.begin(), __a.end(), 12329: __b.begin(), __b.end()); 12329: } 12329: 12329: template 12329: [[__nodiscard__]] 12329: 12329: inline bool 12329: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 12329: { return __two < __one; } 12329: 12329: template 12329: [[__nodiscard__]] 12329: 12329: inline bool 12329: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 12329: { return !(__one > __two); } 12329: 12329: template 12329: [[__nodiscard__]] 12329: 12329: inline bool 12329: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 12329: { return !(__one < __two); } 12329: 12329: 12329: 12329: template 12329: 12329: inline 12329: 12329: 12329: 12329: 12329: 12329: 12329: void 12329: 12329: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 12329: noexcept(noexcept(__one.swap(__two))) 12329: { __one.swap(__two); } 12329: # 391 "/usr/include/c++/12/array" 3 12329: template 12329: [[__nodiscard__]] 12329: constexpr _Tp& 12329: get(array<_Tp, _Nm>& __arr) noexcept 12329: { 12329: static_assert(_Int < _Nm, "array index is within bounds"); 12329: return __array_traits<_Tp, _Nm>::_S_ref(__arr._M_elems, _Int); 12329: } 12329: 12329: template 12329: [[__nodiscard__]] 12329: constexpr _Tp&& 12329: get(array<_Tp, _Nm>&& __arr) noexcept 12329: { 12329: static_assert(_Int < _Nm, "array index is within bounds"); 12329: return std::move(std::get<_Int>(__arr)); 12329: } 12329: 12329: template 12329: [[__nodiscard__]] 12329: constexpr const _Tp& 12329: get(const array<_Tp, _Nm>& __arr) noexcept 12329: { 12329: static_assert(_Int < _Nm, "array index is within bounds"); 12329: return __array_traits<_Tp, _Nm>::_S_ref(__arr._M_elems, _Int); 12329: } 12329: 12329: template 12329: [[__nodiscard__]] 12329: constexpr const _Tp&& 12329: get(const array<_Tp, _Nm>&& __arr) noexcept 12329: { 12329: static_assert(_Int < _Nm, "array index is within bounds"); 12329: return std::move(std::get<_Int>(__arr)); 12329: } 12329: # 470 "/usr/include/c++/12/array" 3 12329: template 12329: struct tuple_size> 12329: : public integral_constant { }; 12329: 12329: 12329: template 12329: struct tuple_element<_Ind, array<_Tp, _Nm>> 12329: { 12329: static_assert(_Ind < _Nm, "array index is in range"); 12329: using type = _Tp; 12329: }; 12329: # 490 "/usr/include/c++/12/array" 3 12329: template 12329: struct __is_tuple_like_impl> : true_type 12329: { }; 12329: 12329: 12329: } 12329: # 48 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/array.hpp" 1 3 4 12329: # 46 "/usr/include/boost/array.hpp" 3 4 12329: # 1 "/usr/include/boost/assert.hpp" 1 3 4 12329: # 58 "/usr/include/boost/assert.hpp" 3 4 12329: # 1 "/usr/include/assert.h" 1 3 4 12329: # 59 "/usr/include/boost/assert.hpp" 2 3 4 12329: # 47 "/usr/include/boost/array.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/swap.hpp" 1 3 4 12329: # 15 "/usr/include/boost/swap.hpp" 3 4 12329: # 1 "/usr/include/boost/core/swap.hpp" 1 3 4 12329: # 33 "/usr/include/boost/core/swap.hpp" 3 4 12329: namespace boost_swap_impl 12329: { 12329: 12329: 12329: template struct is_const { enum _vt { value = 0 }; }; 12329: template struct is_const { enum _vt { value = 1 }; }; 12329: 12329: template 12329: 12329: void swap_impl(T& left, T& right) 12329: { 12329: using namespace std; 12329: swap(left,right); 12329: } 12329: 12329: template 12329: 12329: void swap_impl(T (& left)[N], T (& right)[N]) 12329: { 12329: for (std::size_t i = 0; i < N; ++i) 12329: { 12329: ::boost_swap_impl::swap_impl(left[i], right[i]); 12329: } 12329: } 12329: } 12329: 12329: namespace boost 12329: { 12329: template 12329: 12329: typename enable_if_c< !boost_swap_impl::is_const::value && !boost_swap_impl::is_const::value >::type 12329: swap(T1& left, T2& right) 12329: { 12329: ::boost_swap_impl::swap_impl(left, right); 12329: } 12329: } 12329: # 16 "/usr/include/boost/swap.hpp" 2 3 4 12329: # 49 "/usr/include/boost/array.hpp" 2 3 4 12329: # 57 "/usr/include/boost/array.hpp" 3 4 12329: namespace boost { 12329: 12329: template 12329: class array { 12329: public: 12329: T elems[N]; 12329: 12329: public: 12329: 12329: typedef T value_type; 12329: typedef T* iterator; 12329: typedef const T* const_iterator; 12329: typedef T& reference; 12329: typedef const T& const_reference; 12329: typedef std::size_t size_type; 12329: typedef std::ptrdiff_t difference_type; 12329: 12329: 12329: iterator begin() { return elems; } 12329: const_iterator begin() const { return elems; } 12329: const_iterator cbegin() const { return elems; } 12329: 12329: iterator end() { return elems+N; } 12329: const_iterator end() const { return elems+N; } 12329: const_iterator cend() const { return elems+N; } 12329: 12329: 12329: 12329: typedef std::reverse_iterator reverse_iterator; 12329: typedef std::reverse_iterator const_reverse_iterator; 12329: # 98 "/usr/include/boost/array.hpp" 3 4 12329: reverse_iterator rbegin() { return reverse_iterator(end()); } 12329: const_reverse_iterator rbegin() const { 12329: return const_reverse_iterator(end()); 12329: } 12329: const_reverse_iterator crbegin() const { 12329: return const_reverse_iterator(end()); 12329: } 12329: 12329: reverse_iterator rend() { return reverse_iterator(begin()); } 12329: const_reverse_iterator rend() const { 12329: return const_reverse_iterator(begin()); 12329: } 12329: const_reverse_iterator crend() const { 12329: return const_reverse_iterator(begin()); 12329: } 12329: 12329: 12329: reference operator[](size_type i) 12329: { 12329: return (static_cast (0)), elems[i]; 12329: } 12329: 12329: const_reference operator[](size_type i) const 12329: { 12329: return (static_cast (0)), elems[i]; 12329: } 12329: 12329: 12329: reference at(size_type i) { return rangecheck(i), elems[i]; } 12329: const_reference at(size_type i) const { return rangecheck(i), elems[i]; } 12329: 12329: 12329: reference front() 12329: { 12329: return elems[0]; 12329: } 12329: 12329: constexpr const_reference front() const 12329: { 12329: return elems[0]; 12329: } 12329: 12329: reference back() 12329: { 12329: return elems[N-1]; 12329: } 12329: 12329: constexpr const_reference back() const 12329: { 12329: return elems[N-1]; 12329: } 12329: 12329: 12329: static constexpr size_type size() { return N; } 12329: static constexpr bool empty() { return false; } 12329: static constexpr size_type max_size() { return N; } 12329: enum { static_size = N }; 12329: 12329: 12329: void swap (array& y) { 12329: for (size_type i = 0; i < N; ++i) 12329: boost::swap(elems[i],y.elems[i]); 12329: } 12329: 12329: 12329: const T* data() const { return elems; } 12329: T* data() { return elems; } 12329: 12329: 12329: T* c_array() { return elems; } 12329: 12329: 12329: template 12329: array& operator= (const array& rhs) { 12329: std::copy(rhs.begin(),rhs.end(), begin()); 12329: return *this; 12329: } 12329: 12329: 12329: void assign (const T& value) { fill ( value ); } 12329: void fill (const T& value) 12329: { 12329: std::fill_n(begin(),size(),value); 12329: } 12329: 12329: 12329: static constexpr bool rangecheck (size_type i) { 12329: return i >= size() ? boost::throw_exception(std::out_of_range ("array<>: index out of range")), true : true; 12329: } 12329: 12329: }; 12329: 12329: template< class T > 12329: class array< T, 0 > { 12329: 12329: public: 12329: 12329: typedef T value_type; 12329: typedef T* iterator; 12329: typedef const T* const_iterator; 12329: typedef T& reference; 12329: typedef const T& const_reference; 12329: typedef std::size_t size_type; 12329: typedef std::ptrdiff_t difference_type; 12329: 12329: 12329: iterator begin() { return iterator( reinterpret_cast< T * >( this ) ); } 12329: const_iterator begin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); } 12329: const_iterator cbegin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); } 12329: 12329: iterator end() { return begin(); } 12329: const_iterator end() const { return begin(); } 12329: const_iterator cend() const { return cbegin(); } 12329: 12329: 12329: 12329: typedef std::reverse_iterator reverse_iterator; 12329: typedef std::reverse_iterator const_reverse_iterator; 12329: # 227 "/usr/include/boost/array.hpp" 3 4 12329: reverse_iterator rbegin() { return reverse_iterator(end()); } 12329: const_reverse_iterator rbegin() const { 12329: return const_reverse_iterator(end()); 12329: } 12329: const_reverse_iterator crbegin() const { 12329: return const_reverse_iterator(end()); 12329: } 12329: 12329: reverse_iterator rend() { return reverse_iterator(begin()); } 12329: const_reverse_iterator rend() const { 12329: return const_reverse_iterator(begin()); 12329: } 12329: const_reverse_iterator crend() const { 12329: return const_reverse_iterator(begin()); 12329: } 12329: 12329: 12329: reference operator[](size_type ) 12329: { 12329: return failed_rangecheck(); 12329: } 12329: 12329: const_reference operator[](size_type ) const 12329: { 12329: return failed_rangecheck(); 12329: } 12329: 12329: 12329: reference at(size_type ) { return failed_rangecheck(); } 12329: const_reference at(size_type ) const { return failed_rangecheck(); } 12329: 12329: 12329: reference front() 12329: { 12329: return failed_rangecheck(); 12329: } 12329: 12329: constexpr const_reference front() const 12329: { 12329: return failed_rangecheck(); 12329: } 12329: 12329: reference back() 12329: { 12329: return failed_rangecheck(); 12329: } 12329: 12329: constexpr const_reference back() const 12329: { 12329: return failed_rangecheck(); 12329: } 12329: 12329: 12329: static constexpr size_type size() { return 0; } 12329: static constexpr bool empty() { return true; } 12329: static constexpr size_type max_size() { return 0; } 12329: enum { static_size = 0 }; 12329: 12329: void swap (array& ) { 12329: } 12329: 12329: 12329: const T* data() const { return 0; } 12329: T* data() { return 0; } 12329: 12329: 12329: T* c_array() { return 0; } 12329: 12329: 12329: template 12329: array& operator= (const array& ) { 12329: return *this; 12329: } 12329: 12329: 12329: void assign (const T& value) { fill ( value ); } 12329: void fill (const T& ) {} 12329: 12329: 12329: static reference failed_rangecheck () { 12329: std::out_of_range e("attempt to access element of an empty array"); 12329: boost::throw_exception(e); 12329: 12329: 12329: 12329: 12329: 12329: 12329: static T placeholder; 12329: return placeholder; 12329: 12329: } 12329: }; 12329: 12329: 12329: template 12329: bool operator== (const array& x, const array& y) { 12329: return std::equal(x.begin(), x.end(), y.begin()); 12329: } 12329: template 12329: bool operator< (const array& x, const array& y) { 12329: return std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end()); 12329: } 12329: template 12329: bool operator!= (const array& x, const array& y) { 12329: return !(x==y); 12329: } 12329: template 12329: bool operator> (const array& x, const array& y) { 12329: return y 12329: bool operator<= (const array& x, const array& y) { 12329: return !(y 12329: bool operator>= (const array& x, const array& y) { 12329: return !(x 12329: inline void swap (array& x, array& y) { 12329: x.swap(y); 12329: } 12329: # 381 "/usr/include/boost/array.hpp" 3 4 12329: template 12329: T(&get_c_array(boost::array& arg))[N] 12329: { 12329: return arg.elems; 12329: } 12329: 12329: 12329: template 12329: const T(&get_c_array(const boost::array& arg))[N] 12329: { 12329: return arg.elems; 12329: } 12329: # 413 "/usr/include/boost/array.hpp" 3 4 12329: template std::size_t hash_range(It, It); 12329: 12329: template 12329: std::size_t hash_value(const array& arr) 12329: { 12329: return boost::hash_range(arr.begin(), arr.end()); 12329: } 12329: 12329: template 12329: T &get(boost::array &arr) noexcept { 12329: static_assert(Idx < N, "boost::get<>(boost::array &) index out of range"); 12329: return arr[Idx]; 12329: } 12329: 12329: template 12329: const T &get(const boost::array &arr) noexcept { 12329: static_assert(Idx < N, "boost::get<>(const boost::array &) index out of range"); 12329: return arr[Idx]; 12329: } 12329: 12329: } 12329: 12329: 12329: 12329: namespace std { 12329: template 12329: T &get(boost::array &arr) noexcept { 12329: static_assert(Idx < N, "std::get<>(boost::array &) index out of range"); 12329: return arr[Idx]; 12329: } 12329: 12329: template 12329: const T &get(const boost::array &arr) noexcept { 12329: static_assert(Idx < N, "std::get<>(const boost::array &) index out of range"); 12329: return arr[Idx]; 12329: } 12329: } 12329: # 51 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/container/container_fwd.hpp" 1 3 4 12329: # 19 "/usr/include/boost/container/container_fwd.hpp" 3 4 12329: 12329: # 62 "/usr/include/boost/container/container_fwd.hpp" 3 4 12329: # 1 "/usr/include/boost/container/detail/std_fwd.hpp" 1 3 4 12329: # 19 "/usr/include/boost/container/detail/std_fwd.hpp" 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/move/detail/std_ns_begin.hpp" 1 3 4 12329: # 27 "/usr/include/boost/container/detail/std_fwd.hpp" 2 3 4 12329: namespace std __attribute__ ((__visibility__ ("default"))) { 12329: 12329: template 12329: class allocator; 12329: 12329: template 12329: struct less; 12329: 12329: template 12329: struct equal_to; 12329: 12329: template 12329: struct pair; 12329: 12329: template 12329: struct char_traits; 12329: 12329: struct input_iterator_tag; 12329: struct forward_iterator_tag; 12329: struct bidirectional_iterator_tag; 12329: struct random_access_iterator_tag; 12329: 12329: template 12329: class insert_iterator; 12329: 12329: struct allocator_arg_t; 12329: 12329: struct piecewise_construct_t; 12329: 12329: } 12329: # 1 "/usr/include/boost/move/detail/std_ns_end.hpp" 1 3 4 12329: # 58 "/usr/include/boost/container/detail/std_fwd.hpp" 2 3 4 12329: # 63 "/usr/include/boost/container/container_fwd.hpp" 2 3 4 12329: 12329: 12329: namespace boost{ 12329: namespace intrusive{ 12329: namespace detail{ 12329: 12329: }}} 12329: 12329: namespace boost{ namespace container{ namespace dtl{ 12329: namespace bi = boost::intrusive; 12329: namespace bid = boost::intrusive::detail; 12329: }}} 12329: 12329: namespace boost{ namespace container{ namespace pmr{ 12329: namespace bi = boost::intrusive; 12329: namespace bid = boost::intrusive::detail; 12329: }}} 12329: # 89 "/usr/include/boost/container/container_fwd.hpp" 3 4 12329: namespace boost { 12329: namespace container { 12329: 12329: 12329: 12329: template 12329: struct pair; 12329: 12329: template 12329: class new_allocator; 12329: 12329: template 12329: class vector; 12329: 12329: template 12329: class stable_vector; 12329: 12329: template < class T 12329: , std::size_t Capacity 12329: , class Options = void> 12329: class static_vector; 12329: 12329: template < class T 12329: , class Allocator = void 12329: , class Options = void > 12329: class small_vector_base; 12329: 12329: template < class T 12329: , std::size_t N 12329: , class Allocator = void 12329: , class Options = void > 12329: class small_vector; 12329: 12329: template 12329: class deque; 12329: 12329: template 12329: class list; 12329: 12329: template 12329: class slist; 12329: 12329: template 12329: ,class Allocator = void 12329: ,class Options = void> 12329: class set; 12329: 12329: template 12329: ,class Allocator = void 12329: ,class Options = void > 12329: class multiset; 12329: 12329: template 12329: ,class Allocator = void 12329: ,class Options = void > 12329: class map; 12329: 12329: template 12329: ,class Allocator = void 12329: ,class Options = void > 12329: class multimap; 12329: 12329: template 12329: ,class Allocator = void > 12329: class flat_set; 12329: 12329: template 12329: ,class Allocator = void > 12329: class flat_multiset; 12329: 12329: template 12329: ,class Allocator = void > 12329: class flat_map; 12329: 12329: template 12329: ,class Allocator = void > 12329: class flat_multimap; 12329: 12329: 12329: 12329: 12329: 12329: template < class Key 12329: , std::size_t N 12329: , class Compare = std::less 12329: , class SmallVectorAllocator = void 12329: , class SmallVectorOptions = void > 12329: using small_flat_set = flat_set>; 12329: 12329: template < class Key 12329: , std::size_t N 12329: , class Compare = std::less 12329: , class SmallVectorAllocator = void 12329: , class SmallVectorOptions = void > 12329: using small_flat_multiset = flat_multiset>; 12329: 12329: template < class Key 12329: , class T 12329: , std::size_t N 12329: , class Compare = std::less 12329: , class SmallVectorAllocator = void 12329: , class SmallVectorOptions = void > 12329: using small_flat_map = flat_map, N, SmallVectorAllocator, SmallVectorOptions>>; 12329: 12329: template < class Key 12329: , class T 12329: , std::size_t N 12329: , class Compare = std::less 12329: , class SmallVectorAllocator = void 12329: , class SmallVectorOptions = void > 12329: using small_flat_multimap = flat_multimap, N, SmallVectorAllocator, SmallVectorOptions>>; 12329: 12329: 12329: 12329: 12329: 12329: template < class Key 12329: , std::size_t N 12329: , class Compare = std::less 12329: , class SmallVectorAllocator = void 12329: , class SmallVectorOptions = void > 12329: struct small_flat_set_of 12329: { 12329: typedef flat_set > type; 12329: }; 12329: 12329: 12329: template < class Key 12329: , std::size_t N 12329: , class Compare = std::less 12329: , class SmallVectorAllocator = void 12329: , class SmallVectorOptions = void > 12329: struct small_flat_multiset_of 12329: { 12329: typedef flat_multiset > type; 12329: }; 12329: 12329: 12329: template < class Key 12329: , class T 12329: , std::size_t N 12329: , class Compare = std::less 12329: , class SmallVectorAllocator = void 12329: , class SmallVectorOptions = void > 12329: struct small_flat_map_of 12329: { 12329: typedef flat_map, N, SmallVectorAllocator, SmallVectorOptions> > type; 12329: }; 12329: 12329: 12329: template < class Key 12329: , class T 12329: , std::size_t N 12329: , class Compare = std::less 12329: , class SmallVectorAllocator = void 12329: , class SmallVectorOptions = void > 12329: struct small_flat_multimap_of 12329: { 12329: typedef flat_multimap, N, SmallVectorAllocator, SmallVectorOptions> > type; 12329: }; 12329: 12329: template 12329: ,class Allocator = void > 12329: class basic_string; 12329: 12329: typedef basic_string string; 12329: typedef basic_string wstring; 12329: 12329: static const std::size_t ADP_nodes_per_block = 256u; 12329: static const std::size_t ADP_max_free_blocks = 2u; 12329: static const std::size_t ADP_overhead_percent = 1u; 12329: static const std::size_t ADP_only_alignment = 0u; 12329: 12329: template < class T 12329: , std::size_t NodesPerBlock = ADP_nodes_per_block 12329: , std::size_t MaxFreeBlocks = ADP_max_free_blocks 12329: , std::size_t OverheadPercent = ADP_overhead_percent 12329: , unsigned Version = 2 12329: > 12329: class adaptive_pool; 12329: 12329: template < class T 12329: , unsigned Version = 2 12329: , unsigned int AllocationDisableMask = 0> 12329: class allocator; 12329: 12329: static const std::size_t NodeAlloc_nodes_per_block = 256u; 12329: 12329: template 12329: < class T 12329: , std::size_t NodesPerBlock = NodeAlloc_nodes_per_block 12329: , std::size_t Version = 2> 12329: class node_allocator; 12329: 12329: namespace pmr { 12329: 12329: class memory_resource; 12329: 12329: template 12329: class polymorphic_allocator; 12329: 12329: class monotonic_buffer_resource; 12329: 12329: struct pool_options; 12329: 12329: template 12329: class resource_adaptor_imp; 12329: 12329: class unsynchronized_pool_resource; 12329: 12329: class synchronized_pool_resource; 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: struct ordered_range_t 12329: {}; 12329: 12329: 12329: 12329: static const ordered_range_t ordered_range = ordered_range_t(); 12329: 12329: 12329: 12329: struct ordered_unique_range_t 12329: : public ordered_range_t 12329: {}; 12329: 12329: 12329: 12329: static const ordered_unique_range_t ordered_unique_range = ordered_unique_range_t(); 12329: 12329: 12329: 12329: struct default_init_t 12329: {}; 12329: 12329: 12329: 12329: static const default_init_t default_init = default_init_t(); 12329: 12329: 12329: 12329: 12329: struct value_init_t 12329: {}; 12329: 12329: 12329: 12329: static const value_init_t value_init = value_init_t(); 12329: 12329: namespace container_detail_really_deep_namespace { 12329: 12329: 12329: 12329: struct dummy 12329: { 12329: dummy() 12329: { 12329: (void)ordered_range; 12329: (void)ordered_unique_range; 12329: (void)default_init; 12329: } 12329: }; 12329: 12329: } 12329: 12329: 12329: 12329: 12329: }} 12329: # 53 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 1 3 4 12329: # 23 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 3 4 12329: 12329: # 33 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 3 4 12329: # 1 "/usr/include/c++/12/cstring" 1 3 4 12329: # 39 "/usr/include/c++/12/cstring" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cstring" 3 12329: # 34 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 2 3 4 12329: # 1 "/usr/include/c++/12/cstdio" 1 3 4 12329: # 39 "/usr/include/c++/12/cstdio" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cstdio" 3 12329: # 35 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 2 3 4 12329: # 43 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 3 4 12329: # 1 "/usr/include/c++/12/locale" 1 3 4 12329: # 36 "/usr/include/c++/12/locale" 3 4 12329: 12329: # 37 "/usr/include/c++/12/locale" 3 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/locale_facets_nonio.h" 1 3 12329: # 37 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: 12329: # 1 "/usr/include/c++/12/ctime" 1 3 12329: # 39 "/usr/include/c++/12/ctime" 3 12329: 12329: # 40 "/usr/include/c++/12/ctime" 3 12329: # 58 "/usr/include/c++/12/ctime" 3 12329: namespace std 12329: { 12329: using ::clock_t; 12329: using ::time_t; 12329: using ::tm; 12329: 12329: using ::clock; 12329: using ::difftime; 12329: using ::mktime; 12329: using ::time; 12329: using ::asctime; 12329: using ::ctime; 12329: using ::gmtime; 12329: using ::localtime; 12329: using ::strftime; 12329: } 12329: # 40 "/usr/include/c++/12/bits/locale_facets_nonio.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 52 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: class time_base 12329: { 12329: public: 12329: enum dateorder { no_order, dmy, mdy, ymd, ydm }; 12329: }; 12329: 12329: template 12329: struct __timepunct_cache : public locale::facet 12329: { 12329: 12329: static const _CharT* _S_timezones[14]; 12329: 12329: const _CharT* _M_date_format; 12329: const _CharT* _M_date_era_format; 12329: const _CharT* _M_time_format; 12329: const _CharT* _M_time_era_format; 12329: const _CharT* _M_date_time_format; 12329: const _CharT* _M_date_time_era_format; 12329: const _CharT* _M_am; 12329: const _CharT* _M_pm; 12329: const _CharT* _M_am_pm_format; 12329: 12329: 12329: const _CharT* _M_day1; 12329: const _CharT* _M_day2; 12329: const _CharT* _M_day3; 12329: const _CharT* _M_day4; 12329: const _CharT* _M_day5; 12329: const _CharT* _M_day6; 12329: const _CharT* _M_day7; 12329: 12329: 12329: const _CharT* _M_aday1; 12329: const _CharT* _M_aday2; 12329: const _CharT* _M_aday3; 12329: const _CharT* _M_aday4; 12329: const _CharT* _M_aday5; 12329: const _CharT* _M_aday6; 12329: const _CharT* _M_aday7; 12329: 12329: 12329: const _CharT* _M_month01; 12329: const _CharT* _M_month02; 12329: const _CharT* _M_month03; 12329: const _CharT* _M_month04; 12329: const _CharT* _M_month05; 12329: const _CharT* _M_month06; 12329: const _CharT* _M_month07; 12329: const _CharT* _M_month08; 12329: const _CharT* _M_month09; 12329: const _CharT* _M_month10; 12329: const _CharT* _M_month11; 12329: const _CharT* _M_month12; 12329: 12329: 12329: const _CharT* _M_amonth01; 12329: const _CharT* _M_amonth02; 12329: const _CharT* _M_amonth03; 12329: const _CharT* _M_amonth04; 12329: const _CharT* _M_amonth05; 12329: const _CharT* _M_amonth06; 12329: const _CharT* _M_amonth07; 12329: const _CharT* _M_amonth08; 12329: const _CharT* _M_amonth09; 12329: const _CharT* _M_amonth10; 12329: const _CharT* _M_amonth11; 12329: const _CharT* _M_amonth12; 12329: 12329: bool _M_allocated; 12329: 12329: __timepunct_cache(size_t __refs = 0) : facet(__refs), 12329: _M_date_format(0), _M_date_era_format(0), _M_time_format(0), 12329: _M_time_era_format(0), _M_date_time_format(0), 12329: _M_date_time_era_format(0), _M_am(0), _M_pm(0), 12329: _M_am_pm_format(0), _M_day1(0), _M_day2(0), _M_day3(0), 12329: _M_day4(0), _M_day5(0), _M_day6(0), _M_day7(0), 12329: _M_aday1(0), _M_aday2(0), _M_aday3(0), _M_aday4(0), 12329: _M_aday5(0), _M_aday6(0), _M_aday7(0), _M_month01(0), 12329: _M_month02(0), _M_month03(0), _M_month04(0), _M_month05(0), 12329: _M_month06(0), _M_month07(0), _M_month08(0), _M_month09(0), 12329: _M_month10(0), _M_month11(0), _M_month12(0), _M_amonth01(0), 12329: _M_amonth02(0), _M_amonth03(0), _M_amonth04(0), 12329: _M_amonth05(0), _M_amonth06(0), _M_amonth07(0), 12329: _M_amonth08(0), _M_amonth09(0), _M_amonth10(0), 12329: _M_amonth11(0), _M_amonth12(0), _M_allocated(false) 12329: { } 12329: 12329: ~__timepunct_cache(); 12329: 12329: private: 12329: __timepunct_cache& 12329: operator=(const __timepunct_cache&); 12329: 12329: explicit 12329: __timepunct_cache(const __timepunct_cache&); 12329: }; 12329: 12329: template 12329: __timepunct_cache<_CharT>::~__timepunct_cache() 12329: { 12329: if (_M_allocated) 12329: { 12329: 12329: } 12329: } 12329: 12329: 12329: template<> 12329: const char* 12329: __timepunct_cache::_S_timezones[14]; 12329: 12329: 12329: template<> 12329: const wchar_t* 12329: __timepunct_cache::_S_timezones[14]; 12329: 12329: 12329: 12329: template 12329: const _CharT* __timepunct_cache<_CharT>::_S_timezones[14]; 12329: 12329: template 12329: class __timepunct : public locale::facet 12329: { 12329: public: 12329: 12329: typedef _CharT __char_type; 12329: typedef __timepunct_cache<_CharT> __cache_type; 12329: 12329: protected: 12329: __cache_type* _M_data; 12329: __c_locale _M_c_locale_timepunct; 12329: const char* _M_name_timepunct; 12329: 12329: public: 12329: 12329: static locale::id id; 12329: 12329: explicit 12329: __timepunct(size_t __refs = 0); 12329: 12329: explicit 12329: __timepunct(__cache_type* __cache, size_t __refs = 0); 12329: # 206 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: explicit 12329: __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0); 12329: 12329: 12329: 12329: void 12329: _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format, 12329: const tm* __tm) const throw (); 12329: 12329: void 12329: _M_date_formats(const _CharT** __date) const 12329: { 12329: 12329: __date[0] = _M_data->_M_date_format; 12329: __date[1] = _M_data->_M_date_era_format; 12329: } 12329: 12329: void 12329: _M_time_formats(const _CharT** __time) const 12329: { 12329: 12329: __time[0] = _M_data->_M_time_format; 12329: __time[1] = _M_data->_M_time_era_format; 12329: } 12329: 12329: void 12329: _M_date_time_formats(const _CharT** __dt) const 12329: { 12329: 12329: __dt[0] = _M_data->_M_date_time_format; 12329: __dt[1] = _M_data->_M_date_time_era_format; 12329: } 12329: 12329: 12329: void 12329: _M_am_pm_format(const _CharT*) const 12329: { } 12329: 12329: 12329: void 12329: _M_am_pm_format(const _CharT** __ampm_format) const 12329: { 12329: __ampm_format[0] = _M_data->_M_am_pm_format; 12329: } 12329: 12329: void 12329: _M_am_pm(const _CharT** __ampm) const 12329: { 12329: __ampm[0] = _M_data->_M_am; 12329: __ampm[1] = _M_data->_M_pm; 12329: } 12329: 12329: void 12329: _M_days(const _CharT** __days) const 12329: { 12329: __days[0] = _M_data->_M_day1; 12329: __days[1] = _M_data->_M_day2; 12329: __days[2] = _M_data->_M_day3; 12329: __days[3] = _M_data->_M_day4; 12329: __days[4] = _M_data->_M_day5; 12329: __days[5] = _M_data->_M_day6; 12329: __days[6] = _M_data->_M_day7; 12329: } 12329: 12329: void 12329: _M_days_abbreviated(const _CharT** __days) const 12329: { 12329: __days[0] = _M_data->_M_aday1; 12329: __days[1] = _M_data->_M_aday2; 12329: __days[2] = _M_data->_M_aday3; 12329: __days[3] = _M_data->_M_aday4; 12329: __days[4] = _M_data->_M_aday5; 12329: __days[5] = _M_data->_M_aday6; 12329: __days[6] = _M_data->_M_aday7; 12329: } 12329: 12329: void 12329: _M_months(const _CharT** __months) const 12329: { 12329: __months[0] = _M_data->_M_month01; 12329: __months[1] = _M_data->_M_month02; 12329: __months[2] = _M_data->_M_month03; 12329: __months[3] = _M_data->_M_month04; 12329: __months[4] = _M_data->_M_month05; 12329: __months[5] = _M_data->_M_month06; 12329: __months[6] = _M_data->_M_month07; 12329: __months[7] = _M_data->_M_month08; 12329: __months[8] = _M_data->_M_month09; 12329: __months[9] = _M_data->_M_month10; 12329: __months[10] = _M_data->_M_month11; 12329: __months[11] = _M_data->_M_month12; 12329: } 12329: 12329: void 12329: _M_months_abbreviated(const _CharT** __months) const 12329: { 12329: __months[0] = _M_data->_M_amonth01; 12329: __months[1] = _M_data->_M_amonth02; 12329: __months[2] = _M_data->_M_amonth03; 12329: __months[3] = _M_data->_M_amonth04; 12329: __months[4] = _M_data->_M_amonth05; 12329: __months[5] = _M_data->_M_amonth06; 12329: __months[6] = _M_data->_M_amonth07; 12329: __months[7] = _M_data->_M_amonth08; 12329: __months[8] = _M_data->_M_amonth09; 12329: __months[9] = _M_data->_M_amonth10; 12329: __months[10] = _M_data->_M_amonth11; 12329: __months[11] = _M_data->_M_amonth12; 12329: } 12329: 12329: protected: 12329: virtual 12329: ~__timepunct(); 12329: 12329: 12329: void 12329: _M_initialize_timepunct(__c_locale __cloc = 0); 12329: }; 12329: 12329: template 12329: locale::id __timepunct<_CharT>::id; 12329: 12329: 12329: template<> 12329: void 12329: __timepunct::_M_initialize_timepunct(__c_locale __cloc); 12329: 12329: template<> 12329: void 12329: __timepunct::_M_put(char*, size_t, const char*, const tm*) const throw (); 12329: 12329: 12329: template<> 12329: void 12329: __timepunct::_M_initialize_timepunct(__c_locale __cloc); 12329: 12329: template<> 12329: void 12329: __timepunct::_M_put(wchar_t*, size_t, const wchar_t*, 12329: const tm*) const throw (); 12329: 12329: 12329: 12329: } 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/time_members.h" 1 3 12329: # 37 "/usr/include/aarch64-linux-gnu/c++/12/bits/time_members.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: __timepunct<_CharT>::__timepunct(size_t __refs) 12329: : facet(__refs), _M_data(0), _M_c_locale_timepunct(0), 12329: _M_name_timepunct(_S_get_c_name()) 12329: { _M_initialize_timepunct(); } 12329: 12329: template 12329: __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) 12329: : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(0), 12329: _M_name_timepunct(_S_get_c_name()) 12329: { _M_initialize_timepunct(); } 12329: 12329: template 12329: __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, 12329: size_t __refs) 12329: : facet(__refs), _M_data(0), _M_c_locale_timepunct(0), 12329: _M_name_timepunct(0) 12329: { 12329: if (__builtin_strcmp(__s, _S_get_c_name()) != 0) 12329: { 12329: const size_t __len = __builtin_strlen(__s) + 1; 12329: char* __tmp = new char[__len]; 12329: __builtin_memcpy(__tmp, __s, __len); 12329: _M_name_timepunct = __tmp; 12329: } 12329: else 12329: _M_name_timepunct = _S_get_c_name(); 12329: 12329: try 12329: { _M_initialize_timepunct(__cloc); } 12329: catch(...) 12329: { 12329: if (_M_name_timepunct != _S_get_c_name()) 12329: delete [] _M_name_timepunct; 12329: throw; 12329: } 12329: } 12329: 12329: template 12329: __timepunct<_CharT>::~__timepunct() 12329: { 12329: if (_M_name_timepunct != _S_get_c_name()) 12329: delete [] _M_name_timepunct; 12329: delete _M_data; 12329: _S_destroy_c_locale(_M_c_locale_timepunct); 12329: } 12329: 12329: 12329: } 12329: # 353 "/usr/include/c++/12/bits/locale_facets_nonio.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: struct __time_get_state 12329: { 12329: 12329: void 12329: _M_finalize_state(tm* __tm); 12329: 12329: unsigned int _M_have_I : 1; 12329: unsigned int _M_have_wday : 1; 12329: unsigned int _M_have_yday : 1; 12329: unsigned int _M_have_mon : 1; 12329: unsigned int _M_have_mday : 1; 12329: unsigned int _M_have_uweek : 1; 12329: unsigned int _M_have_wweek : 1; 12329: unsigned int _M_have_century : 1; 12329: unsigned int _M_is_pm : 1; 12329: unsigned int _M_want_century : 1; 12329: unsigned int _M_want_xday : 1; 12329: unsigned int _M_pad1 : 5; 12329: unsigned int _M_week_no : 6; 12329: unsigned int _M_pad2 : 10; 12329: int _M_century; 12329: int _M_pad3; 12329: }; 12329: 12329: namespace __cxx11 { 12329: # 397 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: template 12329: class time_get : public locale::facet, public time_base 12329: { 12329: public: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef _InIter iter_type; 12329: 12329: 12329: 12329: static locale::id id; 12329: # 418 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: explicit 12329: time_get(size_t __refs = 0) 12329: : facet (__refs) { } 12329: # 435 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: dateorder 12329: date_order() const 12329: { return this->do_date_order(); } 12329: # 459 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: iter_type 12329: get_time(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm) const 12329: { return this->do_get_time(__beg, __end, __io, __err, __tm); } 12329: # 484 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: iter_type 12329: get_date(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm) const 12329: { return this->do_get_date(__beg, __end, __io, __err, __tm); } 12329: # 512 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: iter_type 12329: get_weekday(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm) const 12329: { return this->do_get_weekday(__beg, __end, __io, __err, __tm); } 12329: # 541 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: iter_type 12329: get_monthname(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm) const 12329: { return this->do_get_monthname(__beg, __end, __io, __err, __tm); } 12329: # 567 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: iter_type 12329: get_year(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm) const 12329: { return this->do_get_year(__beg, __end, __io, __err, __tm); } 12329: # 588 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: inline 12329: iter_type get(iter_type __s, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm, char __format, 12329: char __modifier = 0) const 12329: { 12329: return this->do_get(__s, __end, __io, __err, __tm, __format, 12329: __modifier); 12329: } 12329: # 615 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: iter_type get(iter_type __s, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm, const char_type* __fmt, 12329: const char_type* __fmtend) const; 12329: 12329: 12329: protected: 12329: 12329: virtual 12329: ~time_get() { } 12329: # 635 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual dateorder 12329: do_date_order() const; 12329: # 653 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual iter_type 12329: do_get_time(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm) const; 12329: # 672 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual iter_type 12329: do_get_date(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm) const; 12329: # 691 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual iter_type 12329: do_get_weekday(iter_type __beg, iter_type __end, ios_base&, 12329: ios_base::iostate& __err, tm* __tm) const; 12329: # 710 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual iter_type 12329: do_get_monthname(iter_type __beg, iter_type __end, ios_base&, 12329: ios_base::iostate& __err, tm* __tm) const; 12329: # 729 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual iter_type 12329: do_get_year(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm) const; 12329: # 752 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual 12329: 12329: iter_type 12329: do_get(iter_type __s, iter_type __end, ios_base& __f, 12329: ios_base::iostate& __err, tm* __tm, 12329: char __format, char __modifier) const; 12329: 12329: 12329: 12329: iter_type 12329: _M_extract_num(iter_type __beg, iter_type __end, int& __member, 12329: int __min, int __max, size_t __len, 12329: ios_base& __io, ios_base::iostate& __err) const; 12329: 12329: 12329: iter_type 12329: _M_extract_name(iter_type __beg, iter_type __end, int& __member, 12329: const _CharT** __names, size_t __indexlen, 12329: ios_base& __io, ios_base::iostate& __err) const; 12329: 12329: 12329: iter_type 12329: _M_extract_wday_or_month(iter_type __beg, iter_type __end, int& __member, 12329: const _CharT** __names, size_t __indexlen, 12329: ios_base& __io, ios_base::iostate& __err) const; 12329: 12329: 12329: iter_type 12329: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm, 12329: const _CharT* __format) const; 12329: 12329: 12329: 12329: iter_type 12329: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm, 12329: const _CharT* __format, 12329: __time_get_state &__state) const; 12329: }; 12329: 12329: template 12329: locale::id time_get<_CharT, _InIter>::id; 12329: 12329: 12329: template 12329: class time_get_byname : public time_get<_CharT, _InIter> 12329: { 12329: public: 12329: 12329: typedef _CharT char_type; 12329: typedef _InIter iter_type; 12329: 12329: explicit 12329: time_get_byname(const char*, size_t __refs = 0) 12329: : time_get<_CharT, _InIter>(__refs) { } 12329: 12329: 12329: explicit 12329: time_get_byname(const string& __s, size_t __refs = 0) 12329: : time_get_byname(__s.c_str(), __refs) { } 12329: 12329: 12329: protected: 12329: virtual 12329: ~time_get_byname() { } 12329: }; 12329: 12329: } 12329: # 834 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: template 12329: class time_put : public locale::facet 12329: { 12329: public: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef _OutIter iter_type; 12329: 12329: 12329: 12329: static locale::id id; 12329: # 855 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: explicit 12329: time_put(size_t __refs = 0) 12329: : facet(__refs) { } 12329: # 874 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: iter_type 12329: put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 12329: const _CharT* __beg, const _CharT* __end) const; 12329: # 894 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: iter_type 12329: put(iter_type __s, ios_base& __io, char_type __fill, 12329: const tm* __tm, char __format, char __mod = 0) const 12329: { return this->do_put(__s, __io, __fill, __tm, __format, __mod); } 12329: 12329: protected: 12329: 12329: virtual 12329: ~time_put() 12329: { } 12329: # 921 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual iter_type 12329: do_put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 12329: char __format, char __mod) const; 12329: }; 12329: 12329: template 12329: locale::id time_put<_CharT, _OutIter>::id; 12329: 12329: 12329: template 12329: class time_put_byname : public time_put<_CharT, _OutIter> 12329: { 12329: public: 12329: 12329: typedef _CharT char_type; 12329: typedef _OutIter iter_type; 12329: 12329: explicit 12329: time_put_byname(const char*, size_t __refs = 0) 12329: : time_put<_CharT, _OutIter>(__refs) 12329: { } 12329: 12329: 12329: explicit 12329: time_put_byname(const string& __s, size_t __refs = 0) 12329: : time_put_byname(__s.c_str(), __refs) { } 12329: 12329: 12329: protected: 12329: virtual 12329: ~time_put_byname() { } 12329: }; 12329: # 966 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: class money_base 12329: { 12329: public: 12329: enum part { none, space, symbol, sign, value }; 12329: struct pattern { char field[4]; }; 12329: 12329: static const pattern _S_default_pattern; 12329: 12329: enum 12329: { 12329: _S_minus, 12329: _S_zero, 12329: _S_end = 11 12329: }; 12329: 12329: 12329: 12329: static const char* _S_atoms; 12329: 12329: 12329: 12329: __attribute__ ((__const__)) static pattern 12329: _S_construct_pattern(char __precedes, char __space, char __posn) throw (); 12329: }; 12329: 12329: template 12329: struct __moneypunct_cache : public locale::facet 12329: { 12329: const char* _M_grouping; 12329: size_t _M_grouping_size; 12329: bool _M_use_grouping; 12329: _CharT _M_decimal_point; 12329: _CharT _M_thousands_sep; 12329: const _CharT* _M_curr_symbol; 12329: size_t _M_curr_symbol_size; 12329: const _CharT* _M_positive_sign; 12329: size_t _M_positive_sign_size; 12329: const _CharT* _M_negative_sign; 12329: size_t _M_negative_sign_size; 12329: int _M_frac_digits; 12329: money_base::pattern _M_pos_format; 12329: money_base::pattern _M_neg_format; 12329: 12329: 12329: 12329: 12329: _CharT _M_atoms[money_base::_S_end]; 12329: 12329: bool _M_allocated; 12329: 12329: __moneypunct_cache(size_t __refs = 0) : facet(__refs), 12329: _M_grouping(0), _M_grouping_size(0), _M_use_grouping(false), 12329: _M_decimal_point(_CharT()), _M_thousands_sep(_CharT()), 12329: _M_curr_symbol(0), _M_curr_symbol_size(0), 12329: _M_positive_sign(0), _M_positive_sign_size(0), 12329: _M_negative_sign(0), _M_negative_sign_size(0), 12329: _M_frac_digits(0), 12329: _M_pos_format(money_base::pattern()), 12329: _M_neg_format(money_base::pattern()), _M_allocated(false) 12329: { } 12329: 12329: ~__moneypunct_cache(); 12329: 12329: void 12329: _M_cache(const locale& __loc); 12329: 12329: private: 12329: __moneypunct_cache& 12329: operator=(const __moneypunct_cache&); 12329: 12329: explicit 12329: __moneypunct_cache(const __moneypunct_cache&); 12329: }; 12329: 12329: template 12329: __moneypunct_cache<_CharT, _Intl>::~__moneypunct_cache() 12329: { 12329: if (_M_allocated) 12329: { 12329: delete [] _M_grouping; 12329: delete [] _M_curr_symbol; 12329: delete [] _M_positive_sign; 12329: delete [] _M_negative_sign; 12329: } 12329: } 12329: 12329: namespace __cxx11 { 12329: # 1061 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: template 12329: class moneypunct : public locale::facet, public money_base 12329: { 12329: public: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef basic_string<_CharT> string_type; 12329: 12329: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 12329: 12329: private: 12329: __cache_type* _M_data; 12329: 12329: public: 12329: 12329: 12329: static const bool intl = _Intl; 12329: 12329: static locale::id id; 12329: # 1090 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: explicit 12329: moneypunct(size_t __refs = 0) 12329: : facet(__refs), _M_data(0) 12329: { _M_initialize_moneypunct(); } 12329: # 1103 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: explicit 12329: moneypunct(__cache_type* __cache, size_t __refs = 0) 12329: : facet(__refs), _M_data(__cache) 12329: { _M_initialize_moneypunct(); } 12329: # 1118 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: explicit 12329: moneypunct(__c_locale __cloc, const char* __s, size_t __refs = 0) 12329: : facet(__refs), _M_data(0) 12329: { _M_initialize_moneypunct(__cloc, __s); } 12329: # 1132 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: char_type 12329: decimal_point() const 12329: { return this->do_decimal_point(); } 12329: # 1145 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: char_type 12329: thousands_sep() const 12329: { return this->do_thousands_sep(); } 12329: # 1175 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: string 12329: grouping() const 12329: { return this->do_grouping(); } 12329: # 1188 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: string_type 12329: curr_symbol() const 12329: { return this->do_curr_symbol(); } 12329: # 1205 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: string_type 12329: positive_sign() const 12329: { return this->do_positive_sign(); } 12329: # 1222 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: string_type 12329: negative_sign() const 12329: { return this->do_negative_sign(); } 12329: # 1238 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: int 12329: frac_digits() const 12329: { return this->do_frac_digits(); } 12329: # 1274 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: pattern 12329: pos_format() const 12329: { return this->do_pos_format(); } 12329: 12329: pattern 12329: neg_format() const 12329: { return this->do_neg_format(); } 12329: 12329: 12329: protected: 12329: 12329: virtual 12329: ~moneypunct(); 12329: # 1296 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual char_type 12329: do_decimal_point() const 12329: { return _M_data->_M_decimal_point; } 12329: # 1308 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual char_type 12329: do_thousands_sep() const 12329: { return _M_data->_M_thousands_sep; } 12329: # 1321 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual string 12329: do_grouping() const 12329: { return _M_data->_M_grouping; } 12329: # 1334 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual string_type 12329: do_curr_symbol() const 12329: { return _M_data->_M_curr_symbol; } 12329: # 1347 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual string_type 12329: do_positive_sign() const 12329: { return _M_data->_M_positive_sign; } 12329: # 1360 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual string_type 12329: do_negative_sign() const 12329: { return _M_data->_M_negative_sign; } 12329: # 1374 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual int 12329: do_frac_digits() const 12329: { return _M_data->_M_frac_digits; } 12329: # 1388 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual pattern 12329: do_pos_format() const 12329: { return _M_data->_M_pos_format; } 12329: # 1402 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual pattern 12329: do_neg_format() const 12329: { return _M_data->_M_neg_format; } 12329: 12329: 12329: void 12329: _M_initialize_moneypunct(__c_locale __cloc = 0, 12329: const char* __name = 0); 12329: }; 12329: 12329: template 12329: locale::id moneypunct<_CharT, _Intl>::id; 12329: 12329: template 12329: const bool moneypunct<_CharT, _Intl>::intl; 12329: 12329: template<> 12329: moneypunct::~moneypunct(); 12329: 12329: template<> 12329: moneypunct::~moneypunct(); 12329: 12329: template<> 12329: void 12329: moneypunct::_M_initialize_moneypunct(__c_locale, const char*); 12329: 12329: template<> 12329: void 12329: moneypunct::_M_initialize_moneypunct(__c_locale, const char*); 12329: 12329: 12329: template<> 12329: moneypunct::~moneypunct(); 12329: 12329: template<> 12329: moneypunct::~moneypunct(); 12329: 12329: template<> 12329: void 12329: moneypunct::_M_initialize_moneypunct(__c_locale, 12329: const char*); 12329: 12329: template<> 12329: void 12329: moneypunct::_M_initialize_moneypunct(__c_locale, 12329: const char*); 12329: 12329: 12329: 12329: template 12329: class moneypunct_byname : public moneypunct<_CharT, _Intl> 12329: { 12329: public: 12329: typedef _CharT char_type; 12329: typedef basic_string<_CharT> string_type; 12329: 12329: static const bool intl = _Intl; 12329: 12329: explicit 12329: moneypunct_byname(const char* __s, size_t __refs = 0) 12329: : moneypunct<_CharT, _Intl>(__refs) 12329: { 12329: if (__builtin_strcmp(__s, "C") != 0 12329: && __builtin_strcmp(__s, "POSIX") != 0) 12329: { 12329: __c_locale __tmp; 12329: this->_S_create_c_locale(__tmp, __s); 12329: this->_M_initialize_moneypunct(__tmp); 12329: this->_S_destroy_c_locale(__tmp); 12329: } 12329: } 12329: 12329: 12329: explicit 12329: moneypunct_byname(const string& __s, size_t __refs = 0) 12329: : moneypunct_byname(__s.c_str(), __refs) { } 12329: 12329: 12329: protected: 12329: virtual 12329: ~moneypunct_byname() { } 12329: }; 12329: 12329: template 12329: const bool moneypunct_byname<_CharT, _Intl>::intl; 12329: 12329: } 12329: 12329: namespace __cxx11 { 12329: # 1505 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: template 12329: class money_get : public locale::facet 12329: { 12329: public: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef _InIter iter_type; 12329: typedef basic_string<_CharT> string_type; 12329: 12329: 12329: 12329: static locale::id id; 12329: # 1527 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: explicit 12329: money_get(size_t __refs = 0) : facet(__refs) { } 12329: # 1557 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: iter_type 12329: get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 12329: ios_base::iostate& __err, long double& __units) const 12329: { return this->do_get(__s, __end, __intl, __io, __err, __units); } 12329: # 1588 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: iter_type 12329: get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 12329: ios_base::iostate& __err, string_type& __digits) const 12329: { return this->do_get(__s, __end, __intl, __io, __err, __digits); } 12329: 12329: protected: 12329: 12329: virtual 12329: ~money_get() { } 12329: # 1612 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual iter_type 12329: do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 12329: ios_base::iostate& __err, long double& __units) const; 12329: # 1624 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual iter_type 12329: do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 12329: ios_base::iostate& __err, string_type& __digits) const; 12329: # 1644 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: template 12329: iter_type 12329: _M_extract(iter_type __s, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, string& __digits) const; 12329: }; 12329: 12329: template 12329: locale::id money_get<_CharT, _InIter>::id; 12329: # 1666 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: template 12329: class money_put : public locale::facet 12329: { 12329: public: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef _OutIter iter_type; 12329: typedef basic_string<_CharT> string_type; 12329: 12329: 12329: 12329: static locale::id id; 12329: # 1687 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: explicit 12329: money_put(size_t __refs = 0) : facet(__refs) { } 12329: # 1707 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: iter_type 12329: put(iter_type __s, bool __intl, ios_base& __io, 12329: char_type __fill, long double __units) const 12329: { return this->do_put(__s, __intl, __io, __fill, __units); } 12329: # 1730 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: iter_type 12329: put(iter_type __s, bool __intl, ios_base& __io, 12329: char_type __fill, const string_type& __digits) const 12329: { return this->do_put(__s, __intl, __io, __fill, __digits); } 12329: 12329: protected: 12329: 12329: virtual 12329: ~money_put() { } 12329: # 1765 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual iter_type 12329: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 12329: long double __units) const; 12329: # 1789 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual iter_type 12329: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 12329: const string_type& __digits) const; 12329: # 1809 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: template 12329: iter_type 12329: _M_insert(iter_type __s, ios_base& __io, char_type __fill, 12329: const string_type& __digits) const; 12329: }; 12329: 12329: template 12329: locale::id money_put<_CharT, _OutIter>::id; 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: struct messages_base 12329: { 12329: typedef int catalog; 12329: }; 12329: 12329: namespace __cxx11 { 12329: # 1852 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: template 12329: class messages : public locale::facet, public messages_base 12329: { 12329: public: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef basic_string<_CharT> string_type; 12329: 12329: 12329: protected: 12329: 12329: 12329: __c_locale _M_c_locale_messages; 12329: const char* _M_name_messages; 12329: 12329: public: 12329: 12329: static locale::id id; 12329: # 1880 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: explicit 12329: messages(size_t __refs = 0); 12329: # 1894 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: explicit 12329: messages(__c_locale __cloc, const char* __s, size_t __refs = 0); 12329: # 1907 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: catalog 12329: open(const basic_string& __s, const locale& __loc) const 12329: { return this->do_open(__s, __loc); } 12329: # 1925 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: catalog 12329: open(const basic_string&, const locale&, const char*) const; 12329: # 1943 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: string_type 12329: get(catalog __c, int __set, int __msgid, const string_type& __s) const 12329: { return this->do_get(__c, __set, __msgid, __s); } 12329: # 1954 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: void 12329: close(catalog __c) const 12329: { return this->do_close(__c); } 12329: 12329: protected: 12329: 12329: virtual 12329: ~messages(); 12329: # 1974 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual catalog 12329: do_open(const basic_string&, const locale&) const; 12329: # 1993 "/usr/include/c++/12/bits/locale_facets_nonio.h" 3 12329: virtual string_type 12329: do_get(catalog, int, int, const string_type& __dfault) const; 12329: 12329: 12329: 12329: 12329: 12329: 12329: virtual void 12329: do_close(catalog) const; 12329: 12329: 12329: char* 12329: _M_convert_to_char(const string_type& __msg) const 12329: { 12329: 12329: return reinterpret_cast(const_cast<_CharT*>(__msg.c_str())); 12329: } 12329: 12329: 12329: string_type 12329: _M_convert_from_char(char*) const 12329: { 12329: 12329: return string_type(); 12329: } 12329: }; 12329: 12329: template 12329: locale::id messages<_CharT>::id; 12329: 12329: 12329: template<> 12329: string 12329: messages::do_get(catalog, int, int, const string&) const; 12329: 12329: 12329: template<> 12329: wstring 12329: messages::do_get(catalog, int, int, const wstring&) const; 12329: 12329: 12329: 12329: template 12329: class messages_byname : public messages<_CharT> 12329: { 12329: public: 12329: typedef _CharT char_type; 12329: typedef basic_string<_CharT> string_type; 12329: 12329: explicit 12329: messages_byname(const char* __s, size_t __refs = 0); 12329: 12329: 12329: explicit 12329: messages_byname(const string& __s, size_t __refs = 0) 12329: : messages_byname(__s.c_str(), __refs) { } 12329: 12329: 12329: protected: 12329: virtual 12329: ~messages_byname() 12329: { } 12329: }; 12329: 12329: } 12329: 12329: 12329: } 12329: 12329: 12329: # 1 "/usr/include/aarch64-linux-gnu/c++/12/bits/messages_members.h" 1 3 12329: # 36 "/usr/include/aarch64-linux-gnu/c++/12/bits/messages_members.h" 3 12329: # 1 "/usr/include/libintl.h" 1 3 4 12329: # 34 "/usr/include/libintl.h" 3 4 12329: extern "C" { 12329: 12329: 12329: 12329: 12329: extern char *gettext (const char *__msgid) 12329: noexcept (true) __attribute__ ((__format_arg__ (1))); 12329: 12329: 12329: 12329: extern char *dgettext (const char *__domainname, const char *__msgid) 12329: noexcept (true) __attribute__ ((__format_arg__ (2))); 12329: extern char *__dgettext (const char *__domainname, const char *__msgid) 12329: noexcept (true) __attribute__ ((__format_arg__ (2))); 12329: 12329: 12329: 12329: extern char *dcgettext (const char *__domainname, 12329: const char *__msgid, int __category) 12329: noexcept (true) __attribute__ ((__format_arg__ (2))); 12329: extern char *__dcgettext (const char *__domainname, 12329: const char *__msgid, int __category) 12329: noexcept (true) __attribute__ ((__format_arg__ (2))); 12329: 12329: 12329: 12329: 12329: extern char *ngettext (const char *__msgid1, const char *__msgid2, 12329: unsigned long int __n) 12329: noexcept (true) __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2))); 12329: 12329: 12329: 12329: extern char *dngettext (const char *__domainname, const char *__msgid1, 12329: const char *__msgid2, unsigned long int __n) 12329: noexcept (true) __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); 12329: 12329: 12329: 12329: extern char *dcngettext (const char *__domainname, const char *__msgid1, 12329: const char *__msgid2, unsigned long int __n, 12329: int __category) 12329: noexcept (true) __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); 12329: 12329: 12329: 12329: 12329: 12329: extern char *textdomain (const char *__domainname) noexcept (true); 12329: 12329: 12329: 12329: extern char *bindtextdomain (const char *__domainname, 12329: const char *__dirname) noexcept (true); 12329: 12329: 12329: 12329: extern char *bind_textdomain_codeset (const char *__domainname, 12329: const char *__codeset) noexcept (true); 12329: # 121 "/usr/include/libintl.h" 3 4 12329: } 12329: # 37 "/usr/include/aarch64-linux-gnu/c++/12/bits/messages_members.h" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: template 12329: messages<_CharT>::messages(size_t __refs) 12329: : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), 12329: _M_name_messages(_S_get_c_name()) 12329: { } 12329: 12329: template 12329: messages<_CharT>::messages(__c_locale __cloc, const char* __s, 12329: size_t __refs) 12329: : facet(__refs), _M_c_locale_messages(0), _M_name_messages(0) 12329: { 12329: if (__builtin_strcmp(__s, _S_get_c_name()) != 0) 12329: { 12329: const size_t __len = __builtin_strlen(__s) + 1; 12329: char* __tmp = new char[__len]; 12329: __builtin_memcpy(__tmp, __s, __len); 12329: _M_name_messages = __tmp; 12329: } 12329: else 12329: _M_name_messages = _S_get_c_name(); 12329: 12329: 12329: _M_c_locale_messages = _S_clone_c_locale(__cloc); 12329: } 12329: 12329: template 12329: typename messages<_CharT>::catalog 12329: messages<_CharT>::open(const basic_string& __s, const locale& __loc, 12329: const char* __dir) const 12329: { 12329: bindtextdomain(__s.c_str(), __dir); 12329: return this->do_open(__s, __loc); 12329: } 12329: 12329: 12329: template 12329: messages<_CharT>::~messages() 12329: { 12329: if (_M_name_messages != _S_get_c_name()) 12329: delete [] _M_name_messages; 12329: _S_destroy_c_locale(_M_c_locale_messages); 12329: } 12329: 12329: template 12329: typename messages<_CharT>::catalog 12329: messages<_CharT>::do_open(const basic_string& __s, 12329: const locale&) const 12329: { 12329: 12329: 12329: textdomain(__s.c_str()); 12329: return 0; 12329: } 12329: 12329: template 12329: void 12329: messages<_CharT>::do_close(catalog) const 12329: { } 12329: 12329: 12329: template 12329: messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) 12329: : messages<_CharT>(__refs) 12329: { 12329: if (this->_M_name_messages != locale::facet::_S_get_c_name()) 12329: { 12329: delete [] this->_M_name_messages; 12329: if (__builtin_strcmp(__s, locale::facet::_S_get_c_name()) != 0) 12329: { 12329: const size_t __len = __builtin_strlen(__s) + 1; 12329: char* __tmp = new char[__len]; 12329: __builtin_memcpy(__tmp, __s, __len); 12329: this->_M_name_messages = __tmp; 12329: } 12329: else 12329: this->_M_name_messages = locale::facet::_S_get_c_name(); 12329: } 12329: 12329: if (__builtin_strcmp(__s, "C") != 0 12329: && __builtin_strcmp(__s, "POSIX") != 0) 12329: { 12329: this->_S_destroy_c_locale(this->_M_c_locale_messages); 12329: this->_S_create_c_locale(this->_M_c_locale_messages, __s); 12329: } 12329: } 12329: 12329: 12329: template<> 12329: typename messages::catalog 12329: messages::do_open(const basic_string&, 12329: const locale&) const; 12329: 12329: template<> 12329: void 12329: messages::do_close(catalog) const; 12329: 12329: 12329: template<> 12329: typename messages::catalog 12329: messages::do_open(const basic_string&, 12329: const locale&) const; 12329: 12329: template<> 12329: void 12329: messages::do_close(catalog) const; 12329: 12329: 12329: 12329: } 12329: # 2065 "/usr/include/c++/12/bits/locale_facets_nonio.h" 2 3 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/codecvt.h" 1 3 12329: # 39 "/usr/include/c++/12/bits/codecvt.h" 3 12329: 12329: # 40 "/usr/include/c++/12/bits/codecvt.h" 3 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: class codecvt_base 12329: { 12329: public: 12329: enum result 12329: { 12329: ok, 12329: partial, 12329: error, 12329: noconv 12329: }; 12329: }; 12329: # 70 "/usr/include/c++/12/bits/codecvt.h" 3 12329: template 12329: class __codecvt_abstract_base 12329: : public locale::facet, public codecvt_base 12329: { 12329: public: 12329: 12329: typedef codecvt_base::result result; 12329: typedef _InternT intern_type; 12329: typedef _ExternT extern_type; 12329: typedef _StateT state_type; 12329: # 118 "/usr/include/c++/12/bits/codecvt.h" 3 12329: result 12329: out(state_type& __state, const intern_type* __from, 12329: const intern_type* __from_end, const intern_type*& __from_next, 12329: extern_type* __to, extern_type* __to_end, 12329: extern_type*& __to_next) const 12329: { 12329: return this->do_out(__state, __from, __from_end, __from_next, 12329: __to, __to_end, __to_next); 12329: } 12329: # 157 "/usr/include/c++/12/bits/codecvt.h" 3 12329: result 12329: unshift(state_type& __state, extern_type* __to, extern_type* __to_end, 12329: extern_type*& __to_next) const 12329: { return this->do_unshift(__state, __to,__to_end,__to_next); } 12329: # 198 "/usr/include/c++/12/bits/codecvt.h" 3 12329: result 12329: in(state_type& __state, const extern_type* __from, 12329: const extern_type* __from_end, const extern_type*& __from_next, 12329: intern_type* __to, intern_type* __to_end, 12329: intern_type*& __to_next) const 12329: { 12329: return this->do_in(__state, __from, __from_end, __from_next, 12329: __to, __to_end, __to_next); 12329: } 12329: 12329: int 12329: encoding() const throw() 12329: { return this->do_encoding(); } 12329: 12329: bool 12329: always_noconv() const throw() 12329: { return this->do_always_noconv(); } 12329: 12329: int 12329: length(state_type& __state, const extern_type* __from, 12329: const extern_type* __end, size_t __max) const 12329: { return this->do_length(__state, __from, __end, __max); } 12329: 12329: int 12329: max_length() const throw() 12329: { return this->do_max_length(); } 12329: 12329: protected: 12329: explicit 12329: __codecvt_abstract_base(size_t __refs = 0) : locale::facet(__refs) { } 12329: 12329: virtual 12329: ~__codecvt_abstract_base() { } 12329: # 239 "/usr/include/c++/12/bits/codecvt.h" 3 12329: virtual result 12329: do_out(state_type& __state, const intern_type* __from, 12329: const intern_type* __from_end, const intern_type*& __from_next, 12329: extern_type* __to, extern_type* __to_end, 12329: extern_type*& __to_next) const = 0; 12329: 12329: virtual result 12329: do_unshift(state_type& __state, extern_type* __to, 12329: extern_type* __to_end, extern_type*& __to_next) const = 0; 12329: 12329: virtual result 12329: do_in(state_type& __state, const extern_type* __from, 12329: const extern_type* __from_end, const extern_type*& __from_next, 12329: intern_type* __to, intern_type* __to_end, 12329: intern_type*& __to_next) const = 0; 12329: 12329: virtual int 12329: do_encoding() const throw() = 0; 12329: 12329: virtual bool 12329: do_always_noconv() const throw() = 0; 12329: 12329: virtual int 12329: do_length(state_type&, const extern_type* __from, 12329: const extern_type* __end, size_t __max) const = 0; 12329: 12329: virtual int 12329: do_max_length() const throw() = 0; 12329: }; 12329: # 276 "/usr/include/c++/12/bits/codecvt.h" 3 12329: template 12329: class codecvt 12329: : public __codecvt_abstract_base<_InternT, _ExternT, _StateT> 12329: { 12329: public: 12329: 12329: typedef codecvt_base::result result; 12329: typedef _InternT intern_type; 12329: typedef _ExternT extern_type; 12329: typedef _StateT state_type; 12329: 12329: protected: 12329: __c_locale _M_c_locale_codecvt; 12329: 12329: public: 12329: static locale::id id; 12329: 12329: explicit 12329: codecvt(size_t __refs = 0) 12329: : __codecvt_abstract_base<_InternT, _ExternT, _StateT> (__refs), 12329: _M_c_locale_codecvt(0) 12329: { } 12329: 12329: explicit 12329: codecvt(__c_locale __cloc, size_t __refs = 0); 12329: 12329: protected: 12329: virtual 12329: ~codecvt() { } 12329: 12329: virtual result 12329: do_out(state_type& __state, const intern_type* __from, 12329: const intern_type* __from_end, const intern_type*& __from_next, 12329: extern_type* __to, extern_type* __to_end, 12329: extern_type*& __to_next) const; 12329: 12329: virtual result 12329: do_unshift(state_type& __state, extern_type* __to, 12329: extern_type* __to_end, extern_type*& __to_next) const; 12329: 12329: virtual result 12329: do_in(state_type& __state, const extern_type* __from, 12329: const extern_type* __from_end, const extern_type*& __from_next, 12329: intern_type* __to, intern_type* __to_end, 12329: intern_type*& __to_next) const; 12329: 12329: virtual int 12329: do_encoding() const throw(); 12329: 12329: virtual bool 12329: do_always_noconv() const throw(); 12329: 12329: virtual int 12329: do_length(state_type&, const extern_type* __from, 12329: const extern_type* __end, size_t __max) const; 12329: 12329: virtual int 12329: do_max_length() const throw(); 12329: }; 12329: 12329: template 12329: locale::id codecvt<_InternT, _ExternT, _StateT>::id; 12329: 12329: 12329: template<> 12329: class codecvt 12329: : public __codecvt_abstract_base 12329: { 12329: friend class messages; 12329: 12329: public: 12329: 12329: typedef char intern_type; 12329: typedef char extern_type; 12329: typedef mbstate_t state_type; 12329: 12329: protected: 12329: __c_locale _M_c_locale_codecvt; 12329: 12329: public: 12329: static locale::id id; 12329: 12329: explicit 12329: codecvt(size_t __refs = 0); 12329: 12329: explicit 12329: codecvt(__c_locale __cloc, size_t __refs = 0); 12329: 12329: protected: 12329: virtual 12329: ~codecvt(); 12329: 12329: virtual result 12329: do_out(state_type& __state, const intern_type* __from, 12329: const intern_type* __from_end, const intern_type*& __from_next, 12329: extern_type* __to, extern_type* __to_end, 12329: extern_type*& __to_next) const; 12329: 12329: virtual result 12329: do_unshift(state_type& __state, extern_type* __to, 12329: extern_type* __to_end, extern_type*& __to_next) const; 12329: 12329: virtual result 12329: do_in(state_type& __state, const extern_type* __from, 12329: const extern_type* __from_end, const extern_type*& __from_next, 12329: intern_type* __to, intern_type* __to_end, 12329: intern_type*& __to_next) const; 12329: 12329: virtual int 12329: do_encoding() const throw(); 12329: 12329: virtual bool 12329: do_always_noconv() const throw(); 12329: 12329: virtual int 12329: do_length(state_type&, const extern_type* __from, 12329: const extern_type* __end, size_t __max) const; 12329: 12329: virtual int 12329: do_max_length() const throw(); 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: class codecvt 12329: : public __codecvt_abstract_base 12329: { 12329: friend class messages; 12329: 12329: public: 12329: 12329: typedef wchar_t intern_type; 12329: typedef char extern_type; 12329: typedef mbstate_t state_type; 12329: 12329: protected: 12329: __c_locale _M_c_locale_codecvt; 12329: 12329: public: 12329: static locale::id id; 12329: 12329: explicit 12329: codecvt(size_t __refs = 0); 12329: 12329: explicit 12329: codecvt(__c_locale __cloc, size_t __refs = 0); 12329: 12329: protected: 12329: virtual 12329: ~codecvt(); 12329: 12329: virtual result 12329: do_out(state_type& __state, const intern_type* __from, 12329: const intern_type* __from_end, const intern_type*& __from_next, 12329: extern_type* __to, extern_type* __to_end, 12329: extern_type*& __to_next) const; 12329: 12329: virtual result 12329: do_unshift(state_type& __state, 12329: extern_type* __to, extern_type* __to_end, 12329: extern_type*& __to_next) const; 12329: 12329: virtual result 12329: do_in(state_type& __state, 12329: const extern_type* __from, const extern_type* __from_end, 12329: const extern_type*& __from_next, 12329: intern_type* __to, intern_type* __to_end, 12329: intern_type*& __to_next) const; 12329: 12329: virtual 12329: int do_encoding() const throw(); 12329: 12329: virtual 12329: bool do_always_noconv() const throw(); 12329: 12329: virtual 12329: int do_length(state_type&, const extern_type* __from, 12329: const extern_type* __end, size_t __max) const; 12329: 12329: virtual int 12329: do_max_length() const throw(); 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: class codecvt 12329: : public __codecvt_abstract_base 12329: { 12329: public: 12329: 12329: typedef char16_t intern_type; 12329: typedef char extern_type; 12329: typedef mbstate_t state_type; 12329: 12329: public: 12329: static locale::id id; 12329: 12329: explicit 12329: codecvt(size_t __refs = 0) 12329: : __codecvt_abstract_base(__refs) { } 12329: 12329: protected: 12329: virtual 12329: ~codecvt(); 12329: 12329: virtual result 12329: do_out(state_type& __state, const intern_type* __from, 12329: const intern_type* __from_end, const intern_type*& __from_next, 12329: extern_type* __to, extern_type* __to_end, 12329: extern_type*& __to_next) const; 12329: 12329: virtual result 12329: do_unshift(state_type& __state, 12329: extern_type* __to, extern_type* __to_end, 12329: extern_type*& __to_next) const; 12329: 12329: virtual result 12329: do_in(state_type& __state, 12329: const extern_type* __from, const extern_type* __from_end, 12329: const extern_type*& __from_next, 12329: intern_type* __to, intern_type* __to_end, 12329: intern_type*& __to_next) const; 12329: 12329: virtual 12329: int do_encoding() const throw(); 12329: 12329: virtual 12329: bool do_always_noconv() const throw(); 12329: 12329: virtual 12329: int do_length(state_type&, const extern_type* __from, 12329: const extern_type* __end, size_t __max) const; 12329: 12329: virtual int 12329: do_max_length() const throw(); 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template<> 12329: class codecvt 12329: : public __codecvt_abstract_base 12329: { 12329: public: 12329: 12329: typedef char32_t intern_type; 12329: typedef char extern_type; 12329: typedef mbstate_t state_type; 12329: 12329: public: 12329: static locale::id id; 12329: 12329: explicit 12329: codecvt(size_t __refs = 0) 12329: : __codecvt_abstract_base(__refs) { } 12329: 12329: protected: 12329: virtual 12329: ~codecvt(); 12329: 12329: virtual result 12329: do_out(state_type& __state, const intern_type* __from, 12329: const intern_type* __from_end, const intern_type*& __from_next, 12329: extern_type* __to, extern_type* __to_end, 12329: extern_type*& __to_next) const; 12329: 12329: virtual result 12329: do_unshift(state_type& __state, 12329: extern_type* __to, extern_type* __to_end, 12329: extern_type*& __to_next) const; 12329: 12329: virtual result 12329: do_in(state_type& __state, 12329: const extern_type* __from, const extern_type* __from_end, 12329: const extern_type*& __from_next, 12329: intern_type* __to, intern_type* __to_end, 12329: intern_type*& __to_next) const; 12329: 12329: virtual 12329: int do_encoding() const throw(); 12329: 12329: virtual 12329: bool do_always_noconv() const throw(); 12329: 12329: virtual 12329: int do_length(state_type&, const extern_type* __from, 12329: const extern_type* __end, size_t __max) const; 12329: 12329: virtual int 12329: do_max_length() const throw(); 12329: }; 12329: # 698 "/usr/include/c++/12/bits/codecvt.h" 3 12329: template 12329: class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT> 12329: { 12329: public: 12329: explicit 12329: codecvt_byname(const char* __s, size_t __refs = 0) 12329: : codecvt<_InternT, _ExternT, _StateT>(__refs) 12329: { 12329: if (__builtin_strcmp(__s, "C") != 0 12329: && __builtin_strcmp(__s, "POSIX") != 0) 12329: { 12329: this->_S_destroy_c_locale(this->_M_c_locale_codecvt); 12329: this->_S_create_c_locale(this->_M_c_locale_codecvt, __s); 12329: } 12329: } 12329: 12329: 12329: explicit 12329: codecvt_byname(const string& __s, size_t __refs = 0) 12329: : codecvt_byname(__s.c_str(), __refs) { } 12329: 12329: 12329: protected: 12329: virtual 12329: ~codecvt_byname() { } 12329: }; 12329: 12329: 12329: template<> 12329: class codecvt_byname 12329: : public codecvt 12329: { 12329: public: 12329: explicit 12329: codecvt_byname(const char*, size_t __refs = 0) 12329: : codecvt(__refs) { } 12329: 12329: explicit 12329: codecvt_byname(const string& __s, size_t __refs = 0) 12329: : codecvt_byname(__s.c_str(), __refs) { } 12329: 12329: protected: 12329: virtual 12329: ~codecvt_byname() { } 12329: }; 12329: 12329: template<> 12329: class codecvt_byname 12329: : public codecvt 12329: { 12329: public: 12329: explicit 12329: codecvt_byname(const char*, size_t __refs = 0) 12329: : codecvt(__refs) { } 12329: 12329: explicit 12329: codecvt_byname(const string& __s, size_t __refs = 0) 12329: : codecvt_byname(__s.c_str(), __refs) { } 12329: 12329: protected: 12329: virtual 12329: ~codecvt_byname() { } 12329: }; 12329: # 805 "/usr/include/c++/12/bits/codecvt.h" 3 12329: extern template class codecvt_byname; 12329: 12329: extern template 12329: const codecvt& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: 12329: extern template class codecvt_byname; 12329: 12329: extern template 12329: const codecvt& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: 12329: 12329: extern template class codecvt_byname; 12329: extern template class codecvt_byname; 12329: # 840 "/usr/include/c++/12/bits/codecvt.h" 3 12329: 12329: } 12329: # 2068 "/usr/include/c++/12/bits/locale_facets_nonio.h" 2 3 12329: 12329: # 1 "/usr/include/c++/12/bits/locale_facets_nonio.tcc" 1 3 12329: # 33 "/usr/include/c++/12/bits/locale_facets_nonio.tcc" 3 12329: 12329: # 34 "/usr/include/c++/12/bits/locale_facets_nonio.tcc" 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: struct __use_cache<__moneypunct_cache<_CharT, _Intl> > 12329: { 12329: const __moneypunct_cache<_CharT, _Intl>* 12329: operator() (const locale& __loc) const 12329: { 12329: const size_t __i = moneypunct<_CharT, _Intl>::id._M_id(); 12329: const locale::facet** __caches = __loc._M_impl->_M_caches; 12329: if (!__caches[__i]) 12329: { 12329: __moneypunct_cache<_CharT, _Intl>* __tmp = 0; 12329: try 12329: { 12329: __tmp = new __moneypunct_cache<_CharT, _Intl>; 12329: __tmp->_M_cache(__loc); 12329: } 12329: catch(...) 12329: { 12329: delete __tmp; 12329: throw; 12329: } 12329: __loc._M_impl->_M_install_cache(__tmp, __i); 12329: } 12329: return static_cast< 12329: const __moneypunct_cache<_CharT, _Intl>*>(__caches[__i]); 12329: } 12329: }; 12329: 12329: template 12329: void 12329: __moneypunct_cache<_CharT, _Intl>::_M_cache(const locale& __loc) 12329: { 12329: const moneypunct<_CharT, _Intl>& __mp = 12329: use_facet >(__loc); 12329: 12329: struct _Scoped_str 12329: { 12329: size_t _M_len; 12329: _CharT* _M_str; 12329: 12329: explicit 12329: _Scoped_str(const basic_string<_CharT>& __str) 12329: : _M_len(__str.size()), _M_str(new _CharT[_M_len]) 12329: { __str.copy(_M_str, _M_len); } 12329: 12329: ~_Scoped_str() { delete[] _M_str; } 12329: 12329: void 12329: _M_release(const _CharT*& __p, size_t& __n) 12329: { 12329: __p = _M_str; 12329: __n = _M_len; 12329: _M_str = 0; 12329: } 12329: }; 12329: 12329: _Scoped_str __curr_symbol(__mp.curr_symbol()); 12329: _Scoped_str __positive_sign(__mp.positive_sign()); 12329: _Scoped_str __negative_sign(__mp.negative_sign()); 12329: 12329: const string& __g = __mp.grouping(); 12329: const size_t __g_size = __g.size(); 12329: char* const __grouping = new char[__g_size]; 12329: __g.copy(__grouping, __g_size); 12329: 12329: 12329: 12329: _M_grouping = __grouping; 12329: _M_grouping_size = __g_size; 12329: _M_use_grouping = (__g_size 12329: && static_cast(__grouping[0]) > 0 12329: && (__grouping[0] 12329: != __gnu_cxx::__numeric_traits::__max)); 12329: 12329: _M_decimal_point = __mp.decimal_point(); 12329: _M_thousands_sep = __mp.thousands_sep(); 12329: 12329: __curr_symbol._M_release(_M_curr_symbol, _M_curr_symbol_size); 12329: __positive_sign._M_release(_M_positive_sign, _M_positive_sign_size); 12329: __negative_sign._M_release(_M_negative_sign, _M_negative_sign_size); 12329: 12329: _M_frac_digits = __mp.frac_digits(); 12329: _M_pos_format = __mp.pos_format(); 12329: _M_neg_format = __mp.neg_format(); 12329: 12329: const ctype<_CharT>& __ct = use_facet >(__loc); 12329: __ct.widen(money_base::_S_atoms, 12329: money_base::_S_atoms + money_base::_S_end, _M_atoms); 12329: 12329: _M_allocated = true; 12329: } 12329: 12329: namespace __cxx11 { 12329: 12329: template 12329: template 12329: _InIter 12329: money_get<_CharT, _InIter>:: 12329: _M_extract(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, string& __units) const 12329: { 12329: typedef char_traits<_CharT> __traits_type; 12329: typedef typename string_type::size_type size_type; 12329: typedef money_base::part part; 12329: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 12329: 12329: const locale& __loc = __io._M_getloc(); 12329: const ctype<_CharT>& __ctype = use_facet >(__loc); 12329: 12329: __use_cache<__cache_type> __uc; 12329: const __cache_type* __lc = __uc(__loc); 12329: const char_type* __lit = __lc->_M_atoms; 12329: 12329: 12329: bool __negative = false; 12329: 12329: size_type __sign_size = 0; 12329: 12329: const bool __mandatory_sign = (__lc->_M_positive_sign_size 12329: && __lc->_M_negative_sign_size); 12329: 12329: string __grouping_tmp; 12329: if (__lc->_M_use_grouping) 12329: __grouping_tmp.reserve(32); 12329: 12329: int __last_pos = 0; 12329: 12329: int __n = 0; 12329: 12329: bool __testvalid = true; 12329: 12329: bool __testdecfound = false; 12329: 12329: 12329: string __res; 12329: __res.reserve(32); 12329: 12329: const char_type* __lit_zero = __lit + money_base::_S_zero; 12329: const money_base::pattern __p = __lc->_M_neg_format; 12329: for (int __i = 0; __i < 4 && __testvalid; ++__i) 12329: { 12329: const part __which = static_cast(__p.field[__i]); 12329: switch (__which) 12329: { 12329: case money_base::symbol: 12329: 12329: 12329: 12329: 12329: if (__io.flags() & ios_base::showbase || __sign_size > 1 12329: || __i == 0 12329: || (__i == 1 && (__mandatory_sign 12329: || (static_cast(__p.field[0]) 12329: == money_base::sign) 12329: || (static_cast(__p.field[2]) 12329: == money_base::space))) 12329: || (__i == 2 && ((static_cast(__p.field[3]) 12329: == money_base::value) 12329: || (__mandatory_sign 12329: && (static_cast(__p.field[3]) 12329: == money_base::sign))))) 12329: { 12329: const size_type __len = __lc->_M_curr_symbol_size; 12329: size_type __j = 0; 12329: for (; __beg != __end && __j < __len 12329: && *__beg == __lc->_M_curr_symbol[__j]; 12329: ++__beg, (void)++__j); 12329: if (__j != __len 12329: && (__j || __io.flags() & ios_base::showbase)) 12329: __testvalid = false; 12329: } 12329: break; 12329: case money_base::sign: 12329: 12329: if (__lc->_M_positive_sign_size && __beg != __end 12329: && *__beg == __lc->_M_positive_sign[0]) 12329: { 12329: __sign_size = __lc->_M_positive_sign_size; 12329: ++__beg; 12329: } 12329: else if (__lc->_M_negative_sign_size && __beg != __end 12329: && *__beg == __lc->_M_negative_sign[0]) 12329: { 12329: __negative = true; 12329: __sign_size = __lc->_M_negative_sign_size; 12329: ++__beg; 12329: } 12329: else if (__lc->_M_positive_sign_size 12329: && !__lc->_M_negative_sign_size) 12329: 12329: 12329: __negative = true; 12329: else if (__mandatory_sign) 12329: __testvalid = false; 12329: break; 12329: case money_base::value: 12329: 12329: 12329: for (; __beg != __end; ++__beg) 12329: { 12329: const char_type __c = *__beg; 12329: const char_type* __q = __traits_type::find(__lit_zero, 12329: 10, __c); 12329: if (__q != 0) 12329: { 12329: __res += money_base::_S_atoms[__q - __lit]; 12329: ++__n; 12329: } 12329: else if (__c == __lc->_M_decimal_point 12329: && !__testdecfound) 12329: { 12329: if (__lc->_M_frac_digits <= 0) 12329: break; 12329: 12329: __last_pos = __n; 12329: __n = 0; 12329: __testdecfound = true; 12329: } 12329: else if (__lc->_M_use_grouping 12329: && __c == __lc->_M_thousands_sep 12329: && !__testdecfound) 12329: { 12329: if (__n) 12329: { 12329: 12329: __grouping_tmp += static_cast(__n); 12329: __n = 0; 12329: } 12329: else 12329: { 12329: __testvalid = false; 12329: break; 12329: } 12329: } 12329: else 12329: break; 12329: } 12329: if (__res.empty()) 12329: __testvalid = false; 12329: break; 12329: case money_base::space: 12329: 12329: if (__beg != __end && __ctype.is(ctype_base::space, *__beg)) 12329: ++__beg; 12329: else 12329: __testvalid = false; 12329: 12329: case money_base::none: 12329: 12329: if (__i != 3) 12329: for (; __beg != __end 12329: && __ctype.is(ctype_base::space, *__beg); ++__beg); 12329: break; 12329: } 12329: } 12329: 12329: 12329: if (__sign_size > 1 && __testvalid) 12329: { 12329: const char_type* __sign = __negative ? __lc->_M_negative_sign 12329: : __lc->_M_positive_sign; 12329: size_type __i = 1; 12329: for (; __beg != __end && __i < __sign_size 12329: && *__beg == __sign[__i]; ++__beg, (void)++__i); 12329: 12329: if (__i != __sign_size) 12329: __testvalid = false; 12329: } 12329: 12329: if (__testvalid) 12329: { 12329: 12329: if (__res.size() > 1) 12329: { 12329: const size_type __first = __res.find_first_not_of('0'); 12329: const bool __only_zeros = __first == string::npos; 12329: if (__first) 12329: __res.erase(0, __only_zeros ? __res.size() - 1 : __first); 12329: } 12329: 12329: 12329: if (__negative && __res[0] != '0') 12329: __res.insert(__res.begin(), '-'); 12329: 12329: 12329: if (__grouping_tmp.size()) 12329: { 12329: 12329: __grouping_tmp += static_cast(__testdecfound ? __last_pos 12329: : __n); 12329: if (!std::__verify_grouping(__lc->_M_grouping, 12329: __lc->_M_grouping_size, 12329: __grouping_tmp)) 12329: __err |= ios_base::failbit; 12329: } 12329: 12329: 12329: if (__testdecfound && __n != __lc->_M_frac_digits) 12329: __testvalid = false; 12329: } 12329: 12329: 12329: if (!__testvalid) 12329: __err |= ios_base::failbit; 12329: else 12329: __units.swap(__res); 12329: 12329: 12329: if (__beg == __end) 12329: __err |= ios_base::eofbit; 12329: return __beg; 12329: } 12329: # 368 "/usr/include/c++/12/bits/locale_facets_nonio.tcc" 3 12329: template 12329: _InIter 12329: money_get<_CharT, _InIter>:: 12329: do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, 12329: ios_base::iostate& __err, long double& __units) const 12329: { 12329: string __str; 12329: __beg = __intl ? _M_extract(__beg, __end, __io, __err, __str) 12329: : _M_extract(__beg, __end, __io, __err, __str); 12329: std::__convert_to_v(__str.c_str(), __units, __err, _S_get_c_locale()); 12329: return __beg; 12329: } 12329: 12329: template 12329: _InIter 12329: money_get<_CharT, _InIter>:: 12329: do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, 12329: ios_base::iostate& __err, string_type& __digits) const 12329: { 12329: typedef typename string::size_type size_type; 12329: 12329: const locale& __loc = __io._M_getloc(); 12329: const ctype<_CharT>& __ctype = use_facet >(__loc); 12329: 12329: string __str; 12329: __beg = __intl ? _M_extract(__beg, __end, __io, __err, __str) 12329: : _M_extract(__beg, __end, __io, __err, __str); 12329: const size_type __len = __str.size(); 12329: if (__len) 12329: { 12329: __digits.resize(__len); 12329: __ctype.widen(__str.data(), __str.data() + __len, &__digits[0]); 12329: } 12329: return __beg; 12329: } 12329: # 420 "/usr/include/c++/12/bits/locale_facets_nonio.tcc" 3 12329: template 12329: template 12329: _OutIter 12329: money_put<_CharT, _OutIter>:: 12329: _M_insert(iter_type __s, ios_base& __io, char_type __fill, 12329: const string_type& __digits) const 12329: { 12329: typedef typename string_type::size_type size_type; 12329: typedef money_base::part part; 12329: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 12329: 12329: const locale& __loc = __io._M_getloc(); 12329: const ctype<_CharT>& __ctype = use_facet >(__loc); 12329: 12329: __use_cache<__cache_type> __uc; 12329: const __cache_type* __lc = __uc(__loc); 12329: const char_type* __lit = __lc->_M_atoms; 12329: 12329: 12329: 12329: const char_type* __beg = __digits.data(); 12329: 12329: money_base::pattern __p; 12329: const char_type* __sign; 12329: size_type __sign_size; 12329: if (!(*__beg == __lit[money_base::_S_minus])) 12329: { 12329: __p = __lc->_M_pos_format; 12329: __sign = __lc->_M_positive_sign; 12329: __sign_size = __lc->_M_positive_sign_size; 12329: } 12329: else 12329: { 12329: __p = __lc->_M_neg_format; 12329: __sign = __lc->_M_negative_sign; 12329: __sign_size = __lc->_M_negative_sign_size; 12329: if (__digits.size()) 12329: ++__beg; 12329: } 12329: 12329: 12329: size_type __len = __ctype.scan_not(ctype_base::digit, __beg, 12329: __beg + __digits.size()) - __beg; 12329: if (__len) 12329: { 12329: 12329: 12329: 12329: string_type __value; 12329: __value.reserve(2 * __len); 12329: 12329: 12329: 12329: long __paddec = __len - __lc->_M_frac_digits; 12329: if (__paddec > 0) 12329: { 12329: if (__lc->_M_frac_digits < 0) 12329: __paddec = __len; 12329: if (__lc->_M_grouping_size) 12329: { 12329: __value.assign(2 * __paddec, char_type()); 12329: _CharT* __vend = 12329: std::__add_grouping(&__value[0], __lc->_M_thousands_sep, 12329: __lc->_M_grouping, 12329: __lc->_M_grouping_size, 12329: __beg, __beg + __paddec); 12329: __value.erase(__vend - &__value[0]); 12329: } 12329: else 12329: __value.assign(__beg, __paddec); 12329: } 12329: 12329: 12329: if (__lc->_M_frac_digits > 0) 12329: { 12329: __value += __lc->_M_decimal_point; 12329: if (__paddec >= 0) 12329: __value.append(__beg + __paddec, __lc->_M_frac_digits); 12329: else 12329: { 12329: 12329: __value.append(-__paddec, __lit[money_base::_S_zero]); 12329: __value.append(__beg, __len); 12329: } 12329: } 12329: 12329: 12329: const ios_base::fmtflags __f = __io.flags() 12329: & ios_base::adjustfield; 12329: __len = __value.size() + __sign_size; 12329: __len += ((__io.flags() & ios_base::showbase) 12329: ? __lc->_M_curr_symbol_size : 0); 12329: 12329: string_type __res; 12329: __res.reserve(2 * __len); 12329: 12329: const size_type __width = static_cast(__io.width()); 12329: const bool __testipad = (__f == ios_base::internal 12329: && __len < __width); 12329: 12329: for (int __i = 0; __i < 4; ++__i) 12329: { 12329: const part __which = static_cast(__p.field[__i]); 12329: switch (__which) 12329: { 12329: case money_base::symbol: 12329: if (__io.flags() & ios_base::showbase) 12329: __res.append(__lc->_M_curr_symbol, 12329: __lc->_M_curr_symbol_size); 12329: break; 12329: case money_base::sign: 12329: 12329: 12329: 12329: if (__sign_size) 12329: __res += __sign[0]; 12329: break; 12329: case money_base::value: 12329: __res += __value; 12329: break; 12329: case money_base::space: 12329: 12329: 12329: 12329: if (__testipad) 12329: __res.append(__width - __len, __fill); 12329: else 12329: __res += __fill; 12329: break; 12329: case money_base::none: 12329: if (__testipad) 12329: __res.append(__width - __len, __fill); 12329: break; 12329: } 12329: } 12329: 12329: 12329: if (__sign_size > 1) 12329: __res.append(__sign + 1, __sign_size - 1); 12329: 12329: 12329: __len = __res.size(); 12329: if (__width > __len) 12329: { 12329: if (__f == ios_base::left) 12329: 12329: __res.append(__width - __len, __fill); 12329: else 12329: 12329: __res.insert(0, __width - __len, __fill); 12329: __len = __width; 12329: } 12329: 12329: 12329: __s = std::__write(__s, __res.data(), __len); 12329: } 12329: __io.width(0); 12329: return __s; 12329: } 12329: # 590 "/usr/include/c++/12/bits/locale_facets_nonio.tcc" 3 12329: template 12329: _OutIter 12329: money_put<_CharT, _OutIter>:: 12329: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 12329: long double __units) const 12329: { 12329: const locale __loc = __io.getloc(); 12329: const ctype<_CharT>& __ctype = use_facet >(__loc); 12329: 12329: 12329: int __cs_size = 64; 12329: char* __cs = static_cast(__builtin_alloca(__cs_size)); 12329: 12329: 12329: int __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 12329: "%.*Lf", 0, __units); 12329: 12329: if (__len >= __cs_size) 12329: { 12329: __cs_size = __len + 1; 12329: __cs = static_cast(__builtin_alloca(__cs_size)); 12329: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 12329: "%.*Lf", 0, __units); 12329: } 12329: # 622 "/usr/include/c++/12/bits/locale_facets_nonio.tcc" 3 12329: string_type __digits(__len, char_type()); 12329: __ctype.widen(__cs, __cs + __len, &__digits[0]); 12329: return __intl ? _M_insert(__s, __io, __fill, __digits) 12329: : _M_insert(__s, __io, __fill, __digits); 12329: } 12329: 12329: template 12329: _OutIter 12329: money_put<_CharT, _OutIter>:: 12329: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 12329: const string_type& __digits) const 12329: { return __intl ? _M_insert(__s, __io, __fill, __digits) 12329: : _M_insert(__s, __io, __fill, __digits); } 12329: # 674 "/usr/include/c++/12/bits/locale_facets_nonio.tcc" 3 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: time_base::dateorder 12329: time_get<_CharT, _InIter>::do_date_order() const 12329: { return time_base::no_order; } 12329: 12329: 12329: 12329: template 12329: _InIter 12329: time_get<_CharT, _InIter>:: 12329: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm, 12329: const _CharT* __format, 12329: __time_get_state &__state) const 12329: { 12329: const locale& __loc = __io._M_getloc(); 12329: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 12329: const ctype<_CharT>& __ctype = use_facet >(__loc); 12329: const size_t __len = char_traits<_CharT>::length(__format); 12329: 12329: ios_base::iostate __tmperr = ios_base::goodbit; 12329: size_t __i = 0; 12329: for (; __beg != __end && __i < __len && !__tmperr; ++__i) 12329: { 12329: if (__ctype.narrow(__format[__i], 0) == '%') 12329: { 12329: 12329: char __c = __ctype.narrow(__format[++__i], 0); 12329: int __mem = 0; 12329: if (__c == 'E' || __c == 'O') 12329: __c = __ctype.narrow(__format[++__i], 0); 12329: switch (__c) 12329: { 12329: const char* __cs; 12329: _CharT __wcs[10]; 12329: case 'a': 12329: case 'A': 12329: 12329: const char_type* __days[14]; 12329: __tp._M_days(&__days[0]); 12329: __tp._M_days_abbreviated(&__days[7]); 12329: __beg = _M_extract_name(__beg, __end, __mem, __days, 12329: 14, __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __tm->tm_wday = __mem % 7; 12329: __state._M_have_wday = 1; 12329: } 12329: break; 12329: case 'h': 12329: case 'b': 12329: case 'B': 12329: 12329: const char_type* __months[24]; 12329: __tp._M_months(&__months[0]); 12329: __tp._M_months_abbreviated(&__months[12]); 12329: __beg = _M_extract_name(__beg, __end, __mem, 12329: __months, 24, __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __tm->tm_mon = __mem % 12; 12329: __state._M_have_mon = 1; 12329: __state._M_want_xday = 1; 12329: } 12329: break; 12329: case 'c': 12329: 12329: const char_type* __dt[2]; 12329: __tp._M_date_time_formats(__dt); 12329: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 12329: __tm, __dt[0], __state); 12329: if (!__tmperr) 12329: __state._M_want_xday = 1; 12329: break; 12329: case 'C': 12329: 12329: __beg = _M_extract_num(__beg, __end, __mem, 0, 99, 2, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __state._M_century = __mem; 12329: __state._M_have_century = 1; 12329: __state._M_want_xday = 1; 12329: } 12329: break; 12329: case 'd': 12329: case 'e': 12329: 12329: if (__ctype.is(ctype_base::space, *__beg)) 12329: ++__beg; 12329: __beg = _M_extract_num(__beg, __end, __mem, 1, 31, 2, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __tm->tm_mday = __mem; 12329: __state._M_have_mday = 1; 12329: __state._M_want_xday = 1; 12329: } 12329: break; 12329: case 'D': 12329: 12329: __cs = "%m/%d/%y"; 12329: __ctype.widen(__cs, __cs + 9, __wcs); 12329: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 12329: __tm, __wcs, __state); 12329: if (!__tmperr) 12329: __state._M_want_xday = 1; 12329: break; 12329: case 'H': 12329: 12329: __beg = _M_extract_num(__beg, __end, __mem, 0, 23, 2, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __tm->tm_hour = __mem; 12329: __state._M_have_I = 0; 12329: } 12329: break; 12329: case 'I': 12329: 12329: __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __tm->tm_hour = __mem % 12; 12329: __state._M_have_I = 1; 12329: } 12329: break; 12329: case 'j': 12329: 12329: __beg = _M_extract_num(__beg, __end, __mem, 1, 366, 3, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __tm->tm_yday = __mem - 1; 12329: __state._M_have_yday = 1; 12329: } 12329: break; 12329: case 'm': 12329: 12329: __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __tm->tm_mon = __mem - 1; 12329: __state._M_have_mon = 1; 12329: } 12329: break; 12329: case 'M': 12329: 12329: __beg = _M_extract_num(__beg, __end, __mem, 0, 59, 2, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: __tm->tm_min = __mem; 12329: break; 12329: case 'n': 12329: case 't': 12329: while (__beg != __end 12329: && __ctype.is(ctype_base::space, *__beg)) 12329: ++__beg; 12329: break; 12329: case 'p': 12329: 12329: const char_type* __ampm[2]; 12329: __tp._M_am_pm(&__ampm[0]); 12329: if (!__ampm[0][0] || !__ampm[1][0]) 12329: break; 12329: __beg = _M_extract_name(__beg, __end, __mem, __ampm, 12329: 2, __io, __tmperr); 12329: if (!__tmperr && __mem) 12329: __state._M_is_pm = 1; 12329: break; 12329: case 'r': 12329: 12329: const char_type* __ampm_format; 12329: __tp._M_am_pm_format(&__ampm_format); 12329: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 12329: __tm, __ampm_format, __state); 12329: break; 12329: case 'R': 12329: 12329: __cs = "%H:%M"; 12329: __ctype.widen(__cs, __cs + 6, __wcs); 12329: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 12329: __tm, __wcs, __state); 12329: break; 12329: case 'S': 12329: 12329: 12329: 12329: __beg = _M_extract_num(__beg, __end, __mem, 0, 60, 2, 12329: 12329: 12329: 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: __tm->tm_sec = __mem; 12329: break; 12329: case 'T': 12329: 12329: __cs = "%H:%M:%S"; 12329: __ctype.widen(__cs, __cs + 9, __wcs); 12329: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 12329: __tm, __wcs, __state); 12329: break; 12329: case 'U': 12329: 12329: __beg = _M_extract_num(__beg, __end, __mem, 0, 53, 2, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __state._M_week_no = __mem; 12329: __state._M_have_uweek = 1; 12329: } 12329: break; 12329: case 'w': 12329: 12329: __beg = _M_extract_num(__beg, __end, __mem, 0, 6, 1, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __tm->tm_wday = __mem; 12329: __state._M_have_wday = 1; 12329: } 12329: break; 12329: case 'W': 12329: 12329: __beg = _M_extract_num(__beg, __end, __mem, 0, 53, 2, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __state._M_week_no = __mem; 12329: __state._M_have_wweek = 1; 12329: } 12329: break; 12329: case 'x': 12329: 12329: const char_type* __dates[2]; 12329: __tp._M_date_formats(__dates); 12329: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 12329: __tm, __dates[0], __state); 12329: break; 12329: case 'X': 12329: 12329: const char_type* __times[2]; 12329: __tp._M_time_formats(__times); 12329: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 12329: __tm, __times[0], __state); 12329: break; 12329: case 'y': 12329: 12329: __beg = _M_extract_num(__beg, __end, __mem, 0, 99, 2, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __state._M_want_century = 1; 12329: __state._M_want_xday = 1; 12329: 12329: 12329: __c = 0; 12329: if (__beg != __end) 12329: __c = __ctype.narrow(*__beg, '*'); 12329: if (__c >= '0' && __c <= '9') 12329: { 12329: ++__beg; 12329: __mem = __mem * 10 + (__c - '0'); 12329: if (__beg != __end) 12329: { 12329: __c = __ctype.narrow(*__beg, '*'); 12329: if (__c >= '0' && __c <= '9') 12329: { 12329: ++__beg; 12329: __mem = __mem * 10 + (__c - '0'); 12329: } 12329: } 12329: __mem -= 1900; 12329: __state._M_want_century = 0; 12329: } 12329: 12329: 12329: else if (__mem < 69) 12329: __mem += 100; 12329: __tm->tm_year = __mem; 12329: } 12329: break; 12329: case 'Y': 12329: 12329: __beg = _M_extract_num(__beg, __end, __mem, 0, 9999, 4, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: __tm->tm_year = __mem - 1900; 12329: __state._M_want_century = 0; 12329: __state._M_want_xday = 1; 12329: } 12329: break; 12329: case 'Z': 12329: 12329: if (__ctype.is(ctype_base::upper, *__beg)) 12329: { 12329: int __tmp; 12329: __beg = _M_extract_name(__beg, __end, __tmp, 12329: __timepunct_cache<_CharT>::_S_timezones, 12329: 14, __io, __tmperr); 12329: 12329: 12329: if (__beg != __end && !__tmperr && __tmp == 0 12329: && (*__beg == __ctype.widen('-') 12329: || *__beg == __ctype.widen('+'))) 12329: { 12329: __beg = _M_extract_num(__beg, __end, __tmp, 0, 23, 2, 12329: __io, __tmperr); 12329: __beg = _M_extract_num(__beg, __end, __tmp, 0, 59, 2, 12329: __io, __tmperr); 12329: } 12329: } 12329: else 12329: __tmperr |= ios_base::failbit; 12329: break; 12329: case '%': 12329: if (*__beg == __ctype.widen('%')) 12329: ++__beg; 12329: else 12329: __tmperr |= ios_base::failbit; 12329: break; 12329: default: 12329: 12329: __tmperr |= ios_base::failbit; 12329: } 12329: } 12329: else if (__ctype.is(ctype_base::space, __format[__i])) 12329: { 12329: 12329: while (__beg != __end 12329: && __ctype.is(ctype_base::space, *__beg)) 12329: ++__beg; 12329: } 12329: else 12329: { 12329: 12329: 12329: if (__ctype.tolower(__format[__i]) == __ctype.tolower(*__beg) 12329: || __ctype.toupper(__format[__i]) == __ctype.toupper(*__beg)) 12329: ++__beg; 12329: else 12329: __tmperr |= ios_base::failbit; 12329: } 12329: } 12329: 12329: if (__tmperr || __i != __len) 12329: __err |= ios_base::failbit; 12329: 12329: return __beg; 12329: } 12329: 12329: template 12329: _InIter 12329: time_get<_CharT, _InIter>:: 12329: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm, 12329: const _CharT* __format) const 12329: { 12329: __time_get_state __state = __time_get_state(); 12329: return _M_extract_via_format(__beg, __end, __io, __err, __tm, 12329: __format, __state); 12329: } 12329: 12329: template 12329: _InIter 12329: time_get<_CharT, _InIter>:: 12329: _M_extract_num(iter_type __beg, iter_type __end, int& __member, 12329: int __min, int __max, size_t __len, 12329: ios_base& __io, ios_base::iostate& __err) const 12329: { 12329: const locale& __loc = __io._M_getloc(); 12329: const ctype<_CharT>& __ctype = use_facet >(__loc); 12329: 12329: size_t __i = 0; 12329: int __value = 0; 12329: for (; __beg != __end && __i < __len; ++__beg, (void)++__i) 12329: { 12329: const char __c = __ctype.narrow(*__beg, '*'); 12329: if (__c >= '0' && __c <= '9') 12329: { 12329: __value = __value * 10 + (__c - '0'); 12329: if (__value > __max) 12329: break; 12329: } 12329: else 12329: break; 12329: } 12329: if (__i && __value >= __min && __value <= __max) 12329: __member = __value; 12329: else 12329: __err |= ios_base::failbit; 12329: 12329: return __beg; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: _InIter 12329: time_get<_CharT, _InIter>:: 12329: _M_extract_name(iter_type __beg, iter_type __end, int& __member, 12329: const _CharT** __names, size_t __indexlen, 12329: ios_base& __io, ios_base::iostate& __err) const 12329: { 12329: typedef char_traits<_CharT> __traits_type; 12329: const locale& __loc = __io._M_getloc(); 12329: const ctype<_CharT>& __ctype = use_facet >(__loc); 12329: 12329: size_t* __matches 12329: = static_cast(__builtin_alloca(2 * sizeof(size_t) 12329: * __indexlen)); 12329: size_t* __lengths = __matches + __indexlen; 12329: size_t __nmatches = 0; 12329: size_t __pos = 0; 12329: bool __testvalid = true; 12329: const char_type* __name; 12329: bool __begupdated = false; 12329: 12329: 12329: if (__beg != __end) 12329: { 12329: const char_type __c = *__beg; 12329: 12329: const char_type __cl = __ctype.tolower(__c); 12329: const char_type __cu = __ctype.toupper(__c); 12329: for (size_t __i1 = 0; __i1 < __indexlen; ++__i1) 12329: if (__cl == __ctype.tolower(__names[__i1][0]) 12329: || __cu == __ctype.toupper(__names[__i1][0])) 12329: { 12329: __lengths[__nmatches] 12329: = __traits_type::length(__names[__i1]); 12329: __matches[__nmatches++] = __i1; 12329: } 12329: } 12329: 12329: while (__nmatches > 1) 12329: { 12329: 12329: size_t __minlen = __lengths[0]; 12329: for (size_t __i2 = 1; __i2 < __nmatches; ++__i2) 12329: __minlen = std::min(__minlen, __lengths[__i2]); 12329: ++__pos; 12329: ++__beg; 12329: if (__pos == __minlen) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: bool __match_longer = false; 12329: 12329: if (__beg != __end) 12329: { 12329: 12329: const char_type __cl = __ctype.tolower(*__beg); 12329: const char_type __cu = __ctype.toupper(*__beg); 12329: for (size_t __i3 = 0; __i3 < __nmatches; ++__i3) 12329: { 12329: __name = __names[__matches[__i3]]; 12329: if (__lengths[__i3] > __pos 12329: && (__ctype.tolower(__name[__pos]) == __cl 12329: || __ctype.toupper(__name[__pos]) == __cu)) 12329: { 12329: __match_longer = true; 12329: break; 12329: } 12329: } 12329: } 12329: for (size_t __i4 = 0; __i4 < __nmatches;) 12329: if (__match_longer == (__lengths[__i4] == __pos)) 12329: { 12329: __matches[__i4] = __matches[--__nmatches]; 12329: __lengths[__i4] = __lengths[__nmatches]; 12329: } 12329: else 12329: ++__i4; 12329: if (__match_longer) 12329: { 12329: __minlen = __lengths[0]; 12329: for (size_t __i5 = 1; __i5 < __nmatches; ++__i5) 12329: __minlen = std::min(__minlen, __lengths[__i5]); 12329: } 12329: else 12329: { 12329: 12329: 12329: if (__nmatches == 2 && (__indexlen & 1) == 0) 12329: { 12329: if (__matches[0] < __indexlen / 2) 12329: { 12329: if (__matches[1] == __matches[0] + __indexlen / 2) 12329: __nmatches = 1; 12329: } 12329: else if (__matches[1] == __matches[0] - __indexlen / 2) 12329: { 12329: __matches[0] = __matches[1]; 12329: __lengths[0] = __lengths[1]; 12329: __nmatches = 1; 12329: } 12329: } 12329: __begupdated = true; 12329: break; 12329: } 12329: } 12329: if (__pos < __minlen && __beg != __end) 12329: { 12329: 12329: const char_type __cl = __ctype.tolower(*__beg); 12329: const char_type __cu = __ctype.toupper(*__beg); 12329: for (size_t __i6 = 0; __i6 < __nmatches;) 12329: { 12329: __name = __names[__matches[__i6]]; 12329: if (__ctype.tolower(__name[__pos]) != __cl 12329: && __ctype.toupper(__name[__pos]) != __cu) 12329: { 12329: __matches[__i6] = __matches[--__nmatches]; 12329: __lengths[__i6] = __lengths[__nmatches]; 12329: } 12329: else 12329: ++__i6; 12329: } 12329: } 12329: else 12329: break; 12329: } 12329: 12329: if (__nmatches == 1) 12329: { 12329: 12329: if (!__begupdated) 12329: { 12329: ++__beg; 12329: ++__pos; 12329: } 12329: __name = __names[__matches[0]]; 12329: const size_t __len = __lengths[0]; 12329: while (__pos < __len 12329: && __beg != __end 12329: 12329: && (__ctype.tolower(__name[__pos]) == __ctype.tolower(*__beg) 12329: || (__ctype.toupper(__name[__pos]) 12329: == __ctype.toupper(*__beg)))) 12329: ++__beg, (void)++__pos; 12329: 12329: if (__len == __pos) 12329: __member = __matches[0]; 12329: else 12329: __testvalid = false; 12329: } 12329: else 12329: __testvalid = false; 12329: if (!__testvalid) 12329: __err |= ios_base::failbit; 12329: 12329: return __beg; 12329: } 12329: 12329: template 12329: _InIter 12329: time_get<_CharT, _InIter>:: 12329: _M_extract_wday_or_month(iter_type __beg, iter_type __end, int& __member, 12329: const _CharT** __names, size_t __indexlen, 12329: ios_base& __io, ios_base::iostate& __err) const 12329: { 12329: typedef char_traits<_CharT> __traits_type; 12329: const locale& __loc = __io._M_getloc(); 12329: const ctype<_CharT>& __ctype = use_facet >(__loc); 12329: 12329: int* __matches = static_cast(__builtin_alloca(2 * sizeof(int) 12329: * __indexlen)); 12329: size_t __nmatches = 0; 12329: size_t* __matches_lengths = 0; 12329: size_t __pos = 0; 12329: 12329: if (__beg != __end) 12329: { 12329: const char_type __c = *__beg; 12329: for (size_t __i = 0; __i < 2 * __indexlen; ++__i) 12329: if (__c == __names[__i][0] 12329: || __c == __ctype.toupper(__names[__i][0])) 12329: __matches[__nmatches++] = __i; 12329: } 12329: 12329: if (__nmatches) 12329: { 12329: ++__beg; 12329: ++__pos; 12329: 12329: __matches_lengths 12329: = static_cast(__builtin_alloca(sizeof(size_t) 12329: * __nmatches)); 12329: for (size_t __i = 0; __i < __nmatches; ++__i) 12329: __matches_lengths[__i] 12329: = __traits_type::length(__names[__matches[__i]]); 12329: } 12329: 12329: for (; __beg != __end; ++__beg, (void)++__pos) 12329: { 12329: size_t __nskipped = 0; 12329: const char_type __c = *__beg; 12329: for (size_t __i = 0; __i < __nmatches;) 12329: { 12329: const char_type* __name = __names[__matches[__i]]; 12329: if (__pos >= __matches_lengths[__i]) 12329: ++__nskipped, ++__i; 12329: else if (!(__name[__pos] == __c)) 12329: { 12329: --__nmatches; 12329: __matches[__i] = __matches[__nmatches]; 12329: __matches_lengths[__i] = __matches_lengths[__nmatches]; 12329: } 12329: else 12329: ++__i; 12329: } 12329: if (__nskipped == __nmatches) 12329: break; 12329: } 12329: 12329: if ((__nmatches == 1 && __matches_lengths[0] == __pos) 12329: || (__nmatches == 2 && (__matches_lengths[0] == __pos 12329: || __matches_lengths[1] == __pos))) 12329: __member = (__matches[0] >= (int)__indexlen 12329: ? __matches[0] - (int)__indexlen : __matches[0]); 12329: else 12329: __err |= ios_base::failbit; 12329: 12329: return __beg; 12329: } 12329: 12329: template 12329: _InIter 12329: time_get<_CharT, _InIter>:: 12329: do_get_time(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm) const 12329: { 12329: const locale& __loc = __io._M_getloc(); 12329: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 12329: const char_type* __times[2]; 12329: __tp._M_time_formats(__times); 12329: __time_get_state __state = __time_get_state(); 12329: __beg = _M_extract_via_format(__beg, __end, __io, __err, 12329: __tm, __times[0], __state); 12329: __state._M_finalize_state(__tm); 12329: if (__beg == __end) 12329: __err |= ios_base::eofbit; 12329: return __beg; 12329: } 12329: 12329: template 12329: _InIter 12329: time_get<_CharT, _InIter>:: 12329: do_get_date(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm) const 12329: { 12329: const locale& __loc = __io._M_getloc(); 12329: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 12329: const char_type* __dates[2]; 12329: __tp._M_date_formats(__dates); 12329: __time_get_state __state = __time_get_state(); 12329: __beg = _M_extract_via_format(__beg, __end, __io, __err, 12329: __tm, __dates[0], __state); 12329: __state._M_finalize_state(__tm); 12329: if (__beg == __end) 12329: __err |= ios_base::eofbit; 12329: return __beg; 12329: } 12329: 12329: template 12329: _InIter 12329: time_get<_CharT, _InIter>:: 12329: do_get_weekday(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm) const 12329: { 12329: const locale& __loc = __io._M_getloc(); 12329: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 12329: const char_type* __days[14]; 12329: __tp._M_days_abbreviated(__days); 12329: __tp._M_days(__days + 7); 12329: int __tmpwday; 12329: ios_base::iostate __tmperr = ios_base::goodbit; 12329: 12329: __beg = _M_extract_wday_or_month(__beg, __end, __tmpwday, __days, 7, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: __tm->tm_wday = __tmpwday; 12329: else 12329: __err |= ios_base::failbit; 12329: 12329: if (__beg == __end) 12329: __err |= ios_base::eofbit; 12329: return __beg; 12329: } 12329: 12329: template 12329: _InIter 12329: time_get<_CharT, _InIter>:: 12329: do_get_monthname(iter_type __beg, iter_type __end, 12329: ios_base& __io, ios_base::iostate& __err, tm* __tm) const 12329: { 12329: const locale& __loc = __io._M_getloc(); 12329: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 12329: const char_type* __months[24]; 12329: __tp._M_months_abbreviated(__months); 12329: __tp._M_months(__months + 12); 12329: int __tmpmon; 12329: ios_base::iostate __tmperr = ios_base::goodbit; 12329: 12329: __beg = _M_extract_wday_or_month(__beg, __end, __tmpmon, __months, 12, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: __tm->tm_mon = __tmpmon; 12329: else 12329: __err |= ios_base::failbit; 12329: 12329: if (__beg == __end) 12329: __err |= ios_base::eofbit; 12329: return __beg; 12329: } 12329: 12329: template 12329: _InIter 12329: time_get<_CharT, _InIter>:: 12329: do_get_year(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm) const 12329: { 12329: int __tmpyear; 12329: ios_base::iostate __tmperr = ios_base::goodbit; 12329: const locale& __loc = __io._M_getloc(); 12329: const ctype<_CharT>& __ctype = use_facet >(__loc); 12329: 12329: __beg = _M_extract_num(__beg, __end, __tmpyear, 0, 99, 2, 12329: __io, __tmperr); 12329: if (!__tmperr) 12329: { 12329: char __c = 0; 12329: if (__beg != __end) 12329: __c = __ctype.narrow(*__beg, '*'); 12329: 12329: 12329: 12329: if (__c >= '0' && __c <= '9') 12329: { 12329: ++__beg; 12329: __tmpyear = __tmpyear * 10 + (__c - '0'); 12329: if (__beg != __end) 12329: { 12329: __c = __ctype.narrow(*__beg, '*'); 12329: if (__c >= '0' && __c <= '9') 12329: { 12329: ++__beg; 12329: __tmpyear = __tmpyear * 10 + (__c - '0'); 12329: } 12329: } 12329: __tmpyear -= 1900; 12329: } 12329: else if (__tmpyear < 69) 12329: __tmpyear += 100; 12329: __tm->tm_year = __tmpyear; 12329: } 12329: else 12329: __err |= ios_base::failbit; 12329: 12329: if (__beg == __end) 12329: __err |= ios_base::eofbit; 12329: return __beg; 12329: } 12329: 12329: 12329: template 12329: inline 12329: _InIter 12329: time_get<_CharT, _InIter>:: 12329: get(iter_type __s, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm, const char_type* __fmt, 12329: const char_type* __fmtend) const 12329: { 12329: const locale& __loc = __io._M_getloc(); 12329: ctype<_CharT> const& __ctype = use_facet >(__loc); 12329: __err = ios_base::goodbit; 12329: bool __use_state = false; 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wpmf-conversions" 12329: 12329: 12329: 12329: 12329: 12329: 12329: if ((void*)(this->*(&time_get::do_get)) == (void*)(&time_get::do_get)) 12329: __use_state = true; 12329: #pragma GCC diagnostic pop 12329: 12329: __time_get_state __state = __time_get_state(); 12329: while (__fmt != __fmtend && 12329: __err == ios_base::goodbit) 12329: { 12329: if (__s == __end) 12329: { 12329: __err = ios_base::eofbit | ios_base::failbit; 12329: break; 12329: } 12329: else if (__ctype.narrow(*__fmt, 0) == '%') 12329: { 12329: const char_type* __fmt_start = __fmt; 12329: char __format; 12329: char __mod = 0; 12329: if (++__fmt == __fmtend) 12329: { 12329: __err = ios_base::failbit; 12329: break; 12329: } 12329: const char __c = __ctype.narrow(*__fmt, 0); 12329: if (__c != 'E' && __c != 'O') 12329: __format = __c; 12329: else if (++__fmt != __fmtend) 12329: { 12329: __mod = __c; 12329: __format = __ctype.narrow(*__fmt, 0); 12329: } 12329: else 12329: { 12329: __err = ios_base::failbit; 12329: break; 12329: } 12329: if (__use_state) 12329: { 12329: char_type __new_fmt[4]; 12329: __new_fmt[0] = __fmt_start[0]; 12329: __new_fmt[1] = __fmt_start[1]; 12329: if (__mod) 12329: { 12329: __new_fmt[2] = __fmt_start[2]; 12329: __new_fmt[3] = char_type(); 12329: } 12329: else 12329: __new_fmt[2] = char_type(); 12329: __s = _M_extract_via_format(__s, __end, __io, __err, __tm, 12329: __new_fmt, __state); 12329: if (__s == __end) 12329: __err |= ios_base::eofbit; 12329: } 12329: else 12329: __s = this->do_get(__s, __end, __io, __err, __tm, __format, 12329: __mod); 12329: ++__fmt; 12329: } 12329: else if (__ctype.is(ctype_base::space, *__fmt)) 12329: { 12329: ++__fmt; 12329: while (__fmt != __fmtend && 12329: __ctype.is(ctype_base::space, *__fmt)) 12329: ++__fmt; 12329: 12329: while (__s != __end && 12329: __ctype.is(ctype_base::space, *__s)) 12329: ++__s; 12329: } 12329: 12329: else if (__ctype.tolower(*__s) == __ctype.tolower(*__fmt) || 12329: __ctype.toupper(*__s) == __ctype.toupper(*__fmt)) 12329: { 12329: ++__s; 12329: ++__fmt; 12329: } 12329: else 12329: { 12329: __err = ios_base::failbit; 12329: break; 12329: } 12329: } 12329: if (__use_state) 12329: __state._M_finalize_state(__tm); 12329: return __s; 12329: } 12329: 12329: template 12329: inline 12329: _InIter 12329: time_get<_CharT, _InIter>:: 12329: do_get(iter_type __beg, iter_type __end, ios_base& __io, 12329: ios_base::iostate& __err, tm* __tm, 12329: char __format, char __mod) const 12329: { 12329: const locale& __loc = __io._M_getloc(); 12329: ctype<_CharT> const& __ctype = use_facet >(__loc); 12329: __err = ios_base::goodbit; 12329: 12329: char_type __fmt[4]; 12329: __fmt[0] = __ctype.widen('%'); 12329: if (!__mod) 12329: { 12329: __fmt[1] = __format; 12329: __fmt[2] = char_type(); 12329: } 12329: else 12329: { 12329: __fmt[1] = __mod; 12329: __fmt[2] = __format; 12329: __fmt[3] = char_type(); 12329: } 12329: 12329: __time_get_state __state = __time_get_state(); 12329: __beg = _M_extract_via_format(__beg, __end, __io, __err, __tm, __fmt, 12329: __state); 12329: __state._M_finalize_state(__tm); 12329: if (__beg == __end) 12329: __err |= ios_base::eofbit; 12329: return __beg; 12329: } 12329: 12329: 12329: 12329: template 12329: _OutIter 12329: time_put<_CharT, _OutIter>:: 12329: put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 12329: const _CharT* __beg, const _CharT* __end) const 12329: { 12329: const locale& __loc = __io._M_getloc(); 12329: ctype<_CharT> const& __ctype = use_facet >(__loc); 12329: for (; __beg != __end; ++__beg) 12329: if (__ctype.narrow(*__beg, 0) != '%') 12329: { 12329: *__s = *__beg; 12329: ++__s; 12329: } 12329: else if (++__beg != __end) 12329: { 12329: char __format; 12329: char __mod = 0; 12329: const char __c = __ctype.narrow(*__beg, 0); 12329: if (__c != 'E' && __c != 'O') 12329: __format = __c; 12329: else if (++__beg != __end) 12329: { 12329: __mod = __c; 12329: __format = __ctype.narrow(*__beg, 0); 12329: } 12329: else 12329: break; 12329: __s = this->do_put(__s, __io, __fill, __tm, __format, __mod); 12329: } 12329: else 12329: break; 12329: return __s; 12329: } 12329: 12329: template 12329: _OutIter 12329: time_put<_CharT, _OutIter>:: 12329: do_put(iter_type __s, ios_base& __io, char_type, const tm* __tm, 12329: char __format, char __mod) const 12329: { 12329: const locale& __loc = __io._M_getloc(); 12329: ctype<_CharT> const& __ctype = use_facet >(__loc); 12329: __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc); 12329: 12329: 12329: 12329: const size_t __maxlen = 128; 12329: char_type __res[__maxlen]; 12329: 12329: 12329: 12329: 12329: 12329: 12329: char_type __fmt[4]; 12329: __fmt[0] = __ctype.widen('%'); 12329: if (!__mod) 12329: { 12329: __fmt[1] = __format; 12329: __fmt[2] = char_type(); 12329: } 12329: else 12329: { 12329: __fmt[1] = __mod; 12329: __fmt[2] = __format; 12329: __fmt[3] = char_type(); 12329: } 12329: 12329: __tp._M_put(__res, __maxlen, __fmt, __tm); 12329: 12329: 12329: return std::__write(__s, __res, char_traits::length(__res)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: extern template class moneypunct; 12329: extern template class moneypunct; 12329: extern template class moneypunct_byname; 12329: extern template class moneypunct_byname; 12329: extern template class __cxx11:: money_get; 12329: extern template class __cxx11:: money_put; 12329: extern template class __timepunct; 12329: extern template class time_put; 12329: extern template class time_put_byname; 12329: extern template class time_get; 12329: extern template class time_get_byname; 12329: extern template class messages; 12329: extern template class messages_byname; 12329: 12329: extern template 12329: const moneypunct& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const moneypunct& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const money_put& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const money_get& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const __timepunct& 12329: use_facet<__timepunct >(const locale&); 12329: 12329: extern template 12329: const time_put& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const time_get& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const messages& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet<__timepunct >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: 12329: extern template class moneypunct; 12329: extern template class moneypunct; 12329: extern template class moneypunct_byname; 12329: extern template class moneypunct_byname; 12329: extern template class __cxx11:: money_get; 12329: extern template class __cxx11:: money_put; 12329: extern template class __timepunct; 12329: extern template class time_put; 12329: extern template class time_put_byname; 12329: extern template class time_get; 12329: extern template class time_get_byname; 12329: extern template class messages; 12329: extern template class messages_byname; 12329: 12329: extern template 12329: const moneypunct& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const moneypunct& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const money_put& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const money_get& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const __timepunct& 12329: use_facet<__timepunct >(const locale&); 12329: 12329: extern template 12329: const time_put& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const time_get& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: const messages& 12329: use_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet<__timepunct >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: extern template 12329: bool 12329: has_facet >(const locale&); 12329: 12329: 12329: 12329: 12329: } 12329: # 2070 "/usr/include/c++/12/bits/locale_facets_nonio.h" 2 3 12329: # 42 "/usr/include/c++/12/locale" 2 3 12329: 12329: # 1 "/usr/include/c++/12/bits/locale_conv.h" 1 3 12329: # 42 "/usr/include/c++/12/bits/locale_conv.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: bool 12329: __do_str_codecvt(const _InChar* __first, const _InChar* __last, 12329: _OutStr& __outstr, const _Codecvt& __cvt, _State& __state, 12329: size_t& __count, _Fn __fn) 12329: { 12329: if (__first == __last) 12329: { 12329: __outstr.clear(); 12329: __count = 0; 12329: return true; 12329: } 12329: 12329: size_t __outchars = 0; 12329: auto __next = __first; 12329: const auto __maxlen = __cvt.max_length() + 1; 12329: 12329: codecvt_base::result __result; 12329: do 12329: { 12329: __outstr.resize(__outstr.size() + (__last - __next) * __maxlen); 12329: auto __outnext = &__outstr.front() + __outchars; 12329: auto const __outlast = &__outstr.back() + 1; 12329: __result = (__cvt.*__fn)(__state, __next, __last, __next, 12329: __outnext, __outlast, __outnext); 12329: __outchars = __outnext - &__outstr.front(); 12329: } 12329: while (__result == codecvt_base::partial && __next != __last 12329: && ptrdiff_t(__outstr.size() - __outchars) < __maxlen); 12329: 12329: if (__result == codecvt_base::error) 12329: { 12329: __count = __next - __first; 12329: return false; 12329: } 12329: 12329: 12329: 12329: if (is_same()) 12329: if (__result == codecvt_base::noconv) 12329: { 12329: __outstr.assign(__first, __last); 12329: __count = __last - __first; 12329: return true; 12329: } 12329: 12329: __outstr.resize(__outchars); 12329: __count = __next - __first; 12329: return true; 12329: } 12329: 12329: 12329: template 12329: inline bool 12329: __str_codecvt_in(const char* __first, const char* __last, 12329: basic_string<_CharT, _Traits, _Alloc>& __outstr, 12329: const codecvt<_CharT, char, _State>& __cvt, 12329: _State& __state, size_t& __count) 12329: { 12329: using _Codecvt = codecvt<_CharT, char, _State>; 12329: using _ConvFn 12329: = codecvt_base::result 12329: (_Codecvt::*)(_State&, const char*, const char*, const char*&, 12329: _CharT*, _CharT*, _CharT*&) const; 12329: _ConvFn __fn = &codecvt<_CharT, char, _State>::in; 12329: return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, 12329: __count, __fn); 12329: } 12329: 12329: 12329: template 12329: inline bool 12329: __str_codecvt_in(const char* __first, const char* __last, 12329: basic_string<_CharT, _Traits, _Alloc>& __outstr, 12329: const codecvt<_CharT, char, _State>& __cvt) 12329: { 12329: _State __state = {}; 12329: size_t __n; 12329: return __str_codecvt_in(__first, __last, __outstr, __cvt, __state, __n); 12329: } 12329: 12329: 12329: template 12329: inline bool 12329: __str_codecvt_in_all(const char* __first, const char* __last, 12329: basic_string<_CharT, _Traits, _Alloc>& __outstr, 12329: const codecvt<_CharT, char, _State>& __cvt) 12329: { 12329: _State __state = {}; 12329: size_t __n; 12329: return __str_codecvt_in(__first, __last, __outstr, __cvt, __state, __n) 12329: && (__n == size_t(__last - __first)); 12329: } 12329: 12329: 12329: template 12329: inline bool 12329: __str_codecvt_out(const _CharT* __first, const _CharT* __last, 12329: basic_string& __outstr, 12329: const codecvt<_CharT, char, _State>& __cvt, 12329: _State& __state, size_t& __count) 12329: { 12329: using _Codecvt = codecvt<_CharT, char, _State>; 12329: using _ConvFn 12329: = codecvt_base::result 12329: (_Codecvt::*)(_State&, const _CharT*, const _CharT*, const _CharT*&, 12329: char*, char*, char*&) const; 12329: _ConvFn __fn = &codecvt<_CharT, char, _State>::out; 12329: return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, 12329: __count, __fn); 12329: } 12329: 12329: 12329: template 12329: inline bool 12329: __str_codecvt_out(const _CharT* __first, const _CharT* __last, 12329: basic_string& __outstr, 12329: const codecvt<_CharT, char, _State>& __cvt) 12329: { 12329: _State __state = {}; 12329: size_t __n; 12329: return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n); 12329: } 12329: 12329: 12329: template 12329: inline bool 12329: __str_codecvt_out_all(const _CharT* __first, const _CharT* __last, 12329: basic_string& __outstr, 12329: const codecvt<_CharT, char, _State>& __cvt) 12329: { 12329: _State __state = {}; 12329: size_t __n; 12329: return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n) 12329: && (__n == size_t(__last - __first)); 12329: } 12329: # 223 "/usr/include/c++/12/bits/locale_conv.h" 3 12329: namespace __detail 12329: { 12329: template 12329: struct _Scoped_ptr 12329: { 12329: __attribute__((__nonnull__(2))) 12329: explicit 12329: _Scoped_ptr(_Tp* __ptr) noexcept 12329: : _M_ptr(__ptr) 12329: { } 12329: 12329: _Scoped_ptr(_Tp* __ptr, const char* __msg) 12329: : _M_ptr(__ptr) 12329: { 12329: if (!__ptr) 12329: __throw_logic_error(__msg); 12329: } 12329: 12329: ~_Scoped_ptr() { delete _M_ptr; } 12329: 12329: _Scoped_ptr(const _Scoped_ptr&) = delete; 12329: _Scoped_ptr& operator=(const _Scoped_ptr&) = delete; 12329: 12329: __attribute__((__returns_nonnull__)) 12329: _Tp* operator->() const noexcept { return _M_ptr; } 12329: 12329: _Tp& operator*() const noexcept { return *_M_ptr; } 12329: 12329: private: 12329: _Tp* _M_ptr; 12329: }; 12329: } 12329: 12329: namespace __cxx11 { 12329: 12329: 12329: template, 12329: typename _Byte_alloc = allocator> 12329: class wstring_convert 12329: { 12329: public: 12329: typedef basic_string, _Byte_alloc> byte_string; 12329: typedef basic_string<_Elem, char_traits<_Elem>, _Wide_alloc> wide_string; 12329: typedef typename _Codecvt::state_type state_type; 12329: typedef typename wide_string::traits_type::int_type int_type; 12329: 12329: 12329: wstring_convert() : _M_cvt(new _Codecvt()) { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: wstring_convert(_Codecvt* __pcvt) : _M_cvt(__pcvt, "wstring_convert") 12329: { } 12329: # 291 "/usr/include/c++/12/bits/locale_conv.h" 3 12329: wstring_convert(_Codecvt* __pcvt, state_type __state) 12329: : _M_cvt(__pcvt, "wstring_convert"), 12329: _M_state(__state), _M_with_cvtstate(true) 12329: { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: wstring_convert(const byte_string& __byte_err, 12329: const wide_string& __wide_err = wide_string()) 12329: : _M_cvt(new _Codecvt), 12329: _M_byte_err_string(__byte_err), _M_wide_err_string(__wide_err), 12329: _M_with_strings(true) 12329: { } 12329: 12329: ~wstring_convert() = default; 12329: 12329: 12329: 12329: wstring_convert(const wstring_convert&) = delete; 12329: wstring_convert& operator=(const wstring_convert&) = delete; 12329: 12329: 12329: wide_string 12329: from_bytes(char __byte) 12329: { 12329: char __bytes[2] = { __byte }; 12329: return from_bytes(__bytes, __bytes+1); 12329: } 12329: 12329: wide_string 12329: from_bytes(const char* __ptr) 12329: { return from_bytes(__ptr, __ptr+char_traits::length(__ptr)); } 12329: 12329: wide_string 12329: from_bytes(const byte_string& __str) 12329: { 12329: auto __ptr = __str.data(); 12329: return from_bytes(__ptr, __ptr + __str.size()); 12329: } 12329: 12329: wide_string 12329: from_bytes(const char* __first, const char* __last) 12329: { 12329: if (!_M_with_cvtstate) 12329: _M_state = state_type(); 12329: wide_string __out{ _M_wide_err_string.get_allocator() }; 12329: if (__str_codecvt_in(__first, __last, __out, *_M_cvt, _M_state, 12329: _M_count)) 12329: return __out; 12329: if (_M_with_strings) 12329: return _M_wide_err_string; 12329: __throw_range_error("wstring_convert::from_bytes"); 12329: } 12329: 12329: 12329: 12329: byte_string 12329: to_bytes(_Elem __wchar) 12329: { 12329: _Elem __wchars[2] = { __wchar }; 12329: return to_bytes(__wchars, __wchars+1); 12329: } 12329: 12329: byte_string 12329: to_bytes(const _Elem* __ptr) 12329: { 12329: return to_bytes(__ptr, __ptr+wide_string::traits_type::length(__ptr)); 12329: } 12329: 12329: byte_string 12329: to_bytes(const wide_string& __wstr) 12329: { 12329: auto __ptr = __wstr.data(); 12329: return to_bytes(__ptr, __ptr + __wstr.size()); 12329: } 12329: 12329: byte_string 12329: to_bytes(const _Elem* __first, const _Elem* __last) 12329: { 12329: if (!_M_with_cvtstate) 12329: _M_state = state_type(); 12329: byte_string __out{ _M_byte_err_string.get_allocator() }; 12329: if (__str_codecvt_out(__first, __last, __out, *_M_cvt, _M_state, 12329: _M_count)) 12329: return __out; 12329: if (_M_with_strings) 12329: return _M_byte_err_string; 12329: __throw_range_error("wstring_convert::to_bytes"); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: size_t converted() const noexcept { return _M_count; } 12329: 12329: 12329: state_type state() const { return _M_state; } 12329: 12329: private: 12329: __detail::_Scoped_ptr<_Codecvt> _M_cvt; 12329: byte_string _M_byte_err_string; 12329: wide_string _M_wide_err_string; 12329: state_type _M_state = state_type(); 12329: size_t _M_count = 0; 12329: bool _M_with_cvtstate = false; 12329: bool _M_with_strings = false; 12329: }; 12329: 12329: } 12329: 12329: 12329: template> 12329: class wbuffer_convert : public basic_streambuf<_Elem, _Tr> 12329: { 12329: typedef basic_streambuf<_Elem, _Tr> _Wide_streambuf; 12329: 12329: public: 12329: typedef typename _Codecvt::state_type state_type; 12329: 12329: 12329: wbuffer_convert() : wbuffer_convert(nullptr) { } 12329: # 427 "/usr/include/c++/12/bits/locale_conv.h" 3 12329: explicit 12329: wbuffer_convert(streambuf* __bytebuf, _Codecvt* __pcvt = new _Codecvt, 12329: state_type __state = state_type()) 12329: : _M_buf(__bytebuf), _M_cvt(__pcvt, "wbuffer_convert"), 12329: _M_state(__state), _M_always_noconv(_M_cvt->always_noconv()) 12329: { 12329: if (_M_buf) 12329: { 12329: this->setp(_M_put_area, _M_put_area + _S_buffer_length); 12329: this->setg(_M_get_area + _S_putback_length, 12329: _M_get_area + _S_putback_length, 12329: _M_get_area + _S_putback_length); 12329: } 12329: } 12329: 12329: ~wbuffer_convert() = default; 12329: 12329: 12329: 12329: wbuffer_convert(const wbuffer_convert&) = delete; 12329: wbuffer_convert& operator=(const wbuffer_convert&) = delete; 12329: 12329: streambuf* rdbuf() const noexcept { return _M_buf; } 12329: 12329: streambuf* 12329: rdbuf(streambuf *__bytebuf) noexcept 12329: { 12329: auto __prev = _M_buf; 12329: _M_buf = __bytebuf; 12329: return __prev; 12329: } 12329: 12329: 12329: state_type state() const noexcept { return _M_state; } 12329: 12329: protected: 12329: int 12329: sync() 12329: { return _M_buf && _M_conv_put() && !_M_buf->pubsync() ? 0 : -1; } 12329: 12329: typename _Wide_streambuf::int_type 12329: overflow(typename _Wide_streambuf::int_type __out) 12329: { 12329: if (!_M_buf || !_M_conv_put()) 12329: return _Tr::eof(); 12329: else if (!_Tr::eq_int_type(__out, _Tr::eof())) 12329: return this->sputc(__out); 12329: return _Tr::not_eof(__out); 12329: } 12329: 12329: typename _Wide_streambuf::int_type 12329: underflow() 12329: { 12329: if (!_M_buf) 12329: return _Tr::eof(); 12329: 12329: if (this->gptr() < this->egptr() || (_M_buf && _M_conv_get())) 12329: return _Tr::to_int_type(*this->gptr()); 12329: else 12329: return _Tr::eof(); 12329: } 12329: 12329: streamsize 12329: xsputn(const typename _Wide_streambuf::char_type* __s, streamsize __n) 12329: { 12329: if (!_M_buf || __n == 0) 12329: return 0; 12329: streamsize __done = 0; 12329: do 12329: { 12329: auto __nn = std::min(this->epptr() - this->pptr(), 12329: __n - __done); 12329: _Tr::copy(this->pptr(), __s + __done, __nn); 12329: this->pbump(__nn); 12329: __done += __nn; 12329: } while (__done < __n && _M_conv_put()); 12329: return __done; 12329: } 12329: 12329: private: 12329: 12329: bool 12329: _M_conv_get() 12329: { 12329: const streamsize __pb1 = this->gptr() - this->eback(); 12329: const streamsize __pb2 = _S_putback_length; 12329: const streamsize __npb = std::min(__pb1, __pb2); 12329: 12329: _Tr::move(_M_get_area + _S_putback_length - __npb, 12329: this->gptr() - __npb, __npb); 12329: 12329: streamsize __nbytes = sizeof(_M_get_buf) - _M_unconv; 12329: __nbytes = std::min(__nbytes, _M_buf->in_avail()); 12329: if (__nbytes < 1) 12329: __nbytes = 1; 12329: __nbytes = _M_buf->sgetn(_M_get_buf + _M_unconv, __nbytes); 12329: if (__nbytes < 1) 12329: return false; 12329: __nbytes += _M_unconv; 12329: 12329: 12329: 12329: _Elem* __outbuf = _M_get_area + _S_putback_length; 12329: _Elem* __outnext = __outbuf; 12329: const char* __bnext = _M_get_buf; 12329: 12329: codecvt_base::result __result; 12329: if (_M_always_noconv) 12329: __result = codecvt_base::noconv; 12329: else 12329: { 12329: _Elem* __outend = _M_get_area + _S_buffer_length; 12329: 12329: __result = _M_cvt->in(_M_state, 12329: __bnext, __bnext + __nbytes, __bnext, 12329: __outbuf, __outend, __outnext); 12329: } 12329: 12329: if (__result == codecvt_base::noconv) 12329: { 12329: 12329: auto __get_buf = reinterpret_cast(_M_get_buf); 12329: _Tr::copy(__outbuf, __get_buf, __nbytes); 12329: _M_unconv = 0; 12329: return true; 12329: } 12329: 12329: if ((_M_unconv = _M_get_buf + __nbytes - __bnext)) 12329: char_traits::move(_M_get_buf, __bnext, _M_unconv); 12329: 12329: this->setg(__outbuf, __outbuf, __outnext); 12329: 12329: return __result != codecvt_base::error; 12329: } 12329: 12329: 12329: bool 12329: _M_put(...) 12329: { return false; } 12329: 12329: bool 12329: _M_put(const char* __p, streamsize __n) 12329: { 12329: if (_M_buf->sputn(__p, __n) < __n) 12329: return false; 12329: return true; 12329: } 12329: 12329: 12329: bool 12329: _M_conv_put() 12329: { 12329: _Elem* const __first = this->pbase(); 12329: const _Elem* const __last = this->pptr(); 12329: const streamsize __pending = __last - __first; 12329: 12329: if (_M_always_noconv) 12329: return _M_put(__first, __pending); 12329: 12329: char __outbuf[2 * _S_buffer_length]; 12329: 12329: const _Elem* __next = __first; 12329: const _Elem* __start; 12329: do 12329: { 12329: __start = __next; 12329: char* __outnext = __outbuf; 12329: char* const __outlast = __outbuf + sizeof(__outbuf); 12329: auto __result = _M_cvt->out(_M_state, __next, __last, __next, 12329: __outnext, __outlast, __outnext); 12329: if (__result == codecvt_base::error) 12329: return false; 12329: else if (__result == codecvt_base::noconv) 12329: return _M_put(__next, __pending); 12329: 12329: if (!_M_put(__outbuf, __outnext - __outbuf)) 12329: return false; 12329: } 12329: while (__next != __last && __next != __start); 12329: 12329: if (__next != __last) 12329: _Tr::move(__first, __next, __last - __next); 12329: 12329: this->pbump(__first - __next); 12329: return __next != __first; 12329: } 12329: 12329: streambuf* _M_buf; 12329: __detail::_Scoped_ptr<_Codecvt> _M_cvt; 12329: state_type _M_state; 12329: 12329: static const streamsize _S_buffer_length = 32; 12329: static const streamsize _S_putback_length = 3; 12329: _Elem _M_put_area[_S_buffer_length]; 12329: _Elem _M_get_area[_S_buffer_length]; 12329: streamsize _M_unconv = 0; 12329: char _M_get_buf[_S_buffer_length-_S_putback_length]; 12329: bool _M_always_noconv; 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 44 "/usr/include/c++/12/locale" 2 3 12329: # 44 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 2 3 4 12329: # 58 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 3 4 12329: # 1 "/usr/include/c++/12/sstream" 1 3 4 12329: # 36 "/usr/include/c++/12/sstream" 3 4 12329: 12329: # 37 "/usr/include/c++/12/sstream" 3 12329: 12329: # 1 "/usr/include/c++/12/istream" 1 3 12329: # 36 "/usr/include/c++/12/istream" 3 12329: 12329: # 37 "/usr/include/c++/12/istream" 3 12329: 12329: 12329: # 1 "/usr/include/c++/12/ostream" 1 3 12329: # 36 "/usr/include/c++/12/ostream" 3 12329: 12329: # 37 "/usr/include/c++/12/ostream" 3 12329: 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 57 "/usr/include/c++/12/ostream" 3 12329: template 12329: class basic_ostream : virtual public basic_ios<_CharT, _Traits> 12329: { 12329: public: 12329: 12329: typedef _CharT char_type; 12329: typedef typename _Traits::int_type int_type; 12329: typedef typename _Traits::pos_type pos_type; 12329: typedef typename _Traits::off_type off_type; 12329: typedef _Traits traits_type; 12329: 12329: 12329: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 12329: typedef basic_ios<_CharT, _Traits> __ios_type; 12329: typedef basic_ostream<_CharT, _Traits> __ostream_type; 12329: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 12329: __num_put_type; 12329: typedef ctype<_CharT> __ctype_type; 12329: # 83 "/usr/include/c++/12/ostream" 3 12329: explicit 12329: basic_ostream(__streambuf_type* __sb) 12329: { this->init(__sb); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: virtual 12329: ~basic_ostream() { } 12329: 12329: 12329: class sentry; 12329: friend class sentry; 12329: # 107 "/usr/include/c++/12/ostream" 3 12329: __ostream_type& 12329: operator<<(__ostream_type& (*__pf)(__ostream_type&)) 12329: { 12329: 12329: 12329: 12329: return __pf(*this); 12329: } 12329: 12329: __ostream_type& 12329: operator<<(__ios_type& (*__pf)(__ios_type&)) 12329: { 12329: 12329: 12329: 12329: __pf(*this); 12329: return *this; 12329: } 12329: 12329: __ostream_type& 12329: operator<<(ios_base& (*__pf) (ios_base&)) 12329: { 12329: 12329: 12329: 12329: __pf(*this); 12329: return *this; 12329: } 12329: # 165 "/usr/include/c++/12/ostream" 3 12329: __ostream_type& 12329: operator<<(long __n) 12329: { return _M_insert(__n); } 12329: 12329: __ostream_type& 12329: operator<<(unsigned long __n) 12329: { return _M_insert(__n); } 12329: 12329: __ostream_type& 12329: operator<<(bool __n) 12329: { return _M_insert(__n); } 12329: 12329: __ostream_type& 12329: operator<<(short __n); 12329: 12329: __ostream_type& 12329: operator<<(unsigned short __n) 12329: { 12329: 12329: 12329: return _M_insert(static_cast(__n)); 12329: } 12329: 12329: __ostream_type& 12329: operator<<(int __n); 12329: 12329: __ostream_type& 12329: operator<<(unsigned int __n) 12329: { 12329: 12329: 12329: return _M_insert(static_cast(__n)); 12329: } 12329: 12329: 12329: __ostream_type& 12329: operator<<(long long __n) 12329: { return _M_insert(__n); } 12329: 12329: __ostream_type& 12329: operator<<(unsigned long long __n) 12329: { return _M_insert(__n); } 12329: # 219 "/usr/include/c++/12/ostream" 3 12329: __ostream_type& 12329: operator<<(double __f) 12329: { return _M_insert(__f); } 12329: 12329: __ostream_type& 12329: operator<<(float __f) 12329: { 12329: 12329: 12329: return _M_insert(static_cast(__f)); 12329: } 12329: 12329: __ostream_type& 12329: operator<<(long double __f) 12329: { return _M_insert(__f); } 12329: # 244 "/usr/include/c++/12/ostream" 3 12329: __ostream_type& 12329: operator<<(const void* __p) 12329: { return _M_insert(__p); } 12329: # 282 "/usr/include/c++/12/ostream" 3 12329: __ostream_type& 12329: operator<<(__streambuf_type* __sb); 12329: # 315 "/usr/include/c++/12/ostream" 3 12329: __ostream_type& 12329: put(char_type __c); 12329: # 334 "/usr/include/c++/12/ostream" 3 12329: __ostream_type& 12329: write(const char_type* __s, streamsize __n); 12329: # 347 "/usr/include/c++/12/ostream" 3 12329: __ostream_type& 12329: flush(); 12329: # 357 "/usr/include/c++/12/ostream" 3 12329: pos_type 12329: tellp(); 12329: # 368 "/usr/include/c++/12/ostream" 3 12329: __ostream_type& 12329: seekp(pos_type); 12329: # 380 "/usr/include/c++/12/ostream" 3 12329: __ostream_type& 12329: seekp(off_type, ios_base::seekdir); 12329: 12329: protected: 12329: basic_ostream() 12329: { this->init(0); } 12329: 12329: 12329: 12329: basic_ostream(basic_iostream<_CharT, _Traits>&) { } 12329: 12329: basic_ostream(const basic_ostream&) = delete; 12329: 12329: basic_ostream(basic_ostream&& __rhs) 12329: : __ios_type() 12329: { __ios_type::move(__rhs); } 12329: 12329: 12329: 12329: basic_ostream& operator=(const basic_ostream&) = delete; 12329: 12329: basic_ostream& 12329: operator=(basic_ostream&& __rhs) 12329: { 12329: swap(__rhs); 12329: return *this; 12329: } 12329: 12329: void 12329: swap(basic_ostream& __rhs) 12329: { __ios_type::swap(__rhs); } 12329: 12329: 12329: template 12329: __ostream_type& 12329: _M_insert(_ValueT __v); 12329: 12329: private: 12329: 12329: void 12329: _M_write(const char_type* __s, streamsize __n) 12329: { std::__ostream_insert(*this, __s, __n); } 12329: 12329: }; 12329: # 432 "/usr/include/c++/12/ostream" 3 12329: template 12329: class basic_ostream<_CharT, _Traits>::sentry 12329: { 12329: 12329: bool _M_ok; 12329: basic_ostream<_CharT, _Traits>& _M_os; 12329: 12329: public: 12329: # 451 "/usr/include/c++/12/ostream" 3 12329: explicit 12329: sentry(basic_ostream<_CharT, _Traits>& __os); 12329: 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ~sentry() 12329: { 12329: 12329: if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) 12329: { 12329: 12329: if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) 12329: _M_os.setstate(ios_base::badbit); 12329: } 12329: } 12329: #pragma GCC diagnostic pop 12329: # 483 "/usr/include/c++/12/ostream" 3 12329: explicit 12329: 12329: operator bool() const 12329: { return _M_ok; } 12329: }; 12329: # 505 "/usr/include/c++/12/ostream" 3 12329: template 12329: inline basic_ostream<_CharT, _Traits>& 12329: operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) 12329: { 12329: if (__out.width() != 0) 12329: return __ostream_insert(__out, &__c, 1); 12329: __out.put(__c); 12329: return __out; 12329: } 12329: 12329: template 12329: inline basic_ostream<_CharT, _Traits>& 12329: operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) 12329: { return (__out << __out.widen(__c)); } 12329: 12329: 12329: template 12329: inline basic_ostream& 12329: operator<<(basic_ostream& __out, char __c) 12329: { 12329: if (__out.width() != 0) 12329: return __ostream_insert(__out, &__c, 1); 12329: __out.put(__c); 12329: return __out; 12329: } 12329: 12329: 12329: template 12329: inline basic_ostream& 12329: operator<<(basic_ostream& __out, signed char __c) 12329: { return (__out << static_cast(__c)); } 12329: 12329: template 12329: inline basic_ostream& 12329: operator<<(basic_ostream& __out, unsigned char __c) 12329: { return (__out << static_cast(__c)); } 12329: # 596 "/usr/include/c++/12/ostream" 3 12329: template 12329: inline basic_ostream<_CharT, _Traits>& 12329: operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) 12329: { 12329: if (!__s) 12329: __out.setstate(ios_base::badbit); 12329: else 12329: __ostream_insert(__out, __s, 12329: static_cast(_Traits::length(__s))); 12329: return __out; 12329: } 12329: 12329: template 12329: basic_ostream<_CharT, _Traits> & 12329: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); 12329: 12329: 12329: template 12329: inline basic_ostream& 12329: operator<<(basic_ostream& __out, const char* __s) 12329: { 12329: if (!__s) 12329: __out.setstate(ios_base::badbit); 12329: else 12329: __ostream_insert(__out, __s, 12329: static_cast(_Traits::length(__s))); 12329: return __out; 12329: } 12329: 12329: 12329: template 12329: inline basic_ostream& 12329: operator<<(basic_ostream& __out, const signed char* __s) 12329: { return (__out << reinterpret_cast(__s)); } 12329: 12329: template 12329: inline basic_ostream & 12329: operator<<(basic_ostream& __out, const unsigned char* __s) 12329: { return (__out << reinterpret_cast(__s)); } 12329: # 686 "/usr/include/c++/12/ostream" 3 12329: template 12329: inline basic_ostream<_CharT, _Traits>& 12329: endl(basic_ostream<_CharT, _Traits>& __os) 12329: { return flush(__os.put(__os.widen('\n'))); } 12329: # 698 "/usr/include/c++/12/ostream" 3 12329: template 12329: inline basic_ostream<_CharT, _Traits>& 12329: ends(basic_ostream<_CharT, _Traits>& __os) 12329: { return __os.put(_CharT()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline basic_ostream<_CharT, _Traits>& 12329: flush(basic_ostream<_CharT, _Traits>& __os) 12329: { return __os.flush(); } 12329: # 730 "/usr/include/c++/12/ostream" 3 12329: template 12329: using _Require_derived_from_ios_base 12329: = _Require, __not_>, 12329: is_convertible::type, ios_base*>>; 12329: 12329: template, 12329: typename 12329: = decltype(std::declval<_Os&>() << std::declval())> 12329: using __rvalue_stream_insertion_t = _Os&&; 12329: # 752 "/usr/include/c++/12/ostream" 3 12329: template 12329: inline __rvalue_stream_insertion_t<_Ostream, _Tp> 12329: operator<<(_Ostream&& __os, const _Tp& __x) 12329: { 12329: __os << __x; 12329: return std::move(__os); 12329: } 12329: # 830 "/usr/include/c++/12/ostream" 3 12329: 12329: } 12329: 12329: # 1 "/usr/include/c++/12/bits/ostream.tcc" 1 3 12329: # 37 "/usr/include/c++/12/bits/ostream.tcc" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/ostream.tcc" 3 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>::sentry:: 12329: sentry(basic_ostream<_CharT, _Traits>& __os) 12329: : _M_ok(false), _M_os(__os) 12329: { 12329: 12329: if (__os.tie() && __os.good()) 12329: __os.tie()->flush(); 12329: 12329: if (__os.good()) 12329: _M_ok = true; 12329: else if (__os.bad()) 12329: __os.setstate(ios_base::failbit); 12329: } 12329: 12329: template 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: basic_ostream<_CharT, _Traits>:: 12329: _M_insert(_ValueT __v) 12329: { 12329: sentry __cerb(*this); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: const __num_put_type& __np = __check_facet(this->_M_num_put); 12329: if (__np.put(*this, *this, this->fill(), __v).failed()) 12329: __err |= ios_base::badbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: basic_ostream<_CharT, _Traits>:: 12329: operator<<(short __n) 12329: { 12329: 12329: 12329: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 12329: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 12329: return _M_insert(static_cast(static_cast(__n))); 12329: else 12329: return _M_insert(static_cast(__n)); 12329: } 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: basic_ostream<_CharT, _Traits>:: 12329: operator<<(int __n) 12329: { 12329: 12329: 12329: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 12329: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 12329: return _M_insert(static_cast(static_cast(__n))); 12329: else 12329: return _M_insert(static_cast(__n)); 12329: } 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: basic_ostream<_CharT, _Traits>:: 12329: operator<<(__streambuf_type* __sbin) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: sentry __cerb(*this); 12329: if (__cerb && __sbin) 12329: { 12329: try 12329: { 12329: if (!__copy_streambufs(__sbin, this->rdbuf())) 12329: __err |= ios_base::failbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::failbit); } 12329: } 12329: else if (!__sbin) 12329: __err |= ios_base::badbit; 12329: if (__err) 12329: this->setstate(__err); 12329: return *this; 12329: } 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: basic_ostream<_CharT, _Traits>:: 12329: put(char_type __c) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: sentry __cerb(*this); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: const int_type __put = this->rdbuf()->sputc(__c); 12329: if (traits_type::eq_int_type(__put, traits_type::eof())) 12329: __err |= ios_base::badbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: basic_ostream<_CharT, _Traits>:: 12329: write(const _CharT* __s, streamsize __n) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: sentry __cerb(*this); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: if (this->rdbuf()->sputn(__s, __n) != __n) 12329: __err = ios_base::badbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(ios_base::badbit); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: basic_ostream<_CharT, _Traits>:: 12329: flush() 12329: { 12329: 12329: 12329: 12329: 12329: 12329: if (__streambuf_type* __buf = this->rdbuf()) 12329: { 12329: sentry __cerb(*this); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: if (this->rdbuf()->pubsync() == -1) 12329: __err |= ios_base::badbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: typename basic_ostream<_CharT, _Traits>::pos_type 12329: basic_ostream<_CharT, _Traits>:: 12329: tellp() 12329: { 12329: sentry __cerb(*this); 12329: pos_type __ret = pos_type(-1); 12329: if (!this->fail()) 12329: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); 12329: return __ret; 12329: } 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: basic_ostream<_CharT, _Traits>:: 12329: seekp(pos_type __pos) 12329: { 12329: sentry __cerb(*this); 12329: if (!this->fail()) 12329: { 12329: 12329: 12329: const pos_type __p = this->rdbuf()->pubseekpos(__pos, ios_base::out); 12329: 12329: 12329: if (__p == pos_type(off_type(-1))) 12329: this->setstate(ios_base::failbit); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: basic_ostream<_CharT, _Traits>:: 12329: seekp(off_type __off, ios_base::seekdir __dir) 12329: { 12329: sentry __cerb(*this); 12329: if (!this->fail()) 12329: { 12329: 12329: 12329: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 12329: ios_base::out); 12329: 12329: 12329: if (__p == pos_type(off_type(-1))) 12329: this->setstate(ios_base::failbit); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) 12329: { 12329: if (!__s) 12329: __out.setstate(ios_base::badbit); 12329: else 12329: { 12329: 12329: 12329: const size_t __clen = char_traits::length(__s); 12329: try 12329: { 12329: struct __ptr_guard 12329: { 12329: _CharT *__p; 12329: __ptr_guard (_CharT *__ip): __p(__ip) { } 12329: ~__ptr_guard() { delete[] __p; } 12329: _CharT* __get() { return __p; } 12329: } __pg (new _CharT[__clen]); 12329: 12329: _CharT *__ws = __pg.__get(); 12329: for (size_t __i = 0; __i < __clen; ++__i) 12329: __ws[__i] = __out.widen(__s[__i]); 12329: __ostream_insert(__out, __ws, __clen); 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: __out._M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { __out._M_setstate(ios_base::badbit); } 12329: } 12329: return __out; 12329: } 12329: 12329: 12329: 12329: 12329: extern template class basic_ostream; 12329: extern template ostream& endl(ostream&); 12329: extern template ostream& ends(ostream&); 12329: extern template ostream& flush(ostream&); 12329: extern template ostream& operator<<(ostream&, char); 12329: extern template ostream& operator<<(ostream&, unsigned char); 12329: extern template ostream& operator<<(ostream&, signed char); 12329: extern template ostream& operator<<(ostream&, const char*); 12329: extern template ostream& operator<<(ostream&, const unsigned char*); 12329: extern template ostream& operator<<(ostream&, const signed char*); 12329: 12329: extern template ostream& ostream::_M_insert(long); 12329: extern template ostream& ostream::_M_insert(unsigned long); 12329: extern template ostream& ostream::_M_insert(bool); 12329: 12329: extern template ostream& ostream::_M_insert(long long); 12329: extern template ostream& ostream::_M_insert(unsigned long long); 12329: 12329: extern template ostream& ostream::_M_insert(double); 12329: extern template ostream& ostream::_M_insert(long double); 12329: extern template ostream& ostream::_M_insert(const void*); 12329: 12329: 12329: extern template class basic_ostream; 12329: extern template wostream& endl(wostream&); 12329: extern template wostream& ends(wostream&); 12329: extern template wostream& flush(wostream&); 12329: extern template wostream& operator<<(wostream&, wchar_t); 12329: extern template wostream& operator<<(wostream&, char); 12329: extern template wostream& operator<<(wostream&, const wchar_t*); 12329: extern template wostream& operator<<(wostream&, const char*); 12329: 12329: extern template wostream& wostream::_M_insert(long); 12329: extern template wostream& wostream::_M_insert(unsigned long); 12329: extern template wostream& wostream::_M_insert(bool); 12329: 12329: extern template wostream& wostream::_M_insert(long long); 12329: extern template wostream& wostream::_M_insert(unsigned long long); 12329: 12329: extern template wostream& wostream::_M_insert(double); 12329: extern template wostream& wostream::_M_insert(long double); 12329: extern template wostream& wostream::_M_insert(const void*); 12329: 12329: 12329: 12329: 12329: } 12329: # 834 "/usr/include/c++/12/ostream" 2 3 12329: # 40 "/usr/include/c++/12/istream" 2 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 57 "/usr/include/c++/12/istream" 3 12329: template 12329: class basic_istream : virtual public basic_ios<_CharT, _Traits> 12329: { 12329: public: 12329: 12329: typedef _CharT char_type; 12329: typedef typename _Traits::int_type int_type; 12329: typedef typename _Traits::pos_type pos_type; 12329: typedef typename _Traits::off_type off_type; 12329: typedef _Traits traits_type; 12329: 12329: 12329: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 12329: typedef basic_ios<_CharT, _Traits> __ios_type; 12329: typedef basic_istream<_CharT, _Traits> __istream_type; 12329: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 12329: __num_get_type; 12329: typedef ctype<_CharT> __ctype_type; 12329: 12329: protected: 12329: 12329: 12329: 12329: 12329: 12329: streamsize _M_gcount; 12329: 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: basic_istream(__streambuf_type* __sb) 12329: : _M_gcount(streamsize(0)) 12329: { this->init(__sb); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: virtual 12329: ~basic_istream() 12329: { _M_gcount = streamsize(0); } 12329: 12329: 12329: class sentry; 12329: friend class sentry; 12329: # 119 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: operator>>(__istream_type& (*__pf)(__istream_type&)) 12329: { return __pf(*this); } 12329: 12329: __istream_type& 12329: operator>>(__ios_type& (*__pf)(__ios_type&)) 12329: { 12329: __pf(*this); 12329: return *this; 12329: } 12329: 12329: __istream_type& 12329: operator>>(ios_base& (*__pf)(ios_base&)) 12329: { 12329: __pf(*this); 12329: return *this; 12329: } 12329: # 167 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: operator>>(bool& __n) 12329: { return _M_extract(__n); } 12329: 12329: __istream_type& 12329: operator>>(short& __n); 12329: 12329: __istream_type& 12329: operator>>(unsigned short& __n) 12329: { return _M_extract(__n); } 12329: 12329: __istream_type& 12329: operator>>(int& __n); 12329: 12329: __istream_type& 12329: operator>>(unsigned int& __n) 12329: { return _M_extract(__n); } 12329: 12329: __istream_type& 12329: operator>>(long& __n) 12329: { return _M_extract(__n); } 12329: 12329: __istream_type& 12329: operator>>(unsigned long& __n) 12329: { return _M_extract(__n); } 12329: 12329: 12329: __istream_type& 12329: operator>>(long long& __n) 12329: { return _M_extract(__n); } 12329: 12329: __istream_type& 12329: operator>>(unsigned long long& __n) 12329: { return _M_extract(__n); } 12329: # 213 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: operator>>(float& __f) 12329: { return _M_extract(__f); } 12329: 12329: __istream_type& 12329: operator>>(double& __f) 12329: { return _M_extract(__f); } 12329: 12329: __istream_type& 12329: operator>>(long double& __f) 12329: { return _M_extract(__f); } 12329: # 234 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: operator>>(void*& __p) 12329: { return _M_extract(__p); } 12329: # 258 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: operator>>(__streambuf_type* __sb); 12329: # 268 "/usr/include/c++/12/istream" 3 12329: streamsize 12329: gcount() const 12329: { return _M_gcount; } 12329: # 301 "/usr/include/c++/12/istream" 3 12329: int_type 12329: get(); 12329: # 315 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: get(char_type& __c); 12329: # 342 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: get(char_type* __s, streamsize __n, char_type __delim); 12329: # 353 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: get(char_type* __s, streamsize __n) 12329: { return this->get(__s, __n, this->widen('\n')); } 12329: # 376 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: get(__streambuf_type& __sb, char_type __delim); 12329: # 386 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: get(__streambuf_type& __sb) 12329: { return this->get(__sb, this->widen('\n')); } 12329: # 415 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: getline(char_type* __s, streamsize __n, char_type __delim); 12329: # 426 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: getline(char_type* __s, streamsize __n) 12329: { return this->getline(__s, __n, this->widen('\n')); } 12329: # 450 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: ignore(streamsize __n, int_type __delim); 12329: 12329: __istream_type& 12329: ignore(streamsize __n); 12329: 12329: __istream_type& 12329: ignore(); 12329: # 467 "/usr/include/c++/12/istream" 3 12329: int_type 12329: peek(); 12329: # 485 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: read(char_type* __s, streamsize __n); 12329: # 504 "/usr/include/c++/12/istream" 3 12329: streamsize 12329: readsome(char_type* __s, streamsize __n); 12329: # 521 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: putback(char_type __c); 12329: # 537 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: unget(); 12329: # 555 "/usr/include/c++/12/istream" 3 12329: int 12329: sync(); 12329: # 570 "/usr/include/c++/12/istream" 3 12329: pos_type 12329: tellg(); 12329: # 585 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: seekg(pos_type); 12329: # 601 "/usr/include/c++/12/istream" 3 12329: __istream_type& 12329: seekg(off_type, ios_base::seekdir); 12329: 12329: 12329: protected: 12329: basic_istream() 12329: : _M_gcount(streamsize(0)) 12329: { this->init(0); } 12329: 12329: 12329: basic_istream(const basic_istream&) = delete; 12329: 12329: basic_istream(basic_istream&& __rhs) 12329: : __ios_type(), _M_gcount(__rhs._M_gcount) 12329: { 12329: __ios_type::move(__rhs); 12329: __rhs._M_gcount = 0; 12329: } 12329: 12329: 12329: 12329: basic_istream& operator=(const basic_istream&) = delete; 12329: 12329: basic_istream& 12329: operator=(basic_istream&& __rhs) 12329: { 12329: swap(__rhs); 12329: return *this; 12329: } 12329: 12329: void 12329: swap(basic_istream& __rhs) 12329: { 12329: __ios_type::swap(__rhs); 12329: std::swap(_M_gcount, __rhs._M_gcount); 12329: } 12329: 12329: 12329: template 12329: __istream_type& 12329: _M_extract(_ValueT& __v); 12329: }; 12329: 12329: 12329: template<> 12329: basic_istream& 12329: basic_istream:: 12329: getline(char_type* __s, streamsize __n, char_type __delim); 12329: 12329: template<> 12329: basic_istream& 12329: basic_istream:: 12329: ignore(streamsize __n); 12329: 12329: template<> 12329: basic_istream& 12329: basic_istream:: 12329: ignore(streamsize __n, int_type __delim); 12329: 12329: 12329: template<> 12329: basic_istream& 12329: basic_istream:: 12329: getline(char_type* __s, streamsize __n, char_type __delim); 12329: 12329: template<> 12329: basic_istream& 12329: basic_istream:: 12329: ignore(streamsize __n); 12329: 12329: template<> 12329: basic_istream& 12329: basic_istream:: 12329: ignore(streamsize __n, int_type __delim); 12329: # 685 "/usr/include/c++/12/istream" 3 12329: template 12329: class basic_istream<_CharT, _Traits>::sentry 12329: { 12329: 12329: bool _M_ok; 12329: 12329: public: 12329: 12329: typedef _Traits traits_type; 12329: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 12329: typedef basic_istream<_CharT, _Traits> __istream_type; 12329: typedef typename __istream_type::__ctype_type __ctype_type; 12329: typedef typename _Traits::int_type __int_type; 12329: # 721 "/usr/include/c++/12/istream" 3 12329: explicit 12329: sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); 12329: # 732 "/usr/include/c++/12/istream" 3 12329: explicit 12329: 12329: operator bool() const 12329: { return _M_ok; } 12329: }; 12329: # 750 "/usr/include/c++/12/istream" 3 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); 12329: 12329: template 12329: inline basic_istream& 12329: operator>>(basic_istream& __in, unsigned char& __c) 12329: { return (__in >> reinterpret_cast(__c)); } 12329: 12329: template 12329: inline basic_istream& 12329: operator>>(basic_istream& __in, signed char& __c) 12329: { return (__in >> reinterpret_cast(__c)); } 12329: 12329: 12329: 12329: template 12329: void 12329: __istream_extract(basic_istream<_CharT, _Traits>&, _CharT*, streamsize); 12329: 12329: void __istream_extract(istream&, char*, streamsize); 12329: # 800 "/usr/include/c++/12/istream" 3 12329: template 12329: __attribute__((__nonnull__(2), __access__(__write_only__, 2))) 12329: inline basic_istream<_CharT, _Traits>& 12329: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) 12329: { 12329: 12329: 12329: 12329: size_t __n = __builtin_object_size(__s, 0); 12329: if (__n < sizeof(_CharT)) 12329: { 12329: 12329: do { if (std::__is_constant_evaluated() && !bool(__n >= sizeof(_CharT))) __builtin_unreachable(); } while (false); 12329: 12329: __in.width(0); 12329: __in.setstate(ios_base::failbit); 12329: } 12329: else if (__n != (size_t)-1) 12329: { 12329: __n /= sizeof(_CharT); 12329: streamsize __w = __in.width(); 12329: std::__istream_extract(__in, __s, __n); 12329: if (__in.good() && (__w <= 0 || __n < __w)) 12329: { 12329: 12329: 12329: const typename _Traits::int_type __c = __in.rdbuf()->sgetc(); 12329: const bool __eof = _Traits::eq_int_type(__c, _Traits::eof()); 12329: if (__builtin_expect(__eof, true)) 12329: __in.setstate(ios_base::eofbit); 12329: } 12329: } 12329: else 12329: 12329: { 12329: 12329: streamsize __n = __gnu_cxx::__numeric_traits::__max; 12329: __n /= sizeof(_CharT); 12329: std::__istream_extract(__in, __s, __n); 12329: } 12329: return __in; 12329: } 12329: 12329: template 12329: __attribute__((__nonnull__(2), __access__(__write_only__, 2))) 12329: inline basic_istream& 12329: operator>>(basic_istream& __in, unsigned char* __s) 12329: { return __in >> reinterpret_cast(__s); } 12329: 12329: template 12329: __attribute__((__nonnull__(2), __access__(__write_only__, 2))) 12329: inline basic_istream& 12329: operator>>(basic_istream& __in, signed char* __s) 12329: { return __in >> reinterpret_cast(__s); } 12329: # 889 "/usr/include/c++/12/istream" 3 12329: template 12329: class basic_iostream 12329: : public basic_istream<_CharT, _Traits>, 12329: public basic_ostream<_CharT, _Traits> 12329: { 12329: public: 12329: 12329: 12329: 12329: typedef _CharT char_type; 12329: typedef typename _Traits::int_type int_type; 12329: typedef typename _Traits::pos_type pos_type; 12329: typedef typename _Traits::off_type off_type; 12329: typedef _Traits traits_type; 12329: 12329: 12329: typedef basic_istream<_CharT, _Traits> __istream_type; 12329: typedef basic_ostream<_CharT, _Traits> __ostream_type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) 12329: : __istream_type(__sb), __ostream_type(__sb) { } 12329: 12329: 12329: 12329: 12329: virtual 12329: ~basic_iostream() { } 12329: 12329: protected: 12329: basic_iostream() 12329: : __istream_type(), __ostream_type() { } 12329: 12329: 12329: basic_iostream(const basic_iostream&) = delete; 12329: 12329: basic_iostream(basic_iostream&& __rhs) 12329: : __istream_type(std::move(__rhs)), __ostream_type(*this) 12329: { } 12329: 12329: 12329: 12329: basic_iostream& operator=(const basic_iostream&) = delete; 12329: 12329: basic_iostream& 12329: operator=(basic_iostream&& __rhs) 12329: { 12329: swap(__rhs); 12329: return *this; 12329: } 12329: 12329: void 12329: swap(basic_iostream& __rhs) 12329: { __istream_type::swap(__rhs); } 12329: 12329: }; 12329: # 972 "/usr/include/c++/12/istream" 3 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: ws(basic_istream<_CharT, _Traits>& __is); 12329: # 988 "/usr/include/c++/12/istream" 3 12329: template, 12329: typename = decltype(std::declval<_Is&>() >> std::declval<_Tp>())> 12329: using __rvalue_stream_extraction_t = _Is&&; 12329: # 1004 "/usr/include/c++/12/istream" 3 12329: template 12329: inline __rvalue_stream_extraction_t<_Istream, _Tp> 12329: operator>>(_Istream&& __is, _Tp&& __x) 12329: { 12329: __is >> std::forward<_Tp>(__x); 12329: return std::move(__is); 12329: } 12329: 12329: 12329: 12329: } 12329: 12329: # 1 "/usr/include/c++/12/bits/istream.tcc" 1 3 12329: # 37 "/usr/include/c++/12/bits/istream.tcc" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/istream.tcc" 3 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: basic_istream<_CharT, _Traits>::sentry:: 12329: sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: if (__in.good()) 12329: { 12329: try 12329: { 12329: if (__in.tie()) 12329: __in.tie()->flush(); 12329: if (!__noskip && bool(__in.flags() & ios_base::skipws)) 12329: { 12329: const __int_type __eof = traits_type::eof(); 12329: __streambuf_type* __sb = __in.rdbuf(); 12329: __int_type __c = __sb->sgetc(); 12329: 12329: const __ctype_type& __ct = __check_facet(__in._M_ctype); 12329: while (!traits_type::eq_int_type(__c, __eof) 12329: && __ct.is(ctype_base::space, 12329: traits_type::to_char_type(__c))) 12329: __c = __sb->snextc(); 12329: 12329: 12329: 12329: 12329: if (traits_type::eq_int_type(__c, __eof)) 12329: __err |= ios_base::eofbit; 12329: } 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: __in._M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { __in._M_setstate(ios_base::badbit); } 12329: } 12329: 12329: if (__in.good() && __err == ios_base::goodbit) 12329: _M_ok = true; 12329: else 12329: { 12329: __err |= ios_base::failbit; 12329: __in.setstate(__err); 12329: } 12329: } 12329: 12329: template 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: _M_extract(_ValueT& __v) 12329: { 12329: sentry __cerb(*this, false); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: const __num_get_type& __ng = __check_facet(this->_M_num_get); 12329: __ng.get(*this, 0, *this, __err, __v); 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: operator>>(short& __n) 12329: { 12329: 12329: 12329: sentry __cerb(*this, false); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: long __l; 12329: const __num_get_type& __ng = __check_facet(this->_M_num_get); 12329: __ng.get(*this, 0, *this, __err, __l); 12329: 12329: 12329: 12329: if (__l < __gnu_cxx::__numeric_traits::__min) 12329: { 12329: __err |= ios_base::failbit; 12329: __n = __gnu_cxx::__numeric_traits::__min; 12329: } 12329: else if (__l > __gnu_cxx::__numeric_traits::__max) 12329: { 12329: __err |= ios_base::failbit; 12329: __n = __gnu_cxx::__numeric_traits::__max; 12329: } 12329: else 12329: __n = short(__l); 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: operator>>(int& __n) 12329: { 12329: 12329: 12329: sentry __cerb(*this, false); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: long __l; 12329: const __num_get_type& __ng = __check_facet(this->_M_num_get); 12329: __ng.get(*this, 0, *this, __err, __l); 12329: 12329: 12329: 12329: if (__l < __gnu_cxx::__numeric_traits::__min) 12329: { 12329: __err |= ios_base::failbit; 12329: __n = __gnu_cxx::__numeric_traits::__min; 12329: } 12329: else if (__l > __gnu_cxx::__numeric_traits::__max) 12329: { 12329: __err |= ios_base::failbit; 12329: __n = __gnu_cxx::__numeric_traits::__max; 12329: } 12329: else 12329: __n = int(__l); 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: operator>>(__streambuf_type* __sbout) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: sentry __cerb(*this, false); 12329: if (__cerb && __sbout) 12329: { 12329: try 12329: { 12329: bool __ineof; 12329: if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) 12329: __err |= ios_base::failbit; 12329: if (__ineof) 12329: __err |= ios_base::eofbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::failbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::failbit); } 12329: } 12329: else if (!__sbout) 12329: __err |= ios_base::failbit; 12329: if (__err) 12329: this->setstate(__err); 12329: return *this; 12329: } 12329: 12329: template 12329: typename basic_istream<_CharT, _Traits>::int_type 12329: basic_istream<_CharT, _Traits>:: 12329: get(void) 12329: { 12329: const int_type __eof = traits_type::eof(); 12329: int_type __c = __eof; 12329: _M_gcount = 0; 12329: ios_base::iostate __err = ios_base::goodbit; 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: try 12329: { 12329: __c = this->rdbuf()->sbumpc(); 12329: 12329: if (!traits_type::eq_int_type(__c, __eof)) 12329: _M_gcount = 1; 12329: else 12329: __err |= ios_base::eofbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: } 12329: if (!_M_gcount) 12329: __err |= ios_base::failbit; 12329: if (__err) 12329: this->setstate(__err); 12329: return __c; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: get(char_type& __c) 12329: { 12329: _M_gcount = 0; 12329: ios_base::iostate __err = ios_base::goodbit; 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: try 12329: { 12329: const int_type __cb = this->rdbuf()->sbumpc(); 12329: 12329: if (!traits_type::eq_int_type(__cb, traits_type::eof())) 12329: { 12329: _M_gcount = 1; 12329: __c = traits_type::to_char_type(__cb); 12329: } 12329: else 12329: __err |= ios_base::eofbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: } 12329: if (!_M_gcount) 12329: __err |= ios_base::failbit; 12329: if (__err) 12329: this->setstate(__err); 12329: return *this; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: get(char_type* __s, streamsize __n, char_type __delim) 12329: { 12329: _M_gcount = 0; 12329: ios_base::iostate __err = ios_base::goodbit; 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: try 12329: { 12329: const int_type __idelim = traits_type::to_int_type(__delim); 12329: const int_type __eof = traits_type::eof(); 12329: __streambuf_type* __sb = this->rdbuf(); 12329: int_type __c = __sb->sgetc(); 12329: 12329: while (_M_gcount + 1 < __n 12329: && !traits_type::eq_int_type(__c, __eof) 12329: && !traits_type::eq_int_type(__c, __idelim)) 12329: { 12329: *__s++ = traits_type::to_char_type(__c); 12329: ++_M_gcount; 12329: __c = __sb->snextc(); 12329: } 12329: if (traits_type::eq_int_type(__c, __eof)) 12329: __err |= ios_base::eofbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: } 12329: 12329: 12329: if (__n > 0) 12329: *__s = char_type(); 12329: if (!_M_gcount) 12329: __err |= ios_base::failbit; 12329: if (__err) 12329: this->setstate(__err); 12329: return *this; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: get(__streambuf_type& __sb, char_type __delim) 12329: { 12329: _M_gcount = 0; 12329: ios_base::iostate __err = ios_base::goodbit; 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: try 12329: { 12329: const int_type __idelim = traits_type::to_int_type(__delim); 12329: const int_type __eof = traits_type::eof(); 12329: __streambuf_type* __this_sb = this->rdbuf(); 12329: int_type __c = __this_sb->sgetc(); 12329: char_type __c2 = traits_type::to_char_type(__c); 12329: unsigned long long __gcount = 0; 12329: 12329: while (!traits_type::eq_int_type(__c, __eof) 12329: && !traits_type::eq_int_type(__c, __idelim) 12329: && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) 12329: { 12329: ++__gcount; 12329: __c = __this_sb->snextc(); 12329: __c2 = traits_type::to_char_type(__c); 12329: } 12329: if (traits_type::eq_int_type(__c, __eof)) 12329: __err |= ios_base::eofbit; 12329: 12329: 12329: if (__gcount <= __gnu_cxx::__numeric_traits::__max) 12329: _M_gcount = __gcount; 12329: else 12329: _M_gcount = __gnu_cxx::__numeric_traits::__max; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: } 12329: if (!_M_gcount) 12329: __err |= ios_base::failbit; 12329: if (__err) 12329: this->setstate(__err); 12329: return *this; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: getline(char_type* __s, streamsize __n, char_type __delim) 12329: { 12329: _M_gcount = 0; 12329: ios_base::iostate __err = ios_base::goodbit; 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: try 12329: { 12329: const int_type __idelim = traits_type::to_int_type(__delim); 12329: const int_type __eof = traits_type::eof(); 12329: __streambuf_type* __sb = this->rdbuf(); 12329: int_type __c = __sb->sgetc(); 12329: 12329: while (_M_gcount + 1 < __n 12329: && !traits_type::eq_int_type(__c, __eof) 12329: && !traits_type::eq_int_type(__c, __idelim)) 12329: { 12329: *__s++ = traits_type::to_char_type(__c); 12329: __c = __sb->snextc(); 12329: ++_M_gcount; 12329: } 12329: if (traits_type::eq_int_type(__c, __eof)) 12329: __err |= ios_base::eofbit; 12329: else 12329: { 12329: if (traits_type::eq_int_type(__c, __idelim)) 12329: { 12329: __sb->sbumpc(); 12329: ++_M_gcount; 12329: } 12329: else 12329: __err |= ios_base::failbit; 12329: } 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: } 12329: 12329: 12329: if (__n > 0) 12329: *__s = char_type(); 12329: if (!_M_gcount) 12329: __err |= ios_base::failbit; 12329: if (__err) 12329: this->setstate(__err); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: ignore(void) 12329: { 12329: _M_gcount = 0; 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: const int_type __eof = traits_type::eof(); 12329: __streambuf_type* __sb = this->rdbuf(); 12329: 12329: if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) 12329: __err |= ios_base::eofbit; 12329: else 12329: _M_gcount = 1; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: ignore(streamsize __n) 12329: { 12329: _M_gcount = 0; 12329: sentry __cerb(*this, true); 12329: if (__cerb && __n > 0) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: const int_type __eof = traits_type::eof(); 12329: __streambuf_type* __sb = this->rdbuf(); 12329: int_type __c = __sb->sgetc(); 12329: # 530 "/usr/include/c++/12/bits/istream.tcc" 3 12329: bool __large_ignore = false; 12329: while (true) 12329: { 12329: while (_M_gcount < __n 12329: && !traits_type::eq_int_type(__c, __eof)) 12329: { 12329: ++_M_gcount; 12329: __c = __sb->snextc(); 12329: } 12329: if (__n == __gnu_cxx::__numeric_traits::__max 12329: && !traits_type::eq_int_type(__c, __eof)) 12329: { 12329: _M_gcount = 12329: __gnu_cxx::__numeric_traits::__min; 12329: __large_ignore = true; 12329: } 12329: else 12329: break; 12329: } 12329: 12329: if (__n == __gnu_cxx::__numeric_traits::__max) 12329: { 12329: if (__large_ignore) 12329: _M_gcount = __gnu_cxx::__numeric_traits::__max; 12329: 12329: if (traits_type::eq_int_type(__c, __eof)) 12329: __err |= ios_base::eofbit; 12329: } 12329: else if (_M_gcount < __n) 12329: { 12329: if (traits_type::eq_int_type(__c, __eof)) 12329: __err |= ios_base::eofbit; 12329: } 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: ignore(streamsize __n, int_type __delim) 12329: { 12329: _M_gcount = 0; 12329: sentry __cerb(*this, true); 12329: if (__cerb && __n > 0) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: const int_type __eof = traits_type::eof(); 12329: __streambuf_type* __sb = this->rdbuf(); 12329: int_type __c = __sb->sgetc(); 12329: 12329: 12329: bool __large_ignore = false; 12329: while (true) 12329: { 12329: while (_M_gcount < __n 12329: && !traits_type::eq_int_type(__c, __eof) 12329: && !traits_type::eq_int_type(__c, __delim)) 12329: { 12329: ++_M_gcount; 12329: __c = __sb->snextc(); 12329: } 12329: if (__n == __gnu_cxx::__numeric_traits::__max 12329: && !traits_type::eq_int_type(__c, __eof) 12329: && !traits_type::eq_int_type(__c, __delim)) 12329: { 12329: _M_gcount = 12329: __gnu_cxx::__numeric_traits::__min; 12329: __large_ignore = true; 12329: } 12329: else 12329: break; 12329: } 12329: 12329: if (__n == __gnu_cxx::__numeric_traits::__max) 12329: { 12329: if (__large_ignore) 12329: _M_gcount = __gnu_cxx::__numeric_traits::__max; 12329: 12329: if (traits_type::eq_int_type(__c, __eof)) 12329: __err |= ios_base::eofbit; 12329: else 12329: { 12329: if (_M_gcount != __n) 12329: ++_M_gcount; 12329: __sb->sbumpc(); 12329: } 12329: } 12329: else if (_M_gcount < __n) 12329: { 12329: if (traits_type::eq_int_type(__c, __eof)) 12329: __err |= ios_base::eofbit; 12329: else 12329: { 12329: ++_M_gcount; 12329: __sb->sbumpc(); 12329: } 12329: } 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: typename basic_istream<_CharT, _Traits>::int_type 12329: basic_istream<_CharT, _Traits>:: 12329: peek(void) 12329: { 12329: int_type __c = traits_type::eof(); 12329: _M_gcount = 0; 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: __c = this->rdbuf()->sgetc(); 12329: if (traits_type::eq_int_type(__c, traits_type::eof())) 12329: __err |= ios_base::eofbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return __c; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: read(char_type* __s, streamsize __n) 12329: { 12329: _M_gcount = 0; 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: _M_gcount = this->rdbuf()->sgetn(__s, __n); 12329: if (_M_gcount != __n) 12329: __err |= (ios_base::eofbit | ios_base::failbit); 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: streamsize 12329: basic_istream<_CharT, _Traits>:: 12329: readsome(char_type* __s, streamsize __n) 12329: { 12329: _M_gcount = 0; 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: 12329: const streamsize __num = this->rdbuf()->in_avail(); 12329: if (__num > 0) 12329: _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); 12329: else if (__num == -1) 12329: __err |= ios_base::eofbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return _M_gcount; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: putback(char_type __c) 12329: { 12329: 12329: 12329: _M_gcount = 0; 12329: 12329: this->clear(this->rdstate() & ~ios_base::eofbit); 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: const int_type __eof = traits_type::eof(); 12329: __streambuf_type* __sb = this->rdbuf(); 12329: if (!__sb 12329: || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) 12329: __err |= ios_base::badbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: unget(void) 12329: { 12329: 12329: 12329: _M_gcount = 0; 12329: 12329: this->clear(this->rdstate() & ~ios_base::eofbit); 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: const int_type __eof = traits_type::eof(); 12329: __streambuf_type* __sb = this->rdbuf(); 12329: if (!__sb 12329: || traits_type::eq_int_type(__sb->sungetc(), __eof)) 12329: __err |= ios_base::badbit; 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: int 12329: basic_istream<_CharT, _Traits>:: 12329: sync(void) 12329: { 12329: 12329: 12329: int __ret = -1; 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: __streambuf_type* __sb = this->rdbuf(); 12329: if (__sb) 12329: { 12329: if (__sb->pubsync() == -1) 12329: __err |= ios_base::badbit; 12329: else 12329: __ret = 0; 12329: } 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return __ret; 12329: } 12329: 12329: template 12329: typename basic_istream<_CharT, _Traits>::pos_type 12329: basic_istream<_CharT, _Traits>:: 12329: tellg(void) 12329: { 12329: 12329: 12329: pos_type __ret = pos_type(-1); 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: try 12329: { 12329: if (!this->fail()) 12329: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, 12329: ios_base::in); 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: } 12329: return __ret; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: seekg(pos_type __pos) 12329: { 12329: 12329: 12329: 12329: this->clear(this->rdstate() & ~ios_base::eofbit); 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: if (!this->fail()) 12329: { 12329: 12329: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 12329: ios_base::in); 12329: 12329: 12329: if (__p == pos_type(off_type(-1))) 12329: __err |= ios_base::failbit; 12329: } 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: basic_istream<_CharT, _Traits>:: 12329: seekg(off_type __off, ios_base::seekdir __dir) 12329: { 12329: 12329: 12329: 12329: this->clear(this->rdstate() & ~ios_base::eofbit); 12329: sentry __cerb(*this, true); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: if (!this->fail()) 12329: { 12329: 12329: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 12329: ios_base::in); 12329: 12329: 12329: if (__p == pos_type(off_type(-1))) 12329: __err |= ios_base::failbit; 12329: } 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: this->_M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { this->_M_setstate(ios_base::badbit); } 12329: if (__err) 12329: this->setstate(__err); 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) 12329: { 12329: typedef basic_istream<_CharT, _Traits> __istream_type; 12329: typedef typename __istream_type::int_type __int_type; 12329: 12329: typename __istream_type::sentry __cerb(__in, false); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: const __int_type __cb = __in.rdbuf()->sbumpc(); 12329: if (!_Traits::eq_int_type(__cb, _Traits::eof())) 12329: __c = _Traits::to_char_type(__cb); 12329: else 12329: __err |= (ios_base::eofbit | ios_base::failbit); 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: __in._M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { __in._M_setstate(ios_base::badbit); } 12329: if (__err) 12329: __in.setstate(__err); 12329: } 12329: return __in; 12329: } 12329: 12329: template 12329: void 12329: __istream_extract(basic_istream<_CharT, _Traits>& __in, _CharT* __s, 12329: streamsize __num) 12329: { 12329: typedef basic_istream<_CharT, _Traits> __istream_type; 12329: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 12329: typedef typename _Traits::int_type int_type; 12329: typedef _CharT char_type; 12329: typedef ctype<_CharT> __ctype_type; 12329: 12329: streamsize __extracted = 0; 12329: ios_base::iostate __err = ios_base::goodbit; 12329: typename __istream_type::sentry __cerb(__in, false); 12329: if (__cerb) 12329: { 12329: try 12329: { 12329: 12329: streamsize __width = __in.width(); 12329: if (0 < __width && __width < __num) 12329: __num = __width; 12329: 12329: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 12329: 12329: const int_type __eof = _Traits::eof(); 12329: __streambuf_type* __sb = __in.rdbuf(); 12329: int_type __c = __sb->sgetc(); 12329: 12329: while (__extracted < __num - 1 12329: && !_Traits::eq_int_type(__c, __eof) 12329: && !__ct.is(ctype_base::space, 12329: _Traits::to_char_type(__c))) 12329: { 12329: *__s++ = _Traits::to_char_type(__c); 12329: ++__extracted; 12329: __c = __sb->snextc(); 12329: } 12329: 12329: if (__extracted < __num - 1 12329: && _Traits::eq_int_type(__c, __eof)) 12329: __err |= ios_base::eofbit; 12329: 12329: 12329: 12329: *__s = char_type(); 12329: __in.width(0); 12329: } 12329: catch(__cxxabiv1::__forced_unwind&) 12329: { 12329: __in._M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { __in._M_setstate(ios_base::badbit); } 12329: } 12329: if (!__extracted) 12329: __err |= ios_base::failbit; 12329: if (__err) 12329: __in.setstate(__err); 12329: } 12329: 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: ws(basic_istream<_CharT, _Traits>& __in) 12329: { 12329: typedef basic_istream<_CharT, _Traits> __istream_type; 12329: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 12329: typedef typename __istream_type::int_type __int_type; 12329: typedef ctype<_CharT> __ctype_type; 12329: 12329: 12329: 12329: typename __istream_type::sentry __cerb(__in, true); 12329: if (__cerb) 12329: { 12329: ios_base::iostate __err = ios_base::goodbit; 12329: try 12329: { 12329: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 12329: const __int_type __eof = _Traits::eof(); 12329: __streambuf_type* __sb = __in.rdbuf(); 12329: __int_type __c = __sb->sgetc(); 12329: 12329: while (true) 12329: { 12329: if (_Traits::eq_int_type(__c, __eof)) 12329: { 12329: __err = ios_base::eofbit; 12329: break; 12329: } 12329: if (!__ct.is(ctype_base::space, _Traits::to_char_type(__c))) 12329: break; 12329: __c = __sb->snextc(); 12329: } 12329: } 12329: catch(const __cxxabiv1::__forced_unwind&) 12329: { 12329: __in._M_setstate(ios_base::badbit); 12329: throw; 12329: } 12329: catch(...) 12329: { 12329: __in._M_setstate(ios_base::badbit); 12329: } 12329: if (__err) 12329: __in.setstate(__err); 12329: } 12329: return __in; 12329: } 12329: 12329: 12329: 12329: 12329: extern template class basic_istream; 12329: extern template istream& ws(istream&); 12329: extern template istream& operator>>(istream&, char&); 12329: extern template istream& operator>>(istream&, unsigned char&); 12329: extern template istream& operator>>(istream&, signed char&); 12329: 12329: extern template istream& istream::_M_extract(unsigned short&); 12329: extern template istream& istream::_M_extract(unsigned int&); 12329: extern template istream& istream::_M_extract(long&); 12329: extern template istream& istream::_M_extract(unsigned long&); 12329: extern template istream& istream::_M_extract(bool&); 12329: 12329: extern template istream& istream::_M_extract(long long&); 12329: extern template istream& istream::_M_extract(unsigned long long&); 12329: 12329: extern template istream& istream::_M_extract(float&); 12329: extern template istream& istream::_M_extract(double&); 12329: extern template istream& istream::_M_extract(long double&); 12329: extern template istream& istream::_M_extract(void*&); 12329: 12329: extern template class basic_iostream; 12329: 12329: 12329: extern template class basic_istream; 12329: extern template wistream& ws(wistream&); 12329: extern template wistream& operator>>(wistream&, wchar_t&); 12329: extern template void __istream_extract(wistream&, wchar_t*, streamsize); 12329: 12329: extern template wistream& wistream::_M_extract(unsigned short&); 12329: extern template wistream& wistream::_M_extract(unsigned int&); 12329: extern template wistream& wistream::_M_extract(long&); 12329: extern template wistream& wistream::_M_extract(unsigned long&); 12329: extern template wistream& wistream::_M_extract(bool&); 12329: 12329: extern template wistream& wistream::_M_extract(long long&); 12329: extern template wistream& wistream::_M_extract(unsigned long long&); 12329: 12329: extern template wistream& wistream::_M_extract(float&); 12329: extern template wistream& wistream::_M_extract(double&); 12329: extern template wistream& wistream::_M_extract(long double&); 12329: extern template wistream& wistream::_M_extract(void*&); 12329: 12329: extern template class basic_iostream; 12329: 12329: 12329: 12329: 12329: } 12329: # 1017 "/usr/include/c++/12/istream" 2 3 12329: # 39 "/usr/include/c++/12/sstream" 2 3 12329: # 48 "/usr/include/c++/12/sstream" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: namespace __cxx11 { 12329: # 71 "/usr/include/c++/12/sstream" 3 12329: template 12329: class basic_stringbuf : public basic_streambuf<_CharT, _Traits> 12329: { 12329: struct __xfer_bufptrs; 12329: 12329: 12329: using allocator_traits = std::allocator_traits<_Alloc>; 12329: using _Noexcept_swap 12329: = __or_; 12329: 12329: 12329: public: 12329: 12329: typedef _CharT char_type; 12329: typedef _Traits traits_type; 12329: 12329: 12329: typedef _Alloc allocator_type; 12329: typedef typename traits_type::int_type int_type; 12329: typedef typename traits_type::pos_type pos_type; 12329: typedef typename traits_type::off_type off_type; 12329: 12329: typedef basic_streambuf __streambuf_type; 12329: typedef basic_string __string_type; 12329: typedef typename __string_type::size_type __size_type; 12329: 12329: protected: 12329: 12329: ios_base::openmode _M_mode; 12329: 12329: 12329: __string_type _M_string; 12329: 12329: public: 12329: # 114 "/usr/include/c++/12/sstream" 3 12329: basic_stringbuf() 12329: : __streambuf_type(), _M_mode(ios_base::in | ios_base::out), _M_string() 12329: { } 12329: # 125 "/usr/include/c++/12/sstream" 3 12329: explicit 12329: basic_stringbuf(ios_base::openmode __mode) 12329: : __streambuf_type(), _M_mode(__mode), _M_string() 12329: { } 12329: # 138 "/usr/include/c++/12/sstream" 3 12329: explicit 12329: basic_stringbuf(const __string_type& __str, 12329: ios_base::openmode __mode = ios_base::in | ios_base::out) 12329: : __streambuf_type(), _M_mode(), 12329: _M_string(__str.data(), __str.size(), __str.get_allocator()) 12329: { _M_stringbuf_init(__mode); } 12329: 12329: 12329: basic_stringbuf(const basic_stringbuf&) = delete; 12329: 12329: basic_stringbuf(basic_stringbuf&& __rhs) 12329: : basic_stringbuf(std::move(__rhs), __xfer_bufptrs(__rhs, this)) 12329: { __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); } 12329: # 202 "/usr/include/c++/12/sstream" 3 12329: basic_stringbuf& 12329: operator=(const basic_stringbuf&) = delete; 12329: 12329: basic_stringbuf& 12329: operator=(basic_stringbuf&& __rhs) 12329: { 12329: __xfer_bufptrs __st{__rhs, this}; 12329: const __streambuf_type& __base = __rhs; 12329: __streambuf_type::operator=(__base); 12329: this->pubimbue(__rhs.getloc()); 12329: _M_mode = __rhs._M_mode; 12329: _M_string = std::move(__rhs._M_string); 12329: __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); 12329: return *this; 12329: } 12329: 12329: void 12329: swap(basic_stringbuf& __rhs) noexcept(_Noexcept_swap::value) 12329: { 12329: __xfer_bufptrs __l_st{*this, std::__addressof(__rhs)}; 12329: __xfer_bufptrs __r_st{__rhs, this}; 12329: __streambuf_type& __base = __rhs; 12329: __streambuf_type::swap(__base); 12329: __rhs.pubimbue(this->pubimbue(__rhs.getloc())); 12329: std::swap(_M_mode, __rhs._M_mode); 12329: std::swap(_M_string, __rhs._M_string); 12329: } 12329: # 241 "/usr/include/c++/12/sstream" 3 12329: __string_type 12329: str() const 12329: { 12329: __string_type __ret(_M_string.get_allocator()); 12329: if (char_type* __hi = _M_high_mark()) 12329: __ret.assign(this->pbase(), __hi); 12329: else 12329: __ret = _M_string; 12329: return __ret; 12329: } 12329: # 294 "/usr/include/c++/12/sstream" 3 12329: void 12329: str(const __string_type& __s) 12329: { 12329: 12329: 12329: _M_string.assign(__s.data(), __s.size()); 12329: _M_stringbuf_init(_M_mode); 12329: } 12329: # 323 "/usr/include/c++/12/sstream" 3 12329: protected: 12329: 12329: void 12329: _M_stringbuf_init(ios_base::openmode __mode) 12329: { 12329: _M_mode = __mode; 12329: __size_type __len = 0; 12329: if (_M_mode & (ios_base::ate | ios_base::app)) 12329: __len = _M_string.size(); 12329: _M_sync(const_cast(_M_string.data()), 0, __len); 12329: } 12329: 12329: virtual streamsize 12329: showmanyc() 12329: { 12329: streamsize __ret = -1; 12329: if (_M_mode & ios_base::in) 12329: { 12329: _M_update_egptr(); 12329: __ret = this->egptr() - this->gptr(); 12329: } 12329: return __ret; 12329: } 12329: 12329: virtual int_type 12329: underflow(); 12329: 12329: virtual int_type 12329: pbackfail(int_type __c = traits_type::eof()); 12329: 12329: virtual int_type 12329: overflow(int_type __c = traits_type::eof()); 12329: # 367 "/usr/include/c++/12/sstream" 3 12329: virtual __streambuf_type* 12329: setbuf(char_type* __s, streamsize __n) 12329: { 12329: if (__s && __n >= 0) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: _M_string.clear(); 12329: 12329: 12329: _M_sync(__s, __n, 0); 12329: } 12329: return this; 12329: } 12329: 12329: virtual pos_type 12329: seekoff(off_type __off, ios_base::seekdir __way, 12329: ios_base::openmode __mode = ios_base::in | ios_base::out); 12329: 12329: virtual pos_type 12329: seekpos(pos_type __sp, 12329: ios_base::openmode __mode = ios_base::in | ios_base::out); 12329: 12329: 12329: 12329: 12329: void 12329: _M_sync(char_type* __base, __size_type __i, __size_type __o); 12329: 12329: 12329: 12329: void 12329: _M_update_egptr() 12329: { 12329: if (char_type* __pptr = this->pptr()) 12329: { 12329: char_type* __egptr = this->egptr(); 12329: if (!__egptr || __pptr > __egptr) 12329: { 12329: if (_M_mode & ios_base::in) 12329: this->setg(this->eback(), this->gptr(), __pptr); 12329: else 12329: this->setg(__pptr, __pptr, __pptr); 12329: } 12329: } 12329: } 12329: 12329: 12329: 12329: void 12329: _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off); 12329: 12329: private: 12329: 12329: 12329: 12329: 12329: __attribute__((__always_inline__)) 12329: char_type* 12329: _M_high_mark() const noexcept 12329: { 12329: if (char_type* __pptr = this->pptr()) 12329: { 12329: char_type* __egptr = this->egptr(); 12329: if (!__egptr || __pptr > __egptr) 12329: return __pptr; 12329: else 12329: return __egptr; 12329: } 12329: return 0; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: struct __xfer_bufptrs 12329: { 12329: __xfer_bufptrs(const basic_stringbuf& __from, basic_stringbuf* __to) 12329: : _M_to{__to}, _M_goff{-1, -1, -1}, _M_poff{-1, -1, -1} 12329: { 12329: const _CharT* const __str = __from._M_string.data(); 12329: const _CharT* __end = nullptr; 12329: if (__from.eback()) 12329: { 12329: _M_goff[0] = __from.eback() - __str; 12329: _M_goff[1] = __from.gptr() - __str; 12329: _M_goff[2] = __from.egptr() - __str; 12329: __end = __from.egptr(); 12329: } 12329: if (__from.pbase()) 12329: { 12329: _M_poff[0] = __from.pbase() - __str; 12329: _M_poff[1] = __from.pptr() - __from.pbase(); 12329: _M_poff[2] = __from.epptr() - __str; 12329: if (!__end || __from.pptr() > __end) 12329: __end = __from.pptr(); 12329: } 12329: 12329: 12329: if (__end) 12329: { 12329: 12329: 12329: auto& __mut_from = const_cast(__from); 12329: __mut_from._M_string._M_length(__end - __str); 12329: } 12329: } 12329: 12329: ~__xfer_bufptrs() 12329: { 12329: char_type* __str = const_cast(_M_to->_M_string.data()); 12329: if (_M_goff[0] != -1) 12329: _M_to->setg(__str+_M_goff[0], __str+_M_goff[1], __str+_M_goff[2]); 12329: if (_M_poff[0] != -1) 12329: _M_to->_M_pbump(__str+_M_poff[0], __str+_M_poff[2], _M_poff[1]); 12329: } 12329: 12329: basic_stringbuf* _M_to; 12329: off_type _M_goff[3]; 12329: off_type _M_poff[3]; 12329: }; 12329: # 503 "/usr/include/c++/12/sstream" 3 12329: basic_stringbuf(basic_stringbuf&& __rhs, __xfer_bufptrs&&) 12329: : __streambuf_type(static_cast(__rhs)), 12329: _M_mode(__rhs._M_mode), _M_string(std::move(__rhs._M_string)) 12329: { } 12329: # 518 "/usr/include/c++/12/sstream" 3 12329: }; 12329: # 536 "/usr/include/c++/12/sstream" 3 12329: template 12329: class basic_istringstream : public basic_istream<_CharT, _Traits> 12329: { 12329: public: 12329: 12329: typedef _CharT char_type; 12329: typedef _Traits traits_type; 12329: 12329: 12329: typedef _Alloc allocator_type; 12329: typedef typename traits_type::int_type int_type; 12329: typedef typename traits_type::pos_type pos_type; 12329: typedef typename traits_type::off_type off_type; 12329: 12329: 12329: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 12329: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 12329: typedef basic_istream __istream_type; 12329: 12329: private: 12329: __stringbuf_type _M_stringbuf; 12329: 12329: public: 12329: # 570 "/usr/include/c++/12/sstream" 3 12329: basic_istringstream() 12329: : __istream_type(), _M_stringbuf(ios_base::in) 12329: { this->init(&_M_stringbuf); } 12329: # 586 "/usr/include/c++/12/sstream" 3 12329: explicit 12329: basic_istringstream(ios_base::openmode __mode) 12329: : __istream_type(), _M_stringbuf(__mode | ios_base::in) 12329: { this->init(&_M_stringbuf); } 12329: # 604 "/usr/include/c++/12/sstream" 3 12329: explicit 12329: basic_istringstream(const __string_type& __str, 12329: ios_base::openmode __mode = ios_base::in) 12329: : __istream_type(), _M_stringbuf(__str, __mode | ios_base::in) 12329: { this->init(&_M_stringbuf); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ~basic_istringstream() 12329: { } 12329: 12329: 12329: basic_istringstream(const basic_istringstream&) = delete; 12329: 12329: basic_istringstream(basic_istringstream&& __rhs) 12329: : __istream_type(std::move(__rhs)), 12329: _M_stringbuf(std::move(__rhs._M_stringbuf)) 12329: { __istream_type::set_rdbuf(&_M_stringbuf); } 12329: # 661 "/usr/include/c++/12/sstream" 3 12329: basic_istringstream& 12329: operator=(const basic_istringstream&) = delete; 12329: 12329: basic_istringstream& 12329: operator=(basic_istringstream&& __rhs) 12329: { 12329: __istream_type::operator=(std::move(__rhs)); 12329: _M_stringbuf = std::move(__rhs._M_stringbuf); 12329: return *this; 12329: } 12329: 12329: void 12329: swap(basic_istringstream& __rhs) 12329: { 12329: __istream_type::swap(__rhs); 12329: _M_stringbuf.swap(__rhs._M_stringbuf); 12329: } 12329: # 687 "/usr/include/c++/12/sstream" 3 12329: __stringbuf_type* 12329: rdbuf() const 12329: { return const_cast<__stringbuf_type*>(&_M_stringbuf); } 12329: 12329: 12329: 12329: 12329: 12329: __string_type 12329: str() const 12329: { return _M_stringbuf.str(); } 12329: # 722 "/usr/include/c++/12/sstream" 3 12329: void 12329: str(const __string_type& __s) 12329: { _M_stringbuf.str(__s); } 12329: # 739 "/usr/include/c++/12/sstream" 3 12329: }; 12329: # 757 "/usr/include/c++/12/sstream" 3 12329: template 12329: class basic_ostringstream : public basic_ostream<_CharT, _Traits> 12329: { 12329: public: 12329: 12329: typedef _CharT char_type; 12329: typedef _Traits traits_type; 12329: 12329: 12329: typedef _Alloc allocator_type; 12329: typedef typename traits_type::int_type int_type; 12329: typedef typename traits_type::pos_type pos_type; 12329: typedef typename traits_type::off_type off_type; 12329: 12329: 12329: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 12329: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 12329: typedef basic_ostream __ostream_type; 12329: 12329: private: 12329: __stringbuf_type _M_stringbuf; 12329: 12329: public: 12329: # 791 "/usr/include/c++/12/sstream" 3 12329: basic_ostringstream() 12329: : __ostream_type(), _M_stringbuf(ios_base::out) 12329: { this->init(&_M_stringbuf); } 12329: # 807 "/usr/include/c++/12/sstream" 3 12329: explicit 12329: basic_ostringstream(ios_base::openmode __mode) 12329: : __ostream_type(), _M_stringbuf(__mode | ios_base::out) 12329: { this->init(&_M_stringbuf); } 12329: # 825 "/usr/include/c++/12/sstream" 3 12329: explicit 12329: basic_ostringstream(const __string_type& __str, 12329: ios_base::openmode __mode = ios_base::out) 12329: : __ostream_type(), _M_stringbuf(__str, __mode | ios_base::out) 12329: { this->init(&_M_stringbuf); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ~basic_ostringstream() 12329: { } 12329: 12329: 12329: basic_ostringstream(const basic_ostringstream&) = delete; 12329: 12329: basic_ostringstream(basic_ostringstream&& __rhs) 12329: : __ostream_type(std::move(__rhs)), 12329: _M_stringbuf(std::move(__rhs._M_stringbuf)) 12329: { __ostream_type::set_rdbuf(&_M_stringbuf); } 12329: # 882 "/usr/include/c++/12/sstream" 3 12329: basic_ostringstream& 12329: operator=(const basic_ostringstream&) = delete; 12329: 12329: basic_ostringstream& 12329: operator=(basic_ostringstream&& __rhs) 12329: { 12329: __ostream_type::operator=(std::move(__rhs)); 12329: _M_stringbuf = std::move(__rhs._M_stringbuf); 12329: return *this; 12329: } 12329: 12329: void 12329: swap(basic_ostringstream& __rhs) 12329: { 12329: __ostream_type::swap(__rhs); 12329: _M_stringbuf.swap(__rhs._M_stringbuf); 12329: } 12329: # 908 "/usr/include/c++/12/sstream" 3 12329: __stringbuf_type* 12329: rdbuf() const 12329: { return const_cast<__stringbuf_type*>(&_M_stringbuf); } 12329: 12329: 12329: 12329: 12329: 12329: __string_type 12329: str() const 12329: { return _M_stringbuf.str(); } 12329: # 943 "/usr/include/c++/12/sstream" 3 12329: void 12329: str(const __string_type& __s) 12329: { _M_stringbuf.str(__s); } 12329: # 960 "/usr/include/c++/12/sstream" 3 12329: }; 12329: # 978 "/usr/include/c++/12/sstream" 3 12329: template 12329: class basic_stringstream : public basic_iostream<_CharT, _Traits> 12329: { 12329: public: 12329: 12329: typedef _CharT char_type; 12329: typedef _Traits traits_type; 12329: 12329: 12329: typedef _Alloc allocator_type; 12329: typedef typename traits_type::int_type int_type; 12329: typedef typename traits_type::pos_type pos_type; 12329: typedef typename traits_type::off_type off_type; 12329: 12329: 12329: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 12329: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 12329: typedef basic_iostream __iostream_type; 12329: 12329: private: 12329: __stringbuf_type _M_stringbuf; 12329: 12329: public: 12329: # 1012 "/usr/include/c++/12/sstream" 3 12329: basic_stringstream() 12329: : __iostream_type(), _M_stringbuf(ios_base::out | ios_base::in) 12329: { this->init(&_M_stringbuf); } 12329: # 1026 "/usr/include/c++/12/sstream" 3 12329: explicit 12329: basic_stringstream(ios_base::openmode __m) 12329: : __iostream_type(), _M_stringbuf(__m) 12329: { this->init(&_M_stringbuf); } 12329: # 1042 "/usr/include/c++/12/sstream" 3 12329: explicit 12329: basic_stringstream(const __string_type& __str, 12329: ios_base::openmode __m = ios_base::out | ios_base::in) 12329: : __iostream_type(), _M_stringbuf(__str, __m) 12329: { this->init(&_M_stringbuf); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ~basic_stringstream() 12329: { } 12329: 12329: 12329: basic_stringstream(const basic_stringstream&) = delete; 12329: 12329: basic_stringstream(basic_stringstream&& __rhs) 12329: : __iostream_type(std::move(__rhs)), 12329: _M_stringbuf(std::move(__rhs._M_stringbuf)) 12329: { __iostream_type::set_rdbuf(&_M_stringbuf); } 12329: # 1101 "/usr/include/c++/12/sstream" 3 12329: basic_stringstream& 12329: operator=(const basic_stringstream&) = delete; 12329: 12329: basic_stringstream& 12329: operator=(basic_stringstream&& __rhs) 12329: { 12329: __iostream_type::operator=(std::move(__rhs)); 12329: _M_stringbuf = std::move(__rhs._M_stringbuf); 12329: return *this; 12329: } 12329: 12329: void 12329: swap(basic_stringstream& __rhs) 12329: { 12329: __iostream_type::swap(__rhs); 12329: _M_stringbuf.swap(__rhs._M_stringbuf); 12329: } 12329: # 1127 "/usr/include/c++/12/sstream" 3 12329: __stringbuf_type* 12329: rdbuf() const 12329: { return const_cast<__stringbuf_type*>(&_M_stringbuf); } 12329: 12329: 12329: 12329: 12329: 12329: __string_type 12329: str() const 12329: { return _M_stringbuf.str(); } 12329: # 1162 "/usr/include/c++/12/sstream" 3 12329: void 12329: str(const __string_type& __s) 12329: { _M_stringbuf.str(__s); } 12329: # 1179 "/usr/include/c++/12/sstream" 3 12329: }; 12329: 12329: 12329: 12329: template 12329: inline void 12329: swap(basic_stringbuf<_CharT, _Traits, _Allocator>& __x, 12329: basic_stringbuf<_CharT, _Traits, _Allocator>& __y) 12329: noexcept(noexcept(__x.swap(__y))) 12329: { __x.swap(__y); } 12329: 12329: 12329: template 12329: inline void 12329: swap(basic_istringstream<_CharT, _Traits, _Allocator>& __x, 12329: basic_istringstream<_CharT, _Traits, _Allocator>& __y) 12329: { __x.swap(__y); } 12329: 12329: 12329: template 12329: inline void 12329: swap(basic_ostringstream<_CharT, _Traits, _Allocator>& __x, 12329: basic_ostringstream<_CharT, _Traits, _Allocator>& __y) 12329: { __x.swap(__y); } 12329: 12329: 12329: template 12329: inline void 12329: swap(basic_stringstream<_CharT, _Traits, _Allocator>& __x, 12329: basic_stringstream<_CharT, _Traits, _Allocator>& __y) 12329: { __x.swap(__y); } 12329: 12329: 12329: } 12329: 12329: } 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/sstream.tcc" 1 3 12329: # 37 "/usr/include/c++/12/bits/sstream.tcc" 3 12329: 12329: # 38 "/usr/include/c++/12/bits/sstream.tcc" 3 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: template 12329: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 12329: basic_stringbuf<_CharT, _Traits, _Alloc>:: 12329: pbackfail(int_type __c) 12329: { 12329: int_type __ret = traits_type::eof(); 12329: if (this->eback() < this->gptr()) 12329: { 12329: 12329: 12329: const bool __testeof = traits_type::eq_int_type(__c, __ret); 12329: if (!__testeof) 12329: { 12329: const bool __testeq = traits_type::eq(traits_type:: 12329: to_char_type(__c), 12329: this->gptr()[-1]); 12329: const bool __testout = this->_M_mode & ios_base::out; 12329: if (__testeq || __testout) 12329: { 12329: this->gbump(-1); 12329: if (!__testeq) 12329: *this->gptr() = traits_type::to_char_type(__c); 12329: __ret = __c; 12329: } 12329: } 12329: else 12329: { 12329: this->gbump(-1); 12329: __ret = traits_type::not_eof(__c); 12329: } 12329: } 12329: return __ret; 12329: } 12329: 12329: template 12329: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 12329: basic_stringbuf<_CharT, _Traits, _Alloc>:: 12329: overflow(int_type __c) 12329: { 12329: const bool __testout = this->_M_mode & ios_base::out; 12329: if (__builtin_expect(!__testout, false)) 12329: return traits_type::eof(); 12329: 12329: const bool __testeof = traits_type::eq_int_type(__c, traits_type::eof()); 12329: if (__builtin_expect(__testeof, false)) 12329: return traits_type::not_eof(__c); 12329: 12329: const __size_type __capacity = _M_string.capacity(); 12329: 12329: 12329: if (size_t(this->epptr() - this->pbase()) < __capacity) 12329: { 12329: 12329: char_type* __base = const_cast(_M_string.data()); 12329: _M_pbump(__base, __base + __capacity, this->pptr() - this->pbase()); 12329: if (_M_mode & ios_base::in) 12329: { 12329: const __size_type __nget = this->gptr() - this->eback(); 12329: const __size_type __eget = this->egptr() - this->eback(); 12329: this->setg(__base, __base + __nget, __base + __eget + 1); 12329: } 12329: *this->pptr() = traits_type::to_char_type(__c); 12329: this->pbump(1); 12329: return __c; 12329: } 12329: 12329: 12329: const __size_type __max_size = _M_string.max_size(); 12329: const bool __testput = this->pptr() < this->epptr(); 12329: if (__builtin_expect(!__testput && __capacity == __max_size, false)) 12329: return traits_type::eof(); 12329: 12329: 12329: 12329: const char_type __conv = traits_type::to_char_type(__c); 12329: if (!__testput) 12329: { 12329: # 129 "/usr/include/c++/12/bits/sstream.tcc" 3 12329: const __size_type __opt_len = std::max(__size_type(2 * __capacity), 12329: __size_type(512)); 12329: const __size_type __len = std::min(__opt_len, __max_size); 12329: __string_type __tmp(_M_string.get_allocator()); 12329: __tmp.reserve(__len); 12329: if (this->pbase()) 12329: __tmp.assign(this->pbase(), this->epptr() - this->pbase()); 12329: __tmp.push_back(__conv); 12329: _M_string.swap(__tmp); 12329: _M_sync(const_cast(_M_string.data()), 12329: this->gptr() - this->eback(), this->pptr() - this->pbase()); 12329: } 12329: else 12329: *this->pptr() = __conv; 12329: this->pbump(1); 12329: return __c; 12329: } 12329: 12329: template 12329: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 12329: basic_stringbuf<_CharT, _Traits, _Alloc>:: 12329: underflow() 12329: { 12329: int_type __ret = traits_type::eof(); 12329: const bool __testin = this->_M_mode & ios_base::in; 12329: if (__testin) 12329: { 12329: 12329: _M_update_egptr(); 12329: 12329: if (this->gptr() < this->egptr()) 12329: __ret = traits_type::to_int_type(*this->gptr()); 12329: } 12329: return __ret; 12329: } 12329: 12329: template 12329: typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type 12329: basic_stringbuf<_CharT, _Traits, _Alloc>:: 12329: seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode) 12329: { 12329: pos_type __ret = pos_type(off_type(-1)); 12329: bool __testin = (ios_base::in & this->_M_mode & __mode) != 0; 12329: bool __testout = (ios_base::out & this->_M_mode & __mode) != 0; 12329: const bool __testboth = __testin && __testout && __way != ios_base::cur; 12329: __testin &= !(__mode & ios_base::out); 12329: __testout &= !(__mode & ios_base::in); 12329: 12329: 12329: 12329: const char_type* __beg = __testin ? this->eback() : this->pbase(); 12329: if ((__beg || !__off) && (__testin || __testout || __testboth)) 12329: { 12329: _M_update_egptr(); 12329: 12329: off_type __newoffi = __off; 12329: off_type __newoffo = __newoffi; 12329: if (__way == ios_base::cur) 12329: { 12329: __newoffi += this->gptr() - __beg; 12329: __newoffo += this->pptr() - __beg; 12329: } 12329: else if (__way == ios_base::end) 12329: __newoffo = __newoffi += this->egptr() - __beg; 12329: 12329: if ((__testin || __testboth) 12329: && __newoffi >= 0 12329: && this->egptr() - __beg >= __newoffi) 12329: { 12329: this->setg(this->eback(), this->eback() + __newoffi, 12329: this->egptr()); 12329: __ret = pos_type(__newoffi); 12329: } 12329: if ((__testout || __testboth) 12329: && __newoffo >= 0 12329: && this->egptr() - __beg >= __newoffo) 12329: { 12329: _M_pbump(this->pbase(), this->epptr(), __newoffo); 12329: __ret = pos_type(__newoffo); 12329: } 12329: } 12329: return __ret; 12329: } 12329: 12329: template 12329: typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type 12329: basic_stringbuf<_CharT, _Traits, _Alloc>:: 12329: seekpos(pos_type __sp, ios_base::openmode __mode) 12329: { 12329: pos_type __ret = pos_type(off_type(-1)); 12329: const bool __testin = (ios_base::in & this->_M_mode & __mode) != 0; 12329: const bool __testout = (ios_base::out & this->_M_mode & __mode) != 0; 12329: 12329: const char_type* __beg = __testin ? this->eback() : this->pbase(); 12329: if ((__beg || !off_type(__sp)) && (__testin || __testout)) 12329: { 12329: _M_update_egptr(); 12329: 12329: const off_type __pos(__sp); 12329: const bool __testpos = (0 <= __pos 12329: && __pos <= this->egptr() - __beg); 12329: if (__testpos) 12329: { 12329: if (__testin) 12329: this->setg(this->eback(), this->eback() + __pos, 12329: this->egptr()); 12329: if (__testout) 12329: _M_pbump(this->pbase(), this->epptr(), __pos); 12329: __ret = __sp; 12329: } 12329: } 12329: return __ret; 12329: } 12329: 12329: template 12329: void 12329: basic_stringbuf<_CharT, _Traits, _Alloc>:: 12329: _M_sync(char_type* __base, __size_type __i, __size_type __o) 12329: { 12329: const bool __testin = _M_mode & ios_base::in; 12329: const bool __testout = _M_mode & ios_base::out; 12329: char_type* __endg = __base + _M_string.size(); 12329: char_type* __endp = __base + _M_string.capacity(); 12329: 12329: if (__base != _M_string.data()) 12329: { 12329: 12329: __endg += __i; 12329: __i = 0; 12329: __endp = __endg; 12329: } 12329: 12329: if (__testin) 12329: this->setg(__base, __base + __i, __endg); 12329: if (__testout) 12329: { 12329: _M_pbump(__base, __endp, __o); 12329: 12329: 12329: 12329: if (!__testin) 12329: this->setg(__endg, __endg, __endg); 12329: } 12329: } 12329: 12329: template 12329: void 12329: basic_stringbuf<_CharT, _Traits, _Alloc>:: 12329: _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off) 12329: { 12329: this->setp(__pbeg, __pend); 12329: while (__off > __gnu_cxx::__numeric_traits::__max) 12329: { 12329: this->pbump(__gnu_cxx::__numeric_traits::__max); 12329: __off -= __gnu_cxx::__numeric_traits::__max; 12329: } 12329: this->pbump(__off); 12329: } 12329: 12329: 12329: 12329: 12329: extern template class basic_stringbuf; 12329: extern template class basic_istringstream; 12329: extern template class basic_ostringstream; 12329: extern template class basic_stringstream; 12329: 12329: 12329: extern template class basic_stringbuf; 12329: extern template class basic_istringstream; 12329: extern template class basic_ostringstream; 12329: extern template class basic_stringstream; 12329: 12329: 12329: 12329: 12329: } 12329: # 1219 "/usr/include/c++/12/sstream" 2 3 12329: # 59 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/lexical_cast/detail/lcast_char_constants.hpp" 1 3 4 12329: # 23 "/usr/include/boost/lexical_cast/detail/lcast_char_constants.hpp" 3 4 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: namespace detail 12329: { 12329: template < typename Char > 12329: struct lcast_char_constants { 12329: 12329: 12329: static const Char zero = static_cast('0'); 12329: static const Char minus = static_cast('-'); 12329: static const Char plus = static_cast('+'); 12329: static const Char lowercase_e = static_cast('e'); 12329: static const Char capital_e = static_cast('E'); 12329: static const Char c_decimal_separator = static_cast('.'); 12329: }; 12329: } 12329: } 12329: # 62 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 2 3 4 12329: # 1 "/usr/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp" 1 3 4 12329: # 23 "/usr/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp" 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/climits" 1 3 4 12329: # 39 "/usr/include/c++/12/climits" 3 4 12329: 12329: # 40 "/usr/include/c++/12/climits" 3 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 1 3 4 12329: # 43 "/usr/include/c++/12/climits" 2 3 12329: # 27 "/usr/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/c++/12/cstring" 1 3 4 12329: # 39 "/usr/include/c++/12/cstring" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cstring" 3 12329: # 30 "/usr/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp" 2 3 4 12329: # 1 "/usr/include/c++/12/cstdio" 1 3 4 12329: # 39 "/usr/include/c++/12/cstdio" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cstdio" 3 12329: # 31 "/usr/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp" 2 3 4 12329: # 53 "/usr/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp" 3 4 12329: # 1 "/usr/include/boost/noncopyable.hpp" 1 3 4 12329: # 54 "/usr/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp" 2 3 4 12329: 12329: namespace boost 12329: { 12329: namespace detail 12329: { 12329: template 12329: inline 12329: typename boost::make_unsigned::type lcast_to_unsigned(const T value) noexcept { 12329: typedef typename boost::make_unsigned::type result_type; 12329: return value < 0 12329: ? static_cast(0u - static_cast(value)) 12329: : static_cast(value); 12329: } 12329: } 12329: 12329: namespace detail 12329: { 12329: template 12329: class lcast_put_unsigned: boost::noncopyable { 12329: typedef typename Traits::int_type int_type; 12329: typename boost::conditional< 12329: (sizeof(unsigned) > sizeof(T)) 12329: , unsigned 12329: , T 12329: >::type m_value; 12329: CharT* m_finish; 12329: CharT const m_czero; 12329: int_type const m_zero; 12329: 12329: public: 12329: lcast_put_unsigned(const T n_param, CharT* finish) noexcept 12329: : m_value(n_param), m_finish(finish) 12329: , m_czero(lcast_char_constants::zero), m_zero(Traits::to_int_type(m_czero)) 12329: { 12329: 12329: static_assert(!std::numeric_limits::is_signed, "!std::numeric_limits::is_signed"); 12329: 12329: } 12329: 12329: CharT* convert() { 12329: 12329: std::locale loc; 12329: if (loc == std::locale::classic()) { 12329: return main_convert_loop(); 12329: } 12329: 12329: typedef std::numpunct numpunct; 12329: numpunct const& np = std::use_facet< numpunct >(loc); 12329: std::string const grouping = np.grouping(); 12329: std::string::size_type const grouping_size = grouping.size(); 12329: 12329: if (!grouping_size || grouping[0] <= 0) { 12329: return main_convert_loop(); 12329: } 12329: 12329: 12329: 12329: static_assert(std::numeric_limits::digits10 < (0x7f * 2 + 1), "std::numeric_limits::digits10 < CHAR_MAX"); 12329: 12329: CharT const thousands_sep = np.thousands_sep(); 12329: std::string::size_type group = 0; 12329: char last_grp_size = grouping[0]; 12329: char left = last_grp_size; 12329: 12329: do { 12329: if (left == 0) { 12329: ++group; 12329: if (group < grouping_size) { 12329: char const grp_size = grouping[group]; 12329: last_grp_size = (grp_size <= 0 ? static_cast((0x7f * 2 + 1)) : grp_size); 12329: } 12329: 12329: left = last_grp_size; 12329: --m_finish; 12329: Traits::assign(*m_finish, thousands_sep); 12329: } 12329: 12329: --left; 12329: } while (main_convert_iteration()); 12329: 12329: return m_finish; 12329: 12329: 12329: 12329: } 12329: 12329: private: 12329: inline bool main_convert_iteration() noexcept { 12329: --m_finish; 12329: int_type const digit = static_cast(m_value % 10U); 12329: Traits::assign(*m_finish, Traits::to_char_type(m_zero + digit)); 12329: m_value /= 10; 12329: return !!m_value; 12329: } 12329: 12329: inline CharT* main_convert_loop() noexcept { 12329: while (main_convert_iteration()); 12329: return m_finish; 12329: } 12329: }; 12329: } 12329: 12329: namespace detail 12329: { 12329: template 12329: class lcast_ret_unsigned: boost::noncopyable { 12329: bool m_multiplier_overflowed; 12329: T m_multiplier; 12329: T& m_value; 12329: const CharT* const m_begin; 12329: const CharT* m_end; 12329: 12329: public: 12329: lcast_ret_unsigned(T& value, const CharT* const begin, const CharT* end) noexcept 12329: : m_multiplier_overflowed(false), m_multiplier(1), m_value(value), m_begin(begin), m_end(end) 12329: { 12329: 12329: static_assert(!std::numeric_limits::is_signed, "!std::numeric_limits::is_signed"); 12329: 12329: 12329: 12329: 12329: 12329: 12329: static_assert(std::numeric_limits::is_specialized, "std::numeric_limits are not specialized for integral type passed to boost::lexical_cast") 12329: 12329: ; 12329: 12329: } 12329: 12329: inline bool convert() { 12329: CharT const czero = lcast_char_constants::zero; 12329: --m_end; 12329: m_value = static_cast(0); 12329: 12329: if (m_begin > m_end || *m_end < czero || *m_end >= czero + 10) 12329: return false; 12329: m_value = static_cast(*m_end - czero); 12329: --m_end; 12329: 12329: 12329: 12329: 12329: std::locale loc; 12329: if (loc == std::locale::classic()) { 12329: return main_convert_loop(); 12329: } 12329: 12329: typedef std::numpunct numpunct; 12329: numpunct const& np = std::use_facet< numpunct >(loc); 12329: std::string const& grouping = np.grouping(); 12329: std::string::size_type const grouping_size = grouping.size(); 12329: 12329: 12329: 12329: 12329: if (!grouping_size || grouping[0] <= 0) { 12329: return main_convert_loop(); 12329: } 12329: 12329: unsigned char current_grouping = 0; 12329: CharT const thousands_sep = np.thousands_sep(); 12329: char remained = static_cast(grouping[current_grouping] - 1); 12329: 12329: for (;m_end >= m_begin; --m_end) 12329: { 12329: if (remained) { 12329: if (!main_convert_iteration()) { 12329: return false; 12329: } 12329: --remained; 12329: } else { 12329: if ( !Traits::eq(*m_end, thousands_sep) ) 12329: { 12329: # 239 "/usr/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp" 3 4 12329: return main_convert_loop(); 12329: } else { 12329: if (m_begin == m_end) return false; 12329: if (current_grouping < grouping_size - 1) ++current_grouping; 12329: remained = grouping[current_grouping]; 12329: } 12329: } 12329: } 12329: 12329: return true; 12329: 12329: } 12329: 12329: private: 12329: 12329: 12329: inline bool main_convert_iteration() noexcept { 12329: CharT const czero = lcast_char_constants::zero; 12329: T const maxv = (std::numeric_limits::max)(); 12329: 12329: m_multiplier_overflowed = m_multiplier_overflowed || (maxv/10 < m_multiplier); 12329: m_multiplier = static_cast(m_multiplier * 10); 12329: 12329: T const dig_value = static_cast(*m_end - czero); 12329: T const new_sub_value = static_cast(m_multiplier * dig_value); 12329: 12329: 12329: 12329: if (*m_end < czero || *m_end >= czero + 10 12329: || (dig_value && ( 12329: m_multiplier_overflowed 12329: || static_cast(maxv / dig_value) < m_multiplier 12329: || static_cast(maxv - new_sub_value) < m_value 12329: )) 12329: ) return false; 12329: 12329: m_value = static_cast(m_value + new_sub_value); 12329: 12329: return true; 12329: } 12329: 12329: bool main_convert_loop() noexcept { 12329: for ( ; m_end >= m_begin; --m_end) { 12329: if (!main_convert_iteration()) { 12329: return false; 12329: } 12329: } 12329: 12329: return true; 12329: } 12329: }; 12329: } 12329: } 12329: # 63 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 2 3 4 12329: # 1 "/usr/include/boost/lexical_cast/detail/inf_nan.hpp" 1 3 4 12329: # 23 "/usr/include/boost/lexical_cast/detail/inf_nan.hpp" 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/cstring" 1 3 4 12329: # 39 "/usr/include/c++/12/cstring" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cstring" 3 12329: # 32 "/usr/include/boost/lexical_cast/detail/inf_nan.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/math/special_functions/sign.hpp" 1 3 4 12329: # 16 "/usr/include/boost/math/special_functions/sign.hpp" 3 4 12329: # 1 "/usr/include/boost/math/tools/config.hpp" 1 3 4 12329: # 14 "/usr/include/boost/math/tools/config.hpp" 3 4 12329: # 1 "/usr/include/boost/predef/architecture/x86.h" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/predef/architecture/x86/32.h" 1 3 4 12329: # 11 "/usr/include/boost/predef/architecture/x86/32.h" 3 4 12329: # 1 "/usr/include/boost/predef/version_number.h" 1 3 4 12329: # 12 "/usr/include/boost/predef/architecture/x86/32.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/make.h" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/predef/detail/test.h" 1 3 4 12329: # 8 "/usr/include/boost/predef/make.h" 2 3 4 12329: # 13 "/usr/include/boost/predef/architecture/x86/32.h" 2 3 4 12329: # 83 "/usr/include/boost/predef/architecture/x86/32.h" 3 4 12329: # 1 "/usr/include/boost/predef/architecture/x86.h" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/predef/architecture/x86/32.h" 1 3 4 12329: # 88 "/usr/include/boost/predef/architecture/x86/32.h" 3 4 12329: 12329: # 9 "/usr/include/boost/predef/architecture/x86.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/architecture/x86/64.h" 1 3 4 12329: # 12 "/usr/include/boost/predef/architecture/x86/64.h" 3 4 12329: # 1 "/usr/include/boost/predef/make.h" 1 3 4 12329: # 13 "/usr/include/boost/predef/architecture/x86/64.h" 2 3 4 12329: # 46 "/usr/include/boost/predef/architecture/x86/64.h" 3 4 12329: # 1 "/usr/include/boost/predef/architecture/x86.h" 1 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/predef/architecture/x86/32.h" 1 3 4 12329: # 88 "/usr/include/boost/predef/architecture/x86/32.h" 3 4 12329: 12329: # 9 "/usr/include/boost/predef/architecture/x86.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/architecture/x86/64.h" 1 3 4 12329: # 51 "/usr/include/boost/predef/architecture/x86/64.h" 3 4 12329: 12329: # 10 "/usr/include/boost/predef/architecture/x86.h" 2 3 4 12329: # 38 "/usr/include/boost/predef/architecture/x86.h" 3 4 12329: 12329: # 47 "/usr/include/boost/predef/architecture/x86/64.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: # 10 "/usr/include/boost/predef/architecture/x86.h" 2 3 4 12329: # 38 "/usr/include/boost/predef/architecture/x86.h" 3 4 12329: 12329: # 84 "/usr/include/boost/predef/architecture/x86/32.h" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: # 9 "/usr/include/boost/predef/architecture/x86.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/architecture/x86/64.h" 1 3 4 12329: # 51 "/usr/include/boost/predef/architecture/x86/64.h" 3 4 12329: 12329: # 10 "/usr/include/boost/predef/architecture/x86.h" 2 3 4 12329: # 38 "/usr/include/boost/predef/architecture/x86.h" 3 4 12329: 12329: # 15 "/usr/include/boost/math/tools/config.hpp" 2 3 4 12329: # 1 "/usr/include/boost/cstdint.hpp" 1 3 4 12329: # 16 "/usr/include/boost/math/tools/config.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/climits" 1 3 4 12329: # 39 "/usr/include/c++/12/climits" 3 4 12329: 12329: # 40 "/usr/include/c++/12/climits" 3 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 1 3 4 12329: # 43 "/usr/include/c++/12/climits" 2 3 12329: # 21 "/usr/include/boost/math/tools/config.hpp" 2 3 4 12329: # 1 "/usr/include/c++/12/cfloat" 1 3 4 12329: # 39 "/usr/include/c++/12/cfloat" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cfloat" 3 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/float.h" 1 3 4 12329: # 43 "/usr/include/c++/12/cfloat" 2 3 12329: # 22 "/usr/include/boost/math/tools/config.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/math/tools/user.hpp" 1 3 4 12329: # 30 "/usr/include/boost/math/tools/config.hpp" 2 3 4 12329: # 356 "/usr/include/boost/math/tools/config.hpp" 3 4 12329: namespace boost{ namespace math{ 12329: namespace tools 12329: { 12329: 12329: template 12329: inline T max (T a, T b, T c) noexcept(std::is_floating_point::value) 12329: { 12329: return (std::max)((std::max)(a, b), c); 12329: } 12329: 12329: template 12329: inline T max (T a, T b, T c, T d) noexcept(std::is_floating_point::value) 12329: { 12329: return (std::max)((std::max)(a, b), (std::max)(c, d)); 12329: } 12329: 12329: } 12329: 12329: template 12329: void suppress_unused_variable_warning(const T&) noexcept(std::is_floating_point::value) 12329: { 12329: } 12329: 12329: namespace detail{ 12329: 12329: template 12329: struct is_integer_for_rounding 12329: { 12329: static const bool value = boost::is_integral::value 12329: 12329: || (std::numeric_limits::is_specialized && std::numeric_limits::is_integer) 12329: 12329: ; 12329: }; 12329: 12329: } 12329: 12329: }} 12329: # 17 "/usr/include/boost/math/special_functions/sign.hpp" 2 3 4 12329: # 1 "/usr/include/boost/math/special_functions/math_fwd.hpp" 1 3 4 12329: # 27 "/usr/include/boost/math/special_functions/math_fwd.hpp" 3 4 12329: # 1 "/usr/include/boost/math/special_functions/detail/round_fwd.hpp" 1 3 4 12329: # 12 "/usr/include/boost/math/special_functions/detail/round_fwd.hpp" 3 4 12329: # 1 "/usr/include/boost/math/tools/promotion.hpp" 1 3 4 12329: # 42 "/usr/include/boost/math/tools/promotion.hpp" 3 4 12329: namespace boost 12329: { 12329: namespace math 12329: { 12329: namespace tools 12329: { 12329: # 68 "/usr/include/boost/math/tools/promotion.hpp" 3 4 12329: template 12329: struct promote_arg 12329: { 12329: typedef typename mpl::if_, double, T>::type type; 12329: }; 12329: 12329: 12329: template <> struct promote_arg { typedef float type; }; 12329: template <> struct promote_arg{ typedef double type; }; 12329: template <> struct promote_arg { typedef long double type; }; 12329: template <> struct promote_arg { typedef double type; }; 12329: 12329: template 12329: struct promote_args_2 12329: { 12329: 12329: typedef typename promote_arg::type T1P; 12329: typedef typename promote_arg::type T2P; 12329: 12329: typedef typename mpl::if_c< 12329: is_floating_point::value && is_floating_point::value, 12329: 12329: 12329: 12329: 12329: typename mpl::if_c::value || is_same::value, 12329: long double, 12329: typename mpl::if_c::value || is_same::value, 12329: double, 12329: float 12329: >::type 12329: 12329: 12329: 12329: >::type, 12329: 12329: typename mpl::if_c::value && ::boost::is_convertible::value, T2P, T1P>::type>::type type; 12329: }; 12329: 12329: 12329: template <> struct promote_args_2 { typedef float type; }; 12329: template <> struct promote_args_2{ typedef double type; }; 12329: template <> struct promote_args_2 { typedef long double type; }; 12329: template <> struct promote_args_2 { typedef double type; }; 12329: template <> struct promote_args_2 { typedef double type; }; 12329: template <> struct promote_args_2 { typedef double type; }; 12329: template <> struct promote_args_2 { typedef double type; }; 12329: template <> struct promote_args_2 { typedef double type; }; 12329: template <> struct promote_args_2 { typedef long double type; }; 12329: template <> struct promote_args_2 { typedef long double type; }; 12329: template <> struct promote_args_2 { typedef double type; }; 12329: template <> struct promote_args_2 { typedef double type; }; 12329: template <> struct promote_args_2 { typedef long double type; }; 12329: template <> struct promote_args_2 { typedef long double type; }; 12329: template <> struct promote_args_2 { typedef long double type; }; 12329: template <> struct promote_args_2 { typedef long double type; }; 12329: 12329: template 12329: struct promote_args 12329: { 12329: typedef typename promote_args_2< 12329: typename remove_cv::type, 12329: typename promote_args_2< 12329: typename remove_cv::type, 12329: typename promote_args_2< 12329: typename remove_cv::type, 12329: typename promote_args_2< 12329: typename remove_cv::type, 12329: typename promote_args_2< 12329: typename remove_cv::type, typename remove_cv::type 12329: >::type 12329: >::type 12329: >::type 12329: >::type 12329: >::type type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct promote_args_permissive 12329: { 12329: typedef typename promote_args_2< 12329: typename remove_cv::type, 12329: typename promote_args_2< 12329: typename remove_cv::type, 12329: typename promote_args_2< 12329: typename remove_cv::type, 12329: typename promote_args_2< 12329: typename remove_cv::type, 12329: typename promote_args_2< 12329: typename remove_cv::type, typename remove_cv::type 12329: >::type 12329: >::type 12329: >::type 12329: >::type 12329: >::type type; 12329: }; 12329: 12329: } 12329: } 12329: } 12329: # 13 "/usr/include/boost/math/special_functions/detail/round_fwd.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: namespace math 12329: { 12329: 12329: template 12329: typename tools::promote_args::type trunc(const T& v, const Policy& pol); 12329: template 12329: typename tools::promote_args::type trunc(const T& v); 12329: template 12329: int itrunc(const T& v, const Policy& pol); 12329: template 12329: int itrunc(const T& v); 12329: template 12329: long ltrunc(const T& v, const Policy& pol); 12329: template 12329: long ltrunc(const T& v); 12329: 12329: template 12329: boost::long_long_type lltrunc(const T& v, const Policy& pol); 12329: template 12329: boost::long_long_type lltrunc(const T& v); 12329: 12329: template 12329: typename tools::promote_args::type round(const T& v, const Policy& pol); 12329: template 12329: typename tools::promote_args::type round(const T& v); 12329: template 12329: int iround(const T& v, const Policy& pol); 12329: template 12329: int iround(const T& v); 12329: template 12329: long lround(const T& v, const Policy& pol); 12329: template 12329: long lround(const T& v); 12329: 12329: template 12329: boost::long_long_type llround(const T& v, const Policy& pol); 12329: template 12329: boost::long_long_type llround(const T& v); 12329: 12329: template 12329: T modf(const T& v, T* ipart, const Policy& pol); 12329: template 12329: T modf(const T& v, T* ipart); 12329: template 12329: T modf(const T& v, int* ipart, const Policy& pol); 12329: template 12329: T modf(const T& v, int* ipart); 12329: template 12329: T modf(const T& v, long* ipart, const Policy& pol); 12329: template 12329: T modf(const T& v, long* ipart); 12329: 12329: template 12329: T modf(const T& v, boost::long_long_type* ipart, const Policy& pol); 12329: template 12329: T modf(const T& v, boost::long_long_type* ipart); 12329: 12329: 12329: } 12329: } 12329: # 28 "/usr/include/boost/math/special_functions/math_fwd.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/math/policies/policy.hpp" 1 3 4 12329: # 9 "/usr/include/boost/math/policies/policy.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/list.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/list.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/limits/list.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/list.hpp" 2 3 4 12329: # 36 "/usr/include/boost/mpl/list.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/list/list20.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/list/list20.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/list/list10.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/list/list10.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/list/list0.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/list/list0.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/long.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/long.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/long_fwd.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/long_fwd.hpp" 3 4 12329: namespace mpl_ { 12329: 12329: template< long N > struct long_; 12329: 12329: } 12329: namespace boost { namespace mpl { using ::mpl_::long_; } } 12329: # 18 "/usr/include/boost/mpl/long.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 1 3 4 12329: # 40 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 12329: namespace mpl_ { 12329: 12329: template< long N > 12329: struct long_ 12329: { 12329: static const long value = N; 12329: 12329: 12329: 12329: 12329: 12329: typedef long_ type; 12329: 12329: typedef long value_type; 12329: typedef integral_c_tag tag; 12329: # 72 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4 12329: typedef mpl_::long_< static_cast((value + 1)) > next; 12329: typedef mpl_::long_< static_cast((value - 1)) > prior; 12329: 12329: 12329: 12329: 12329: 12329: 12329: constexpr operator long() const { return static_cast(this->value); } 12329: }; 12329: 12329: 12329: template< long N > 12329: long const mpl_::long_< N >::value; 12329: 12329: 12329: } 12329: # 21 "/usr/include/boost/mpl/long.hpp" 2 3 4 12329: # 18 "/usr/include/boost/mpl/list/list0.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/list/aux_/push_front.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/list/aux_/push_front.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/push_front_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/push_front_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct push_front_impl; 12329: template< typename Sequence, typename T > struct push_front; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/list/aux_/push_front.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/list/aux_/item.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/list/aux_/item.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/tag.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/list/aux_/tag.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: struct list_tag; 12329: struct l_iter_tag; 12329: 12329: }}} 12329: # 19 "/usr/include/boost/mpl/list/aux_/item.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Size 12329: , typename T 12329: , typename Next 12329: > 12329: struct l_item 12329: { 12329: 12329: 12329: 12329: 12329: typedef aux::list_tag tag; 12329: typedef l_item type; 12329: 12329: typedef Size size; 12329: typedef T item; 12329: typedef Next next; 12329: }; 12329: 12329: struct l_end 12329: { 12329: 12329: 12329: 12329: typedef aux::list_tag tag; 12329: typedef l_end type; 12329: typedef long_<0> size; 12329: }; 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/list/aux_/push_front.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct push_front_impl< aux::list_tag > 12329: { 12329: template< typename List, typename T > struct apply 12329: { 12329: typedef l_item< 12329: typename next::type 12329: , T 12329: , typename List::type 12329: > type; 12329: }; 12329: }; 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/list/list0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/pop_front.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/list/aux_/pop_front.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/pop_front_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/pop_front_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct pop_front_impl; 12329: template< typename Sequence > struct pop_front; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/list/aux_/pop_front.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct pop_front_impl< aux::list_tag > 12329: { 12329: template< typename List > struct apply 12329: { 12329: typedef typename mpl::next::type type; 12329: }; 12329: }; 12329: 12329: }} 12329: # 21 "/usr/include/boost/mpl/list/list0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/push_back.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/list/aux_/push_back.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/push_back_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/push_back_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct push_back_impl; 12329: template< typename Sequence, typename T > struct push_back; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/list/aux_/push_back.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct has_push_back_impl; 12329: 12329: template<> 12329: struct has_push_back_impl< aux::list_tag > 12329: { 12329: template< typename Seq > struct apply 12329: : false_ 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 22 "/usr/include/boost/mpl/list/list0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/front.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/list/aux_/front.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/front_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/front_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct front_impl; 12329: template< typename Sequence > struct front; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/list/aux_/front.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct front_impl< aux::list_tag > 12329: { 12329: template< typename List > struct apply 12329: { 12329: typedef typename List::item type; 12329: }; 12329: }; 12329: 12329: }} 12329: # 23 "/usr/include/boost/mpl/list/list0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/clear.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/list/aux_/clear.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/clear_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/clear_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct clear_impl; 12329: template< typename Sequence > struct clear; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/list/aux_/clear.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct clear_impl< aux::list_tag > 12329: { 12329: template< typename List > struct apply 12329: { 12329: typedef l_end type; 12329: }; 12329: }; 12329: 12329: }} 12329: # 24 "/usr/include/boost/mpl/list/list0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/O1_size.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/list/aux_/O1_size.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/O1_size_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/O1_size_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct O1_size_impl; 12329: template< typename Sequence > struct O1_size; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/list/aux_/O1_size.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct O1_size_impl< aux::list_tag > 12329: { 12329: template< typename List > struct apply 12329: : List::size 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 25 "/usr/include/boost/mpl/list/list0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/size.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/list/aux_/size.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/size_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/size_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct size_impl; 12329: template< typename Sequence > struct size; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/list/aux_/size.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct size_impl< aux::list_tag > 12329: { 12329: template< typename List > struct apply 12329: : List::size 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 26 "/usr/include/boost/mpl/list/list0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/empty.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/list/aux_/empty.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/empty_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/empty_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct empty_impl; 12329: template< typename Sequence > struct empty; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/list/aux_/empty.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct empty_impl< aux::list_tag > 12329: { 12329: template< typename List > struct apply 12329: : not_ 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 27 "/usr/include/boost/mpl/list/list0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/begin_end.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/list/aux_/begin_end.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/begin_end_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/begin_end_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct begin_impl; 12329: template< typename Tag > struct end_impl; 12329: 12329: template< typename Sequence > struct begin; 12329: template< typename Sequence > struct end; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/list/aux_/begin_end.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/iterator.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/list/aux_/iterator.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/iterator_tags.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/iterator_tags.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: struct forward_iterator_tag : int_<0> { typedef forward_iterator_tag type; }; 12329: struct bidirectional_iterator_tag : int_<1> { typedef bidirectional_iterator_tag type; }; 12329: struct random_access_iterator_tag : int_<2> { typedef random_access_iterator_tag type; }; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/list/aux_/iterator.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/deref.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/deref.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/msvc_type.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/aux_/msvc_type.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: # 48 "/usr/include/boost/mpl/aux_/msvc_type.hpp" 3 4 12329: template< typename T > struct msvc_type 12329: { 12329: typedef typename T::type type; 12329: }; 12329: 12329: template<> struct msvc_type 12329: { 12329: typedef int type; 12329: }; 12329: 12329: 12329: 12329: }}} 12329: # 18 "/usr/include/boost/mpl/deref.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Iterator = na 12329: > 12329: struct deref 12329: { 12329: 12329: typedef typename Iterator::type type; 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template<> struct deref< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : deref< T1 > { }; }; template< typename Tag > struct lambda< deref< na > , Tag , int_<-1> > { typedef false_ is_le; typedef deref< na > result_; typedef deref< na > type; }; namespace aux { template< typename T1 > struct template_arity< deref< T1 > > : int_<1> { }; template<> struct template_arity< deref< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/list/aux_/iterator.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/lambda_spec.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/list/aux_/iterator.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template< typename Node > 12329: struct l_iter 12329: { 12329: typedef aux::l_iter_tag tag; 12329: typedef forward_iterator_tag category; 12329: }; 12329: 12329: template< typename Node > 12329: struct deref< l_iter > 12329: { 12329: typedef typename Node::item type; 12329: }; 12329: 12329: template< typename Node > 12329: struct next< l_iter > 12329: { 12329: typedef l_iter< typename Node::next > type; 12329: }; 12329: # 62 "/usr/include/boost/mpl/list/aux_/iterator.hpp" 3 4 12329: template<> struct l_iter 12329: { 12329: typedef aux::l_iter_tag tag; 12329: typedef forward_iterator_tag category; 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< typename T1 , typename Tag > struct lambda< l_iter< T1 > , Tag , int_<1> > { typedef false_ is_le; typedef l_iter< T1 > result_; typedef result_ type; }; 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/list/aux_/begin_end.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct begin_impl< aux::list_tag > 12329: { 12329: template< typename List > struct apply 12329: { 12329: typedef l_iter type; 12329: }; 12329: }; 12329: 12329: template<> 12329: struct end_impl< aux::list_tag > 12329: { 12329: template< typename > struct apply 12329: { 12329: typedef l_iter type; 12329: }; 12329: }; 12329: 12329: }} 12329: # 28 "/usr/include/boost/mpl/list/list0.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Dummy = na > struct list0; 12329: 12329: template<> struct list0 12329: : l_end 12329: { 12329: typedef l_end type; 12329: }; 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/list/list10.hpp" 2 3 4 12329: # 27 "/usr/include/boost/mpl/list/list10.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/include_preprocessed.hpp" 1 3 4 12329: # 30 "/usr/include/boost/mpl/list/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/preprocessed/plain/list10.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/list/aux_/preprocessed/plain/list10.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename T0 12329: > 12329: struct list1 12329: : l_item< 12329: long_<1> 12329: , T0 12329: , l_end 12329: > 12329: { 12329: typedef list1 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1 12329: > 12329: struct list2 12329: : l_item< 12329: long_<2> 12329: , T0 12329: , list1 12329: > 12329: { 12329: typedef list2 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2 12329: > 12329: struct list3 12329: : l_item< 12329: long_<3> 12329: , T0 12329: , list2< T1,T2 > 12329: > 12329: { 12329: typedef list3 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3 12329: > 12329: struct list4 12329: : l_item< 12329: long_<4> 12329: , T0 12329: , list3< T1,T2,T3 > 12329: > 12329: { 12329: typedef list4 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: > 12329: struct list5 12329: : l_item< 12329: long_<5> 12329: , T0 12329: , list4< T1,T2,T3,T4 > 12329: > 12329: { 12329: typedef list5 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: > 12329: struct list6 12329: : l_item< 12329: long_<6> 12329: , T0 12329: , list5< T1,T2,T3,T4,T5 > 12329: > 12329: { 12329: typedef list6 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6 12329: > 12329: struct list7 12329: : l_item< 12329: long_<7> 12329: , T0 12329: , list6< T1,T2,T3,T4,T5,T6 > 12329: > 12329: { 12329: typedef list7 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7 12329: > 12329: struct list8 12329: : l_item< 12329: long_<8> 12329: , T0 12329: , list7< T1,T2,T3,T4,T5,T6,T7 > 12329: > 12329: { 12329: typedef list8 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8 12329: > 12329: struct list9 12329: : l_item< 12329: long_<9> 12329: , T0 12329: , list8< T1,T2,T3,T4,T5,T6,T7,T8 > 12329: > 12329: { 12329: typedef list9 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: > 12329: struct list10 12329: : l_item< 12329: long_<10> 12329: , T0 12329: , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > 12329: > 12329: { 12329: typedef list10 type; 12329: }; 12329: 12329: }} 12329: # 31 "/usr/include/boost/mpl/list/aux_/include_preprocessed.hpp" 2 3 4 12329: # 28 "/usr/include/boost/mpl/list/list10.hpp" 2 3 4 12329: # 19 "/usr/include/boost/mpl/list/list20.hpp" 2 3 4 12329: # 27 "/usr/include/boost/mpl/list/list20.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/include_preprocessed.hpp" 1 3 4 12329: # 30 "/usr/include/boost/mpl/list/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/list/aux_/preprocessed/plain/list20.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/list/aux_/preprocessed/plain/list20.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10 12329: > 12329: struct list11 12329: : l_item< 12329: long_<11> 12329: , T0 12329: , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > 12329: > 12329: { 12329: typedef list11 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11 12329: > 12329: struct list12 12329: : l_item< 12329: long_<12> 12329: , T0 12329: , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > 12329: > 12329: { 12329: typedef list12 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12 12329: > 12329: struct list13 12329: : l_item< 12329: long_<13> 12329: , T0 12329: , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > 12329: > 12329: { 12329: typedef list13 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13 12329: > 12329: struct list14 12329: : l_item< 12329: long_<14> 12329: , T0 12329: , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > 12329: > 12329: { 12329: typedef list14 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: > 12329: struct list15 12329: : l_item< 12329: long_<15> 12329: , T0 12329: , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > 12329: > 12329: { 12329: typedef list15 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15 12329: > 12329: struct list16 12329: : l_item< 12329: long_<16> 12329: , T0 12329: , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > 12329: > 12329: { 12329: typedef list16 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16 12329: > 12329: struct list17 12329: : l_item< 12329: long_<17> 12329: , T0 12329: , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > 12329: > 12329: { 12329: typedef list17 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16, typename T17 12329: > 12329: struct list18 12329: : l_item< 12329: long_<18> 12329: , T0 12329: , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > 12329: > 12329: { 12329: typedef list18 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16, typename T17, typename T18 12329: > 12329: struct list19 12329: : l_item< 12329: long_<19> 12329: , T0 12329: , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > 12329: > 12329: { 12329: typedef list19 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16, typename T17, typename T18, typename T19 12329: > 12329: struct list20 12329: : l_item< 12329: long_<20> 12329: , T0 12329: , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > 12329: > 12329: { 12329: typedef list20 type; 12329: }; 12329: 12329: }} 12329: # 31 "/usr/include/boost/mpl/list/aux_/include_preprocessed.hpp" 2 3 4 12329: # 28 "/usr/include/boost/mpl/list/list20.hpp" 2 3 4 12329: # 37 "/usr/include/boost/mpl/list.hpp" 2 3 4 12329: # 46 "/usr/include/boost/mpl/list.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/list.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/list.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na 12329: , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na 12329: , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na 12329: , typename T12 = na, typename T13 = na, typename T14 = na 12329: , typename T15 = na, typename T16 = na, typename T17 = na 12329: , typename T18 = na, typename T19 = na 12329: > 12329: struct list; 12329: 12329: template< 12329: 12329: > 12329: struct list< 12329: na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : list0< > 12329: { 12329: typedef list0< >::type type; 12329: }; 12329: 12329: template< 12329: typename T0 12329: > 12329: struct list< 12329: T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : list1 12329: { 12329: typedef typename list1::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1 12329: > 12329: struct list< 12329: T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : list2< T0,T1 > 12329: { 12329: typedef typename list2< T0,T1 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2 12329: > 12329: struct list< 12329: T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : list3< T0,T1,T2 > 12329: { 12329: typedef typename list3< T0,T1,T2 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3 12329: > 12329: struct list< 12329: T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : list4< T0,T1,T2,T3 > 12329: { 12329: typedef typename list4< T0,T1,T2,T3 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : list5< T0,T1,T2,T3,T4 > 12329: { 12329: typedef typename list5< T0,T1,T2,T3,T4 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : list6< T0,T1,T2,T3,T4,T5 > 12329: { 12329: typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : list7< T0,T1,T2,T3,T4,T5,T6 > 12329: { 12329: typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : list8< T0,T1,T2,T3,T4,T5,T6,T7 > 12329: { 12329: typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > 12329: { 12329: typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > 12329: { 12329: typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > 12329: { 12329: typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na 12329: , na, na, na, na 12329: > 12329: : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > 12329: { 12329: typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na 12329: , na, na, na, na 12329: > 12329: : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > 12329: { 12329: typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na 12329: , na, na, na, na 12329: > 12329: : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > 12329: { 12329: typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na 12329: , na, na, na, na 12329: > 12329: : list15< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: > 12329: { 12329: typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, na, na, na, na 12329: > 12329: : list16< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15 12329: > 12329: { 12329: typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16, na, na, na 12329: > 12329: : list17< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16 12329: > 12329: { 12329: typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16, typename T17 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16, T17, na, na 12329: > 12329: : list18< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16, T17 12329: > 12329: { 12329: typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16, typename T17, typename T18 12329: > 12329: struct list< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16, T17, T18, na 12329: > 12329: : list19< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16, T17, T18 12329: > 12329: { 12329: typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16, typename T17, typename T18, typename T19 12329: > 12329: struct list 12329: : list20< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16, T17, T18, T19 12329: > 12329: { 12329: typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 47 "/usr/include/boost/mpl/list.hpp" 2 3 4 12329: # 10 "/usr/include/boost/math/policies/policy.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/contains.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/contains.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/contains_fwd.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/contains_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct contains_impl; 12329: template< typename Sequence, typename T > struct contains; 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/contains.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/sequence_tag.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/sequence_tag.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/sequence_tag_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/sequence_tag_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: struct nested_begin_end_tag; 12329: struct non_sequence_tag; 12329: 12329: template< typename Sequence > struct sequence_tag; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/sequence_tag.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/has_begin.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/has_begin.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_begin { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; 12329: }}} 12329: # 20 "/usr/include/boost/mpl/sequence_tag.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: # 78 "/usr/include/boost/mpl/sequence_tag.hpp" 3 4 12329: namespace aux { 12329: 12329: template< bool has_tag_, bool has_begin_ > 12329: struct sequence_tag_impl 12329: { 12329: 12329: 12329: template< typename Sequence > struct result2_; 12329: }; 12329: # 98 "/usr/include/boost/mpl/sequence_tag.hpp" 3 4 12329: template<> struct sequence_tag_impl { template< typename Sequence > struct result2_ { typedef typename Sequence::tag type; }; }; 12329: template<> struct sequence_tag_impl { template< typename Sequence > struct result2_ { typedef typename Sequence::tag type; }; }; 12329: template<> struct sequence_tag_impl { template< typename Sequence > struct result2_ { typedef nested_begin_end_tag type; }; }; 12329: template<> struct sequence_tag_impl { template< typename Sequence > struct result2_ { typedef non_sequence_tag type; }; }; 12329: 12329: 12329: 12329: } 12329: 12329: template< 12329: typename Sequence = na 12329: > 12329: struct sequence_tag 12329: : aux::sequence_tag_impl< 12329: ::boost::mpl::aux::has_tag::value 12329: , ::boost::mpl::aux::has_begin::value 12329: >::template result2_ 12329: { 12329: }; 12329: 12329: 12329: 12329: template<> struct sequence_tag< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : sequence_tag< T1 > { }; }; template< typename Tag > struct lambda< sequence_tag< na > , Tag , int_<-1> > { typedef false_ is_le; typedef sequence_tag< na > result_; typedef sequence_tag< na > type; }; namespace aux { template< typename T1 > struct template_arity< sequence_tag< T1 > > : int_<1> { }; template<> struct template_arity< sequence_tag< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/contains.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/contains_impl.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/contains_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/begin_end.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/begin_end.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/begin_end_impl.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/begin_end_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/traits_lambda_spec.hpp" 1 3 4 12329: # 24 "/usr/include/boost/mpl/aux_/begin_end_impl.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: namespace aux { 12329: 12329: template< typename Sequence > 12329: struct begin_type 12329: { 12329: typedef typename Sequence::begin type; 12329: }; 12329: template< typename Sequence > 12329: struct end_type 12329: { 12329: typedef typename Sequence::end type; 12329: }; 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template< typename Tag > 12329: struct begin_impl 12329: { 12329: template< typename Sequence > struct apply 12329: { 12329: typedef typename eval_if, 12329: aux::begin_type, void_>::type type; 12329: }; 12329: }; 12329: 12329: template< typename Tag > 12329: struct end_impl 12329: { 12329: template< typename Sequence > struct apply 12329: { 12329: typedef typename eval_if, 12329: aux::end_type, void_>::type type; 12329: }; 12329: }; 12329: # 82 "/usr/include/boost/mpl/aux_/begin_end_impl.hpp" 3 4 12329: template<> struct begin_impl { template< typename Sequence > struct apply { typedef typename Sequence::begin type; }; }; 12329: template<> struct end_impl { template< typename Sequence > struct apply { typedef typename Sequence::end type; }; }; 12329: 12329: 12329: 12329: 12329: template<> struct begin_impl { template< typename Sequence > struct apply { typedef void_ type; }; }; 12329: template<> struct end_impl { template< typename Sequence > struct apply { typedef void_ type; }; }; 12329: template<> struct begin_impl { template< typename Sequence > struct apply { typedef void_ type; }; }; 12329: template<> struct end_impl { template< typename Sequence > struct apply { typedef void_ type; }; }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/begin_end.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: 12329: template< 12329: typename Sequence = na 12329: > 12329: struct begin 12329: { 12329: typedef typename sequence_tag::type tag_; 12329: typedef typename begin_impl< tag_ > 12329: ::template apply< Sequence >::type type; 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename Sequence = na 12329: > 12329: struct end 12329: { 12329: typedef typename sequence_tag::type tag_; 12329: typedef typename end_impl< tag_ > 12329: ::template apply< Sequence >::type type; 12329: 12329: 12329: }; 12329: 12329: template<> struct begin< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : begin< T1 > { }; }; template< typename Tag > struct lambda< begin< na > , Tag , int_<-1> > { typedef false_ is_le; typedef begin< na > result_; typedef begin< na > type; }; namespace aux { template< typename T1 > struct template_arity< begin< T1 > > : int_<1> { }; template<> struct template_arity< begin< na > > : int_<-1> { }; } 12329: template<> struct end< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : end< T1 > { }; }; template< typename Tag > struct lambda< end< na > , Tag , int_<-1> > { typedef false_ is_le; typedef end< na > result_; typedef end< na > type; }; namespace aux { template< typename T1 > struct template_arity< end< T1 > > : int_<1> { }; template<> struct template_arity< end< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/aux_/contains_impl.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/find.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/find.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/find_if.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/find_if.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/find_if_pred.hpp" 1 3 4 12329: # 14 "/usr/include/boost/mpl/aux_/find_if_pred.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/iter_apply.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/aux_/iter_apply.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/iter_apply.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: template< 12329: typename F 12329: , typename Iterator 12329: > 12329: struct iter_apply1 12329: : apply1< F,typename deref::type > 12329: { 12329: }; 12329: 12329: template< 12329: typename F 12329: , typename Iterator1 12329: , typename Iterator2 12329: > 12329: struct iter_apply2 12329: : apply2< 12329: F 12329: , typename deref::type 12329: , typename deref::type 12329: > 12329: { 12329: }; 12329: 12329: }}} 12329: # 15 "/usr/include/boost/mpl/aux_/find_if_pred.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: template< typename Predicate > 12329: struct find_if_pred 12329: { 12329: template< typename Iterator > 12329: struct apply 12329: { 12329: typedef not_< aux::iter_apply1 > type; 12329: }; 12329: }; 12329: 12329: }}} 12329: # 18 "/usr/include/boost/mpl/find_if.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/arg.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/find_if.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/iter_fold_if.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/iter_fold_if.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/logical.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/iter_fold_if.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/pair.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/pair.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename T1 = na 12329: , typename T2 = na 12329: > 12329: struct pair 12329: { 12329: typedef pair type; 12329: typedef T1 first; 12329: typedef T2 second; 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename P = na 12329: > 12329: struct first 12329: { 12329: 12329: typedef typename P::first type; 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename P = na 12329: > 12329: struct second 12329: { 12329: 12329: typedef typename P::second type; 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: 12329: template<> struct pair< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : pair< T1 , T2 > { }; }; template< typename Tag > struct lambda< pair< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef pair< na , na > result_; typedef pair< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< pair< T1 , T2 > > : int_<2> { }; template<> struct template_arity< pair< na , na > > : int_<-1> { }; } 12329: template<> struct first< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : first< T1 > { }; }; template< typename Tag > struct lambda< first< na > , Tag , int_<-1> > { typedef false_ is_le; typedef first< na > result_; typedef first< na > type; }; namespace aux { template< typename T1 > struct template_arity< first< T1 > > : int_<1> { }; template<> struct template_arity< first< na > > : int_<-1> { }; } 12329: template<> struct second< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : second< T1 > { }; }; template< typename Tag > struct lambda< second< na > , Tag , int_<-1> > { typedef false_ is_le; typedef second< na > result_; typedef second< na > type; }; namespace aux { template< typename T1 > struct template_arity< second< T1 > > : int_<1> { }; template<> struct template_arity< second< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 24 "/usr/include/boost/mpl/iter_fold_if.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/apply.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/iter_fold_if.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/iter_fold_if_impl.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/aux_/iter_fold_if_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/iter_fold_if_impl.hpp" 2 3 4 12329: # 32 "/usr/include/boost/mpl/aux_/iter_fold_if_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp" 1 3 4 12329: # 13 "/usr/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: template< typename Iterator, typename State > 12329: struct iter_fold_if_null_step 12329: { 12329: typedef State state; 12329: typedef Iterator iterator; 12329: }; 12329: 12329: template< bool > 12329: struct iter_fold_if_step_impl 12329: { 12329: template< 12329: typename Iterator 12329: , typename State 12329: , typename StateOp 12329: , typename IteratorOp 12329: > 12329: struct result_ 12329: { 12329: typedef typename apply2< StateOp,State,Iterator >::type state; 12329: typedef typename IteratorOp::type iterator; 12329: }; 12329: }; 12329: 12329: template<> 12329: struct iter_fold_if_step_impl 12329: { 12329: template< 12329: typename Iterator 12329: , typename State 12329: , typename StateOp 12329: , typename IteratorOp 12329: > 12329: struct result_ 12329: { 12329: typedef State state; 12329: typedef Iterator iterator; 12329: }; 12329: }; 12329: 12329: template< 12329: typename Iterator 12329: , typename State 12329: , typename ForwardOp 12329: , typename Predicate 12329: > 12329: struct iter_fold_if_forward_step 12329: { 12329: typedef typename apply2< Predicate,State,Iterator >::type not_last; 12329: typedef typename iter_fold_if_step_impl< 12329: not_last::value 12329: >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; 12329: 12329: typedef typename impl_::state state; 12329: typedef typename impl_::iterator iterator; 12329: }; 12329: 12329: template< 12329: typename Iterator 12329: , typename State 12329: , typename BackwardOp 12329: , typename Predicate 12329: > 12329: struct iter_fold_if_backward_step 12329: { 12329: typedef typename apply2< Predicate,State,Iterator >::type not_last; 12329: typedef typename iter_fold_if_step_impl< 12329: not_last::value 12329: >::template result_< Iterator,State,BackwardOp, identity > impl_; 12329: 12329: typedef typename impl_::state state; 12329: typedef typename impl_::iterator iterator; 12329: }; 12329: 12329: template< 12329: typename Iterator 12329: , typename State 12329: , typename ForwardOp 12329: , typename ForwardPredicate 12329: , typename BackwardOp 12329: , typename BackwardPredicate 12329: > 12329: struct iter_fold_if_impl 12329: { 12329: private: 12329: typedef iter_fold_if_null_step< Iterator,State > forward_step0; 12329: typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; 12329: typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; 12329: typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; 12329: typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; 12329: 12329: 12329: typedef typename if_< 12329: typename forward_step4::not_last 12329: , iter_fold_if_impl< 12329: typename forward_step4::iterator 12329: , typename forward_step4::state 12329: , ForwardOp 12329: , ForwardPredicate 12329: , BackwardOp 12329: , BackwardPredicate 12329: > 12329: , iter_fold_if_null_step< 12329: typename forward_step4::iterator 12329: , typename forward_step4::state 12329: > 12329: >::type backward_step4; 12329: 12329: typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; 12329: typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; 12329: typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; 12329: typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; 12329: 12329: 12329: public: 12329: typedef typename backward_step0::state state; 12329: typedef typename backward_step4::iterator iterator; 12329: }; 12329: 12329: }}} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 33 "/usr/include/boost/mpl/aux_/iter_fold_if_impl.hpp" 2 3 4 12329: # 26 "/usr/include/boost/mpl/iter_fold_if.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: namespace aux { 12329: 12329: template< typename Predicate, typename LastIterator > 12329: struct iter_fold_if_pred 12329: { 12329: template< typename State, typename Iterator > struct apply 12329: 12329: : and_< 12329: not_< is_same > 12329: , apply1 12329: > 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: }; 12329: 12329: } 12329: 12329: template< 12329: typename Sequence = na 12329: , typename State = na 12329: , typename ForwardOp = na 12329: , typename ForwardPredicate = na 12329: , typename BackwardOp = na 12329: , typename BackwardPredicate = na 12329: > 12329: struct iter_fold_if 12329: { 12329: 12329: typedef typename begin::type first_; 12329: typedef typename end::type last_; 12329: 12329: typedef typename eval_if< 12329: is_na 12329: , if_< is_na, always, always > 12329: , identity 12329: >::type backward_pred_; 12329: 12329: 12329: 12329: struct result_ : 12329: 12329: 12329: 12329: aux::iter_fold_if_impl< 12329: first_ 12329: , State 12329: , ForwardOp 12329: , protect< aux::iter_fold_if_pred< ForwardPredicate,last_ > > 12329: , BackwardOp 12329: , backward_pred_ 12329: > 12329: 12329: { }; 12329: 12329: 12329: 12329: 12329: public: 12329: 12329: typedef pair< 12329: typename result_::state 12329: , typename result_::iterator 12329: > type; 12329: 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template<> struct iter_fold_if< na , na , na , na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 > struct apply : iter_fold_if< T1 , T2 , T3 , T4 , T5 , T6 > { }; }; template< typename Tag > struct lambda< iter_fold_if< na , na , na , na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef iter_fold_if< na , na , na , na , na , na > result_; typedef iter_fold_if< na , na , na , na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 > struct template_arity< iter_fold_if< T1 , T2 , T3 , T4 , T5 , T6 > > : int_<6> { }; template<> struct template_arity< iter_fold_if< na , na , na , na , na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/find_if.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template< 12329: typename Sequence = na 12329: , typename Predicate = na 12329: > 12329: struct find_if 12329: { 12329: typedef typename iter_fold_if< 12329: Sequence 12329: , void 12329: , mpl::arg<1> 12329: , protect< aux::find_if_pred > 12329: >::type result_; 12329: 12329: typedef typename second::type type; 12329: 12329: 12329: }; 12329: 12329: template<> struct find_if< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : find_if< T1 , T2 > { }; }; template< typename Tag > struct lambda< find_if< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef find_if< na , na > result_; typedef find_if< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< find_if< T1 , T2 > > : int_<2> { }; template<> struct template_arity< find_if< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/find.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/same_as.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/same_as.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename T1 > 12329: struct same_as 12329: { 12329: template< typename T2 > struct apply 12329: 12329: : is_same 12329: { 12329: 12329: 12329: 12329: 12329: }; 12329: }; 12329: 12329: template< typename T1 > 12329: struct not_same_as 12329: { 12329: template< typename T2 > struct apply 12329: 12329: : not_< is_same > 12329: { 12329: 12329: 12329: 12329: 12329: }; 12329: }; 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/find.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Sequence = na 12329: , typename T = na 12329: > 12329: struct find 12329: : find_if< Sequence,same_as > 12329: { 12329: 12329: }; 12329: 12329: template<> struct find< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : find< T1 , T2 > { }; }; template< typename Tag > struct lambda< find< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef find< na , na > result_; typedef find< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< find< T1 , T2 > > : int_<2> { }; template<> struct template_arity< find< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 21 "/usr/include/boost/mpl/aux_/contains_impl.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > 12329: struct contains_impl 12329: { 12329: template< typename Sequence, typename T > struct apply 12329: 12329: : not_< is_same< 12329: typename find::type 12329: , typename end::type 12329: > > 12329: { 12329: # 54 "/usr/include/boost/mpl/aux_/contains_impl.hpp" 3 4 12329: }; 12329: }; 12329: 12329: template<> struct contains_impl {}; 12329: 12329: }} 12329: # 21 "/usr/include/boost/mpl/contains.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Sequence = na 12329: , typename T = na 12329: > 12329: struct contains 12329: : contains_impl< typename sequence_tag::type > 12329: ::template apply< Sequence,T > 12329: { 12329: 12329: }; 12329: 12329: template<> struct contains< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : contains< T1 , T2 > { }; }; template< typename Tag > struct lambda< contains< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef contains< na , na > result_; typedef contains< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< contains< T1 , T2 > > : int_<2> { }; template<> struct template_arity< contains< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 11 "/usr/include/boost/math/policies/policy.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/remove_if.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/remove_if.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/fold.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/fold.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/O1_size.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/O1_size.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/O1_size_impl.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/aux_/O1_size_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/has_size.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/has_size.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: template< typename T, typename fallback_ = boost::mpl::bool_ > struct has_size { struct gcc_3_2_wknd { template< typename U > static boost::mpl::aux::yes_tag test( boost::mpl::aux::type_wrapper const volatile* , boost::mpl::aux::type_wrapper* = 0 ); static boost::mpl::aux::no_tag test(...); }; typedef boost::mpl::aux::type_wrapper t_; static const bool value = sizeof(gcc_3_2_wknd::test(static_cast(0))) == sizeof(boost::mpl::aux::yes_tag); typedef boost::mpl::bool_ type; }; 12329: }}} 12329: # 21 "/usr/include/boost/mpl/aux_/O1_size_impl.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: # 35 "/usr/include/boost/mpl/aux_/O1_size_impl.hpp" 3 4 12329: namespace aux { 12329: template< typename Sequence > struct O1_size_impl 12329: : Sequence::size 12329: { 12329: }; 12329: } 12329: 12329: template< typename Tag > 12329: struct O1_size_impl 12329: { 12329: template< typename Sequence > struct apply 12329: 12329: : if_< 12329: aux::has_size 12329: , aux::O1_size_impl 12329: , long_<-1> 12329: >::type 12329: { 12329: # 69 "/usr/include/boost/mpl/aux_/O1_size_impl.hpp" 3 4 12329: }; 12329: }; 12329: # 85 "/usr/include/boost/mpl/aux_/O1_size_impl.hpp" 3 4 12329: }} 12329: # 20 "/usr/include/boost/mpl/O1_size.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: template< 12329: typename Sequence = na 12329: > 12329: struct O1_size 12329: : O1_size_impl< typename sequence_tag::type > 12329: ::template apply< Sequence > 12329: { 12329: 12329: }; 12329: 12329: template<> struct O1_size< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : O1_size< T1 > { }; }; template< typename Tag > struct lambda< O1_size< na > , Tag , int_<-1> > { typedef false_ is_le; typedef O1_size< na > result_; typedef O1_size< na > type; }; namespace aux { template< typename T1 > struct template_arity< O1_size< T1 > > : int_<1> { }; template<> struct template_arity< O1_size< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/fold.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/fold_impl.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/fold_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/aux_/fold_impl.hpp" 2 3 4 12329: # 34 "/usr/include/boost/mpl/aux_/fold_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: 12329: 12329: template< 12329: int N 12329: , typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct fold_impl; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct fold_impl< 0,First,Last,State,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State state0; 12329: typedef state0 state; 12329: typedef iter0 iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct fold_impl< 1,First,Last,State,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State state0; 12329: typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; 12329: typedef typename mpl::next::type iter1; 12329: 12329: 12329: typedef state1 state; 12329: typedef iter1 iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct fold_impl< 2,First,Last,State,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State state0; 12329: typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; 12329: typedef typename mpl::next::type iter1; 12329: typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; 12329: typedef typename mpl::next::type iter2; 12329: 12329: 12329: typedef state2 state; 12329: typedef iter2 iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct fold_impl< 3,First,Last,State,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State state0; 12329: typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; 12329: typedef typename mpl::next::type iter1; 12329: typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; 12329: typedef typename mpl::next::type iter2; 12329: typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; 12329: typedef typename mpl::next::type iter3; 12329: 12329: 12329: typedef state3 state; 12329: typedef iter3 iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct fold_impl< 4,First,Last,State,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State state0; 12329: typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; 12329: typedef typename mpl::next::type iter1; 12329: typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; 12329: typedef typename mpl::next::type iter2; 12329: typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; 12329: typedef typename mpl::next::type iter3; 12329: typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; 12329: typedef typename mpl::next::type iter4; 12329: 12329: 12329: typedef state4 state; 12329: typedef iter4 iterator; 12329: }; 12329: 12329: template< 12329: int N 12329: , typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct fold_impl 12329: { 12329: typedef fold_impl< 12329: 4 12329: , First 12329: , Last 12329: , State 12329: , ForwardOp 12329: > chunk_; 12329: 12329: typedef fold_impl< 12329: ( (N - 4) < 0 ? 0 : N - 4 ) 12329: , typename chunk_::iterator 12329: , Last 12329: , typename chunk_::state 12329: , ForwardOp 12329: > res_; 12329: 12329: typedef typename res_::state state; 12329: typedef typename res_::iterator iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct fold_impl< -1,First,Last,State,ForwardOp > 12329: : fold_impl< 12329: -1 12329: , typename mpl::next::type 12329: , Last 12329: , typename apply2::type>::type 12329: , ForwardOp 12329: > 12329: { 12329: }; 12329: 12329: template< 12329: typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct fold_impl< -1,Last,Last,State,ForwardOp > 12329: { 12329: typedef State state; 12329: typedef Last iterator; 12329: }; 12329: 12329: }}} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 35 "/usr/include/boost/mpl/aux_/fold_impl.hpp" 2 3 4 12329: # 21 "/usr/include/boost/mpl/fold.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Sequence = na 12329: , typename State = na 12329: , typename ForwardOp = na 12329: > 12329: struct fold 12329: { 12329: typedef typename aux::fold_impl< 12329: ::boost::mpl::O1_size::value 12329: , typename begin::type 12329: , typename end::type 12329: , State 12329: , ForwardOp 12329: >::state type; 12329: 12329: 12329: }; 12329: 12329: template<> struct fold< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : fold< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< fold< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef fold< na , na , na > result_; typedef fold< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< fold< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< fold< na , na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/remove_if.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/reverse_fold.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/reverse_fold.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/arg.hpp" 1 3 4 12329: # 21 "/usr/include/boost/mpl/reverse_fold.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/reverse_fold_impl.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/aux_/reverse_fold_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply.hpp" 1 3 4 12329: # 21 "/usr/include/boost/mpl/aux_/reverse_fold_impl.hpp" 2 3 4 12329: # 35 "/usr/include/boost/mpl/aux_/reverse_fold_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: 12329: 12329: template< 12329: long N 12329: , typename First 12329: , typename Last 12329: , typename State 12329: , typename BackwardOp 12329: , typename ForwardOp 12329: > 12329: struct reverse_fold_impl; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename BackwardOp 12329: , typename ForwardOp 12329: > 12329: struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State fwd_state0; 12329: typedef fwd_state0 bkwd_state0; 12329: typedef bkwd_state0 state; 12329: typedef iter0 iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename BackwardOp 12329: , typename ForwardOp 12329: > 12329: struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State fwd_state0; 12329: typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; 12329: typedef typename mpl::next::type iter1; 12329: 12329: 12329: typedef fwd_state1 bkwd_state1; 12329: typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; 12329: typedef bkwd_state0 state; 12329: typedef iter1 iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename BackwardOp 12329: , typename ForwardOp 12329: > 12329: struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State fwd_state0; 12329: typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; 12329: typedef typename mpl::next::type iter1; 12329: typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; 12329: typedef typename mpl::next::type iter2; 12329: 12329: 12329: typedef fwd_state2 bkwd_state2; 12329: typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; 12329: typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; 12329: 12329: 12329: typedef bkwd_state0 state; 12329: typedef iter2 iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename BackwardOp 12329: , typename ForwardOp 12329: > 12329: struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State fwd_state0; 12329: typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; 12329: typedef typename mpl::next::type iter1; 12329: typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; 12329: typedef typename mpl::next::type iter2; 12329: typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; 12329: typedef typename mpl::next::type iter3; 12329: 12329: 12329: typedef fwd_state3 bkwd_state3; 12329: typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; 12329: typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; 12329: typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; 12329: 12329: 12329: typedef bkwd_state0 state; 12329: typedef iter3 iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename BackwardOp 12329: , typename ForwardOp 12329: > 12329: struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State fwd_state0; 12329: typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; 12329: typedef typename mpl::next::type iter1; 12329: typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; 12329: typedef typename mpl::next::type iter2; 12329: typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; 12329: typedef typename mpl::next::type iter3; 12329: typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; 12329: typedef typename mpl::next::type iter4; 12329: 12329: 12329: typedef fwd_state4 bkwd_state4; 12329: typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; 12329: typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; 12329: typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; 12329: typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; 12329: 12329: 12329: typedef bkwd_state0 state; 12329: typedef iter4 iterator; 12329: }; 12329: 12329: template< 12329: long N 12329: , typename First 12329: , typename Last 12329: , typename State 12329: , typename BackwardOp 12329: , typename ForwardOp 12329: > 12329: struct reverse_fold_impl 12329: { 12329: typedef First iter0; 12329: typedef State fwd_state0; 12329: typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; 12329: typedef typename mpl::next::type iter1; 12329: typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; 12329: typedef typename mpl::next::type iter2; 12329: typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; 12329: typedef typename mpl::next::type iter3; 12329: typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; 12329: typedef typename mpl::next::type iter4; 12329: 12329: 12329: typedef reverse_fold_impl< 12329: ( (N - 4) < 0 ? 0 : N - 4 ) 12329: , iter4 12329: , Last 12329: , fwd_state4 12329: , BackwardOp 12329: , ForwardOp 12329: > nested_chunk; 12329: 12329: typedef typename nested_chunk::state bkwd_state4; 12329: typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; 12329: typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; 12329: typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; 12329: typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; 12329: 12329: 12329: typedef bkwd_state0 state; 12329: typedef typename nested_chunk::iterator iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename BackwardOp 12329: , typename ForwardOp 12329: > 12329: struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > 12329: { 12329: typedef reverse_fold_impl< 12329: -1 12329: , typename mpl::next::type 12329: , Last 12329: , typename apply2::type>::type 12329: , BackwardOp 12329: , ForwardOp 12329: > nested_step; 12329: 12329: typedef typename apply2< 12329: BackwardOp 12329: , typename nested_step::state 12329: , typename deref::type 12329: >::type state; 12329: 12329: typedef typename nested_step::iterator iterator; 12329: }; 12329: 12329: template< 12329: typename Last 12329: , typename State 12329: , typename BackwardOp 12329: , typename ForwardOp 12329: > 12329: struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > 12329: { 12329: typedef State state; 12329: typedef Last iterator; 12329: }; 12329: 12329: }}} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 36 "/usr/include/boost/mpl/aux_/reverse_fold_impl.hpp" 2 3 4 12329: # 22 "/usr/include/boost/mpl/reverse_fold.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Sequence = na 12329: , typename State = na 12329: , typename BackwardOp = na 12329: , typename ForwardOp = arg<1> 12329: > 12329: struct reverse_fold 12329: { 12329: typedef typename aux::reverse_fold_impl< 12329: ::boost::mpl::O1_size::value 12329: , typename begin::type 12329: , typename end::type 12329: , State 12329: , BackwardOp 12329: , ForwardOp 12329: >::state type; 12329: 12329: 12329: }; 12329: 12329: template<> struct reverse_fold< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : reverse_fold< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< reverse_fold< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef reverse_fold< na , na , na > result_; typedef reverse_fold< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< reverse_fold< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< reverse_fold< na , na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/remove_if.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/apply.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/remove_if.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/inserter_algorithm.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/inserter_algorithm.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/back_inserter.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/back_inserter.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/push_back.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/push_back.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/push_back_impl.hpp" 1 3 4 12329: # 26 "/usr/include/boost/mpl/aux_/push_back_impl.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: struct has_push_back_arg {}; 12329: 12329: 12329: 12329: template< typename Tag > 12329: struct push_back_impl 12329: { 12329: template< typename Sequence, typename T > struct apply 12329: { 12329: 12329: 12329: 12329: struct REQUESTED_PUSH_BACK_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST; typedef struct REQUESTED_PUSH_BACK_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST40 : boost::mpl::assert_ { static boost::mpl::failed ************ (REQUESTED_PUSH_BACK_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST::************ assert_arg()) ( Sequence ) { return 0; } } mpl_assert_arg40; enum { mpl_assertion_in_line_40 = sizeof( boost::mpl::assertion_failed<(( boost::is_same< T, has_push_back_arg >::value ))>( mpl_assert_arg40::assert_arg() ) ) } 12329: 12329: 12329: 12329: ; 12329: }; 12329: }; 12329: 12329: template< typename Tag > 12329: struct has_push_back_impl 12329: { 12329: template< typename Seq > struct apply 12329: 12329: : aux::has_type< push_back< Seq, has_push_back_arg > > 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: }; 12329: 12329: template<> struct push_back_impl {}; 12329: template<> struct has_push_back_impl {}; 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/push_back.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Sequence = na 12329: , typename T = na 12329: > 12329: struct push_back 12329: : push_back_impl< typename sequence_tag::type > 12329: ::template apply< Sequence,T > 12329: { 12329: 12329: }; 12329: 12329: 12329: template< 12329: typename Sequence = na 12329: > 12329: struct has_push_back 12329: : has_push_back_impl< typename sequence_tag::type > 12329: ::template apply< Sequence > 12329: { 12329: 12329: }; 12329: 12329: 12329: template<> struct push_back< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : push_back< T1 , T2 > { }; }; template< typename Tag > struct lambda< push_back< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef push_back< na , na > result_; typedef push_back< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< push_back< T1 , T2 > > : int_<2> { }; template<> struct template_arity< push_back< na , na > > : int_<-1> { }; } 12329: template<> struct has_push_back< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : has_push_back< T1 > { }; }; template< typename Tag > struct lambda< has_push_back< na > , Tag , int_<-1> > { typedef false_ is_le; typedef has_push_back< na > result_; typedef has_push_back< na > type; }; namespace aux { template< typename T1 > struct template_arity< has_push_back< T1 > > : int_<1> { }; template<> struct template_arity< has_push_back< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/back_inserter.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/inserter.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/inserter.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Sequence 12329: , typename Operation 12329: > 12329: struct inserter 12329: { 12329: typedef Sequence state; 12329: typedef Operation operation; 12329: }; 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/back_inserter.hpp" 2 3 4 12329: 12329: namespace boost { 12329: namespace mpl { 12329: 12329: template< 12329: typename Sequence 12329: > 12329: struct back_inserter 12329: : inserter< Sequence,push_back<> > 12329: { 12329: }; 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/aux_/inserter_algorithm.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/front_inserter.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/front_inserter.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/push_front.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/push_front.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/push_front_impl.hpp" 1 3 4 12329: # 26 "/usr/include/boost/mpl/aux_/push_front_impl.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: struct has_push_front_arg {}; 12329: 12329: 12329: 12329: 12329: template< typename Tag > 12329: struct push_front_impl 12329: { 12329: template< typename Sequence, typename T > struct apply 12329: { 12329: 12329: 12329: 12329: struct REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST; typedef struct REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST41 : boost::mpl::assert_ { static boost::mpl::failed ************ (REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST::************ assert_arg()) ( Sequence ) { return 0; } } mpl_assert_arg41; enum { mpl_assertion_in_line_41 = sizeof( boost::mpl::assertion_failed<(( boost::is_same< T, has_push_front_arg >::value ))>( mpl_assert_arg41::assert_arg() ) ) } 12329: 12329: 12329: 12329: ; 12329: }; 12329: }; 12329: 12329: template< typename Tag > 12329: struct has_push_front_impl 12329: { 12329: template< typename Seq > struct apply 12329: 12329: : aux::has_type< push_front< Seq, has_push_front_arg > > 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: }; 12329: 12329: template<> struct push_front_impl {}; 12329: template<> struct has_push_front_impl {}; 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/push_front.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Sequence = na 12329: , typename T = na 12329: > 12329: struct push_front 12329: : push_front_impl< typename sequence_tag::type > 12329: ::template apply< Sequence,T > 12329: { 12329: 12329: }; 12329: 12329: 12329: template< 12329: typename Sequence = na 12329: > 12329: struct has_push_front 12329: : has_push_front_impl< typename sequence_tag::type > 12329: ::template apply< Sequence > 12329: { 12329: 12329: }; 12329: 12329: template<> struct push_front< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : push_front< T1 , T2 > { }; }; template< typename Tag > struct lambda< push_front< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef push_front< na , na > result_; typedef push_front< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< push_front< T1 , T2 > > : int_<2> { }; template<> struct template_arity< push_front< na , na > > : int_<-1> { }; } 12329: template<> struct has_push_front< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : has_push_front< T1 > { }; }; template< typename Tag > struct lambda< has_push_front< na > , Tag , int_<-1> > { typedef false_ is_le; typedef has_push_front< na > result_; typedef has_push_front< na > type; }; namespace aux { template< typename T1 > struct template_arity< has_push_front< T1 > > : int_<1> { }; template<> struct template_arity< has_push_front< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/front_inserter.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Sequence 12329: > 12329: struct front_inserter 12329: : inserter< Sequence,push_front<> > 12329: { 12329: }; 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/aux_/inserter_algorithm.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/clear.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/clear.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/clear_impl.hpp" 1 3 4 12329: # 21 "/usr/include/boost/mpl/aux_/clear_impl.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template< typename Tag > 12329: struct clear_impl 12329: { 12329: template< typename Sequence > struct apply; 12329: }; 12329: 12329: template<> struct clear_impl {}; 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/clear.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Sequence = na 12329: > 12329: struct clear 12329: : clear_impl< typename sequence_tag::type > 12329: ::template apply< Sequence > 12329: { 12329: 12329: }; 12329: 12329: template<> struct clear< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : clear< T1 > { }; }; template< typename Tag > struct lambda< clear< na > , Tag , int_<-1> > { typedef false_ is_le; typedef clear< na > result_; typedef clear< na > type; }; namespace aux { template< typename T1 > struct template_arity< clear< T1 > > : int_<1> { }; template<> struct template_arity< clear< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 25 "/usr/include/boost/mpl/aux_/inserter_algorithm.hpp" 2 3 4 12329: # 26 "/usr/include/boost/mpl/remove_if.hpp" 2 3 4 12329: 12329: namespace boost { namespace mpl { 12329: 12329: namespace aux { 12329: 12329: template< typename Pred, typename InsertOp > struct remove_if_helper 12329: { 12329: template< typename Sequence, typename U > struct apply 12329: { 12329: typedef typename eval_if< 12329: typename apply1::type 12329: , identity 12329: , apply2 12329: >::type type; 12329: }; 12329: }; 12329: 12329: template< 12329: typename Sequence 12329: , typename Predicate 12329: , typename Inserter 12329: > 12329: struct remove_if_impl 12329: : fold< 12329: Sequence 12329: , typename Inserter::state 12329: , protect< aux::remove_if_helper< 12329: typename lambda::type 12329: , typename Inserter::operation 12329: > > 12329: > 12329: { 12329: }; 12329: 12329: template< 12329: typename Sequence 12329: , typename Predicate 12329: , typename Inserter 12329: > 12329: struct reverse_remove_if_impl 12329: : reverse_fold< 12329: Sequence 12329: , typename Inserter::state 12329: , protect< aux::remove_if_helper< 12329: typename lambda::type 12329: , typename Inserter::operation 12329: > > 12329: > 12329: { 12329: }; 12329: 12329: } 12329: 12329: template< typename P1 = na , typename P2 = na , typename P3 = na > struct remove_if : aux::remove_if_impl< P1 , P2 , P3> { }; template< typename P1 , typename P2 > struct remove_if< P1 , P2,na > : if_< has_push_back< typename clear::type> , aux::remove_if_impl< P1 , P2 , back_inserter< typename clear::type > > , aux::reverse_remove_if_impl< P1 , P2 , front_inserter< typename clear::type > > >::type { }; template< typename P1 = na , typename P2 = na , typename P3 = na > struct reverse_remove_if : aux::reverse_remove_if_impl< P1 , P2 , P3> { }; template< typename P1 , typename P2 > struct reverse_remove_if< P1 , P2,na > : if_< has_push_back , aux::reverse_remove_if_impl< P1 , P2 , back_inserter< typename clear::type > > , aux::remove_if_impl< P1 , P2 , front_inserter< typename clear::type > > >::type { }; template<> struct remove_if< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : remove_if< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< remove_if< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef remove_if< na , na , na > result_; typedef remove_if< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< remove_if< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< remove_if< na , na , na > > : int_<-1> { }; } template<> struct reverse_remove_if< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : reverse_remove_if< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< reverse_remove_if< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef reverse_remove_if< na , na , na > result_; typedef reverse_remove_if< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< reverse_remove_if< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< reverse_remove_if< na , na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 14 "/usr/include/boost/math/policies/policy.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/vector.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/vector.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/limits/vector.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/vector.hpp" 2 3 4 12329: # 36 "/usr/include/boost/mpl/vector.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/vector/vector20.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/vector/vector20.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/vector/vector10.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/vector/vector10.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/vector/vector0.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/vector/vector0.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/at.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/vector/aux_/at.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/at_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/at_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct at_impl; 12329: template< typename Sequence, typename N > struct at; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/vector/aux_/at.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/tag.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/vector/aux_/tag.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/config/typeof.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/vector/aux_/tag.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: struct v_iter_tag; 12329: 12329: 12329: struct vector_tag; 12329: 12329: 12329: 12329: 12329: }}} 12329: # 19 "/usr/include/boost/mpl/vector/aux_/at.hpp" 2 3 4 12329: # 27 "/usr/include/boost/mpl/vector/aux_/at.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template< typename Vector, long n_ > 12329: struct v_at_impl 12329: { 12329: typedef long_< (Vector::lower_bound_::value + n_) > index_; 12329: typedef __typeof__( Vector::item_(index_()) ) type; 12329: }; 12329: 12329: 12329: template< typename Vector, long n_ > 12329: struct v_at 12329: : aux::wrapped_type< typename v_at_impl::type > 12329: { 12329: }; 12329: 12329: template<> 12329: struct at_impl< aux::vector_tag > 12329: { 12329: template< typename Vector, typename N > struct apply 12329: : v_at< 12329: Vector 12329: , N::value 12329: > 12329: { 12329: }; 12329: }; 12329: # 114 "/usr/include/boost/mpl/vector/aux_/at.hpp" 3 4 12329: }} 12329: # 18 "/usr/include/boost/mpl/vector/vector0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/front.hpp" 1 3 4 12329: # 24 "/usr/include/boost/mpl/vector/aux_/front.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template<> 12329: struct front_impl< aux::vector_tag > 12329: { 12329: template< typename Vector > struct apply 12329: : v_at 12329: { 12329: }; 12329: }; 12329: # 54 "/usr/include/boost/mpl/vector/aux_/front.hpp" 3 4 12329: }} 12329: # 19 "/usr/include/boost/mpl/vector/vector0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/push_front.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/vector/aux_/push_front.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/item.hpp" 1 3 4 12329: # 24 "/usr/include/boost/mpl/vector/aux_/item.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template< 12329: typename T 12329: , typename Base 12329: , int at_front = 0 12329: > 12329: struct v_item 12329: : Base 12329: { 12329: typedef typename Base::upper_bound_ index_; 12329: typedef typename next::type upper_bound_; 12329: typedef typename next::type size; 12329: typedef Base base; 12329: typedef v_item type; 12329: 12329: 12329: 12329: static aux::type_wrapper item_(index_); 12329: using Base::item_; 12329: }; 12329: 12329: template< 12329: typename T 12329: , typename Base 12329: > 12329: struct v_item 12329: : Base 12329: { 12329: typedef typename prior::type index_; 12329: typedef index_ lower_bound_; 12329: typedef typename next::type size; 12329: typedef Base base; 12329: typedef v_item type; 12329: 12329: static aux::type_wrapper item_(index_); 12329: using Base::item_; 12329: }; 12329: 12329: 12329: template< 12329: typename Base 12329: , int at_front 12329: > 12329: struct v_mask 12329: : Base 12329: { 12329: typedef typename prior::type index_; 12329: typedef index_ upper_bound_; 12329: typedef typename prior::type size; 12329: typedef Base base; 12329: typedef v_mask type; 12329: 12329: static aux::type_wrapper item_(index_); 12329: using Base::item_; 12329: }; 12329: 12329: template< 12329: typename Base 12329: > 12329: struct v_mask 12329: : Base 12329: { 12329: typedef typename Base::lower_bound_ index_; 12329: typedef typename next::type lower_bound_; 12329: typedef typename prior::type size; 12329: typedef Base base; 12329: typedef v_mask type; 12329: 12329: static aux::type_wrapper item_(index_); 12329: using Base::item_; 12329: }; 12329: 12329: 12329: 12329: }} 12329: # 23 "/usr/include/boost/mpl/vector/aux_/push_front.hpp" 2 3 4 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct push_front_impl< aux::vector_tag > 12329: { 12329: template< typename Vector, typename T > struct apply 12329: { 12329: typedef v_item type; 12329: }; 12329: }; 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/vector/vector0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/pop_front.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/vector/aux_/pop_front.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct pop_front_impl< aux::vector_tag > 12329: { 12329: template< typename Vector > struct apply 12329: { 12329: typedef v_mask type; 12329: }; 12329: }; 12329: 12329: }} 12329: # 21 "/usr/include/boost/mpl/vector/vector0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/push_back.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/vector/aux_/push_back.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct push_back_impl< aux::vector_tag > 12329: { 12329: template< typename Vector, typename T > struct apply 12329: { 12329: typedef v_item type; 12329: }; 12329: }; 12329: 12329: }} 12329: # 22 "/usr/include/boost/mpl/vector/vector0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/pop_back.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/vector/aux_/pop_back.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/pop_back_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/pop_back_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct pop_back_impl; 12329: template< typename Sequence > struct pop_back; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/vector/aux_/pop_back.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct pop_back_impl< aux::vector_tag > 12329: { 12329: template< typename Vector > struct apply 12329: { 12329: typedef v_mask type; 12329: }; 12329: }; 12329: 12329: }} 12329: # 23 "/usr/include/boost/mpl/vector/vector0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/back.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/vector/aux_/back.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/back_fwd.hpp" 1 3 4 12329: # 17 "/usr/include/boost/mpl/back_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct back_impl; 12329: template< typename Sequence > struct back; 12329: 12329: }} 12329: # 18 "/usr/include/boost/mpl/vector/aux_/back.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template<> 12329: struct back_impl< aux::vector_tag > 12329: { 12329: template< typename Vector > struct apply 12329: : v_at< 12329: Vector 12329: , prior::type::value 12329: > 12329: { 12329: }; 12329: }; 12329: # 57 "/usr/include/boost/mpl/vector/aux_/back.hpp" 3 4 12329: }} 12329: # 24 "/usr/include/boost/mpl/vector/vector0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/clear.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/vector/aux_/clear.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/vector0.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/vector/aux_/vector0.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/iterator.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/vector/aux_/iterator.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/plus.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/plus.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 1 3 4 12329: # 26 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: # 27 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/plus.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/plus.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Tag1 12329: , typename Tag2 12329: > 12329: struct plus_impl 12329: : if_c< 12329: ( Tag1::value 12329: > Tag2::value 12329: ) 12329: 12329: , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > 12329: , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > 12329: >::type 12329: { 12329: }; 12329: 12329: 12329: template<> struct plus_impl< na,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct plus_impl< na,Tag > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct plus_impl< Tag,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename T > struct plus_tag 12329: { 12329: typedef typename T::tag type; 12329: }; 12329: 12329: template< 12329: typename N1 = na 12329: , typename N2 = na 12329: , typename N3 = na, typename N4 = na, typename N5 = na 12329: > 12329: struct plus 12329: : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename N1, typename N2, typename N3, typename N4 12329: > 12329: struct plus< N1,N2,N3,N4,na > 12329: 12329: : plus< plus< plus< N1,N2 >, N3>, N4> 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename N1, typename N2, typename N3 12329: > 12329: struct plus< N1,N2,N3,na,na > 12329: 12329: : plus< plus< N1,N2 >, N3> 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename N1, typename N2 12329: > 12329: struct plus< N1,N2,na,na,na > 12329: : plus_impl< 12329: typename plus_tag::type 12329: , typename plus_tag::type 12329: >::template apply< N1,N2 >::type 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template<> struct plus< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : plus< T1 , T2 > { }; }; template< typename Tag > struct lambda< plus< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef plus< na , na > result_; typedef plus< na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct template_arity< plus< T1 , T2 , T3 , T4 , T5 > > : int_<5> { }; template<> struct template_arity< plus< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: 12329: namespace boost { namespace mpl { 12329: template<> 12329: struct plus_impl< integral_c_tag,integral_c_tag > 12329: { 12329: template< typename N1, typename N2 > struct apply 12329: 12329: : integral_c< 12329: typename aux::largest_int< 12329: typename N1::value_type 12329: , typename N2::value_type 12329: >::type 12329: , ( N1::value 12329: + N2::value 12329: ) 12329: > 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 35 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 2 3 4 12329: # 20 "/usr/include/boost/mpl/plus.hpp" 2 3 4 12329: # 20 "/usr/include/boost/mpl/vector/aux_/iterator.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/minus.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/minus.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 1 3 4 12329: # 26 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: # 27 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/minus.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/minus.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Tag1 12329: , typename Tag2 12329: > 12329: struct minus_impl 12329: : if_c< 12329: ( Tag1::value 12329: > Tag2::value 12329: ) 12329: 12329: , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > 12329: , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > 12329: >::type 12329: { 12329: }; 12329: 12329: 12329: template<> struct minus_impl< na,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct minus_impl< na,Tag > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct minus_impl< Tag,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename T > struct minus_tag 12329: { 12329: typedef typename T::tag type; 12329: }; 12329: 12329: template< 12329: typename N1 = na 12329: , typename N2 = na 12329: , typename N3 = na, typename N4 = na, typename N5 = na 12329: > 12329: struct minus 12329: : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename N1, typename N2, typename N3, typename N4 12329: > 12329: struct minus< N1,N2,N3,N4,na > 12329: 12329: : minus< minus< minus< N1,N2 >, N3>, N4> 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename N1, typename N2, typename N3 12329: > 12329: struct minus< N1,N2,N3,na,na > 12329: 12329: : minus< minus< N1,N2 >, N3> 12329: { 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template< 12329: typename N1, typename N2 12329: > 12329: struct minus< N1,N2,na,na,na > 12329: : minus_impl< 12329: typename minus_tag::type 12329: , typename minus_tag::type 12329: >::template apply< N1,N2 >::type 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: 12329: template<> struct minus< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : minus< T1 , T2 > { }; }; template< typename Tag > struct lambda< minus< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef minus< na , na > result_; typedef minus< na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > struct template_arity< minus< T1 , T2 , T3 , T4 , T5 > > : int_<5> { }; template<> struct template_arity< minus< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: 12329: namespace boost { namespace mpl { 12329: template<> 12329: struct minus_impl< integral_c_tag,integral_c_tag > 12329: { 12329: template< typename N1, typename N2 > struct apply 12329: 12329: : integral_c< 12329: typename aux::largest_int< 12329: typename N1::value_type 12329: , typename N2::value_type 12329: >::type 12329: , ( N1::value 12329: - N2::value 12329: ) 12329: > 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 35 "/usr/include/boost/mpl/aux_/arithmetic_op.hpp" 2 3 4 12329: # 20 "/usr/include/boost/mpl/minus.hpp" 2 3 4 12329: # 21 "/usr/include/boost/mpl/vector/aux_/iterator.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/advance_fwd.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/advance_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template< typename Tag > struct advance_impl; 12329: template< typename Iterator, typename N > struct advance; 12329: 12329: }} 12329: # 22 "/usr/include/boost/mpl/vector/aux_/iterator.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/distance_fwd.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/distance_fwd.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template< typename Tag > struct distance_impl; 12329: template< typename First, typename Last > struct distance; 12329: 12329: }} 12329: # 23 "/usr/include/boost/mpl/vector/aux_/iterator.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/prior.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/vector/aux_/iterator.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Vector 12329: , long n_ 12329: > 12329: struct v_iter 12329: { 12329: typedef aux::v_iter_tag tag; 12329: typedef random_access_iterator_tag category; 12329: typedef typename v_at::type type; 12329: 12329: typedef Vector vector_; 12329: typedef mpl::long_ pos; 12329: # 56 "/usr/include/boost/mpl/vector/aux_/iterator.hpp" 3 4 12329: }; 12329: 12329: 12329: 12329: 12329: template< 12329: typename Vector 12329: , long n_ 12329: > 12329: struct next< v_iter > 12329: { 12329: typedef v_iter type; 12329: }; 12329: 12329: template< 12329: typename Vector 12329: , long n_ 12329: > 12329: struct prior< v_iter > 12329: { 12329: typedef v_iter type; 12329: }; 12329: 12329: template< 12329: typename Vector 12329: , long n_ 12329: , typename Distance 12329: > 12329: struct advance< v_iter,Distance> 12329: { 12329: typedef v_iter< 12329: Vector 12329: , (n_ + Distance::value) 12329: > type; 12329: }; 12329: 12329: template< 12329: typename Vector 12329: , long n_ 12329: , long m_ 12329: > 12329: struct distance< v_iter, v_iter > 12329: : mpl::long_<(m_ - n_)> 12329: { 12329: }; 12329: # 128 "/usr/include/boost/mpl/vector/aux_/iterator.hpp" 3 4 12329: }} 12329: # 23 "/usr/include/boost/mpl/vector/aux_/vector0.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Dummy = na > struct vector0; 12329: 12329: template<> struct vector0 12329: { 12329: 12329: typedef aux::vector_tag tag; 12329: typedef vector0 type; 12329: typedef long_<32768> lower_bound_; 12329: typedef lower_bound_ upper_bound_; 12329: typedef long_<0> size; 12329: 12329: static aux::type_wrapper item_(...); 12329: # 48 "/usr/include/boost/mpl/vector/aux_/vector0.hpp" 3 4 12329: }; 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/vector/aux_/clear.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template<> 12329: struct clear_impl< aux::vector_tag > 12329: { 12329: template< typename Vector > struct apply 12329: { 12329: typedef vector0<> type; 12329: }; 12329: }; 12329: # 53 "/usr/include/boost/mpl/vector/aux_/clear.hpp" 3 4 12329: }} 12329: # 25 "/usr/include/boost/mpl/vector/vector0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/O1_size.hpp" 1 3 4 12329: # 24 "/usr/include/boost/mpl/vector/aux_/O1_size.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template<> 12329: struct O1_size_impl< aux::vector_tag > 12329: { 12329: template< typename Vector > struct apply 12329: : Vector::size 12329: { 12329: }; 12329: }; 12329: # 54 "/usr/include/boost/mpl/vector/aux_/O1_size.hpp" 3 4 12329: }} 12329: # 26 "/usr/include/boost/mpl/vector/vector0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/size.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/vector/aux_/size.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template<> 12329: struct size_impl< aux::vector_tag > 12329: : O1_size_impl< aux::vector_tag > 12329: { 12329: }; 12329: # 47 "/usr/include/boost/mpl/vector/aux_/size.hpp" 3 4 12329: }} 12329: # 27 "/usr/include/boost/mpl/vector/vector0.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/empty.hpp" 1 3 4 12329: # 24 "/usr/include/boost/mpl/vector/aux_/empty.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: template<> 12329: struct empty_impl< aux::vector_tag > 12329: { 12329: template< typename Vector > struct apply 12329: : is_same< 12329: typename Vector::lower_bound_ 12329: , typename Vector::upper_bound_ 12329: > 12329: { 12329: }; 12329: }; 12329: # 66 "/usr/include/boost/mpl/vector/aux_/empty.hpp" 3 4 12329: }} 12329: # 28 "/usr/include/boost/mpl/vector/vector0.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/vector/aux_/begin_end.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/vector/aux_/begin_end.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct begin_impl< aux::vector_tag > 12329: { 12329: template< typename Vector > struct apply 12329: { 12329: typedef v_iter type; 12329: }; 12329: }; 12329: 12329: template<> 12329: struct end_impl< aux::vector_tag > 12329: { 12329: template< typename Vector > struct apply 12329: { 12329: typedef v_iter type; 12329: }; 12329: }; 12329: 12329: }} 12329: # 32 "/usr/include/boost/mpl/vector/vector0.hpp" 2 3 4 12329: # 19 "/usr/include/boost/mpl/vector/vector10.hpp" 2 3 4 12329: # 27 "/usr/include/boost/mpl/vector/vector10.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/include_preprocessed.hpp" 1 3 4 12329: # 49 "/usr/include/boost/mpl/vector/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename T0 12329: > 12329: struct vector1 12329: : v_item< 12329: T0 12329: , vector0< > 12329: > 12329: { 12329: typedef vector1 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1 12329: > 12329: struct vector2 12329: : v_item< 12329: T1 12329: , vector1 12329: > 12329: { 12329: typedef vector2 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2 12329: > 12329: struct vector3 12329: : v_item< 12329: T2 12329: , vector2< T0,T1 > 12329: > 12329: { 12329: typedef vector3 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3 12329: > 12329: struct vector4 12329: : v_item< 12329: T3 12329: , vector3< T0,T1,T2 > 12329: > 12329: { 12329: typedef vector4 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: > 12329: struct vector5 12329: : v_item< 12329: T4 12329: , vector4< T0,T1,T2,T3 > 12329: > 12329: { 12329: typedef vector5 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: > 12329: struct vector6 12329: : v_item< 12329: T5 12329: , vector5< T0,T1,T2,T3,T4 > 12329: > 12329: { 12329: typedef vector6 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6 12329: > 12329: struct vector7 12329: : v_item< 12329: T6 12329: , vector6< T0,T1,T2,T3,T4,T5 > 12329: > 12329: { 12329: typedef vector7 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7 12329: > 12329: struct vector8 12329: : v_item< 12329: T7 12329: , vector7< T0,T1,T2,T3,T4,T5,T6 > 12329: > 12329: { 12329: typedef vector8 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8 12329: > 12329: struct vector9 12329: : v_item< 12329: T8 12329: , vector8< T0,T1,T2,T3,T4,T5,T6,T7 > 12329: > 12329: { 12329: typedef vector9 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: > 12329: struct vector10 12329: : v_item< 12329: T9 12329: , vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > 12329: > 12329: { 12329: typedef vector10 type; 12329: }; 12329: 12329: }} 12329: # 50 "/usr/include/boost/mpl/vector/aux_/include_preprocessed.hpp" 2 3 4 12329: # 28 "/usr/include/boost/mpl/vector/vector10.hpp" 2 3 4 12329: # 19 "/usr/include/boost/mpl/vector/vector20.hpp" 2 3 4 12329: # 27 "/usr/include/boost/mpl/vector/vector20.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/include_preprocessed.hpp" 1 3 4 12329: # 49 "/usr/include/boost/mpl/vector/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10 12329: > 12329: struct vector11 12329: : v_item< 12329: T10 12329: , vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > 12329: > 12329: { 12329: typedef vector11 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11 12329: > 12329: struct vector12 12329: : v_item< 12329: T11 12329: , vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > 12329: > 12329: { 12329: typedef vector12 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12 12329: > 12329: struct vector13 12329: : v_item< 12329: T12 12329: , vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > 12329: > 12329: { 12329: typedef vector13 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13 12329: > 12329: struct vector14 12329: : v_item< 12329: T13 12329: , vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > 12329: > 12329: { 12329: typedef vector14 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: > 12329: struct vector15 12329: : v_item< 12329: T14 12329: , vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > 12329: > 12329: { 12329: typedef vector15 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15 12329: > 12329: struct vector16 12329: : v_item< 12329: T15 12329: , vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > 12329: > 12329: { 12329: typedef vector16 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16 12329: > 12329: struct vector17 12329: : v_item< 12329: T16 12329: , vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > 12329: > 12329: { 12329: typedef vector17 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16, typename T17 12329: > 12329: struct vector18 12329: : v_item< 12329: T17 12329: , vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > 12329: > 12329: { 12329: typedef vector18 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16, typename T17, typename T18 12329: > 12329: struct vector19 12329: : v_item< 12329: T18 12329: , vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > 12329: > 12329: { 12329: typedef vector19 type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16, typename T17, typename T18, typename T19 12329: > 12329: struct vector20 12329: : v_item< 12329: T19 12329: , vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > 12329: > 12329: { 12329: typedef vector20 type; 12329: }; 12329: 12329: }} 12329: # 50 "/usr/include/boost/mpl/vector/aux_/include_preprocessed.hpp" 2 3 4 12329: # 28 "/usr/include/boost/mpl/vector/vector20.hpp" 2 3 4 12329: # 37 "/usr/include/boost/mpl/vector.hpp" 2 3 4 12329: # 46 "/usr/include/boost/mpl/vector.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/vector.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/vector.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na 12329: , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na 12329: , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na 12329: , typename T12 = na, typename T13 = na, typename T14 = na 12329: , typename T15 = na, typename T16 = na, typename T17 = na 12329: , typename T18 = na, typename T19 = na 12329: > 12329: struct vector; 12329: 12329: template< 12329: 12329: > 12329: struct vector< 12329: na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : vector0< > 12329: { 12329: typedef vector0< >::type type; 12329: }; 12329: 12329: template< 12329: typename T0 12329: > 12329: struct vector< 12329: T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : vector1 12329: { 12329: typedef typename vector1::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1 12329: > 12329: struct vector< 12329: T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : vector2< T0,T1 > 12329: { 12329: typedef typename vector2< T0,T1 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2 12329: > 12329: struct vector< 12329: T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : vector3< T0,T1,T2 > 12329: { 12329: typedef typename vector3< T0,T1,T2 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : vector4< T0,T1,T2,T3 > 12329: { 12329: typedef typename vector4< T0,T1,T2,T3 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : vector5< T0,T1,T2,T3,T4 > 12329: { 12329: typedef typename vector5< T0,T1,T2,T3,T4 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : vector6< T0,T1,T2,T3,T4,T5 > 12329: { 12329: typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : vector7< T0,T1,T2,T3,T4,T5,T6 > 12329: { 12329: typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > 12329: { 12329: typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > 12329: { 12329: typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > 12329: { 12329: typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na 12329: , na, na, na 12329: > 12329: : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > 12329: { 12329: typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na 12329: , na, na, na, na 12329: > 12329: : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > 12329: { 12329: typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na 12329: , na, na, na, na 12329: > 12329: : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > 12329: { 12329: typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na 12329: , na, na, na, na 12329: > 12329: : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > 12329: { 12329: typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na 12329: , na, na, na, na 12329: > 12329: : vector15< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: > 12329: { 12329: typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, na, na, na, na 12329: > 12329: : vector16< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15 12329: > 12329: { 12329: typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16, na, na, na 12329: > 12329: : vector17< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16 12329: > 12329: { 12329: typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16, typename T17 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16, T17, na, na 12329: > 12329: : vector18< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16, T17 12329: > 12329: { 12329: typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; 12329: }; 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16, typename T17, typename T18 12329: > 12329: struct vector< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16, T17, T18, na 12329: > 12329: : vector19< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16, T17, T18 12329: > 12329: { 12329: typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename T0, typename T1, typename T2, typename T3, typename T4 12329: , typename T5, typename T6, typename T7, typename T8, typename T9 12329: , typename T10, typename T11, typename T12, typename T13, typename T14 12329: , typename T15, typename T16, typename T17, typename T18, typename T19 12329: > 12329: struct vector 12329: : vector20< 12329: T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 12329: , T15, T16, T17, T18, T19 12329: > 12329: { 12329: typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 47 "/usr/include/boost/mpl/vector.hpp" 2 3 4 12329: # 15 "/usr/include/boost/math/policies/policy.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/at.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/at.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/at_impl.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/aux_/at_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/advance.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/advance.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/negate.hpp" 1 3 4 12329: # 25 "/usr/include/boost/mpl/negate.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< typename Tag > struct negate_impl; 12329: 12329: template< typename T > struct negate_tag 12329: { 12329: typedef typename T::tag type; 12329: }; 12329: 12329: template< 12329: typename N = na 12329: > 12329: struct negate 12329: 12329: : negate_impl< 12329: typename negate_tag::type 12329: >::template apply::type 12329: 12329: 12329: 12329: 12329: 12329: 12329: { 12329: 12329: }; 12329: 12329: template<> struct negate< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : negate< T1 > { }; }; template< typename Tag > struct lambda< negate< na > , Tag , int_<-1> > { typedef false_ is_le; typedef negate< na > result_; typedef negate< na > type; }; namespace aux { template< typename T1 > struct template_arity< negate< T1 > > : int_<1> { }; template<> struct template_arity< negate< na > > : int_<-1> { }; } 12329: # 65 "/usr/include/boost/mpl/negate.hpp" 3 4 12329: template<> 12329: struct negate_impl 12329: { 12329: 12329: 12329: 12329: 12329: template< typename N > struct apply 12329: : integral_c< typename N::value_type, (-N::value) > 12329: 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/advance.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 24 "/usr/include/boost/mpl/advance.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/advance_forward.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/advance_forward.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 24 "/usr/include/boost/mpl/aux_/advance_forward.hpp" 2 3 4 12329: # 32 "/usr/include/boost/mpl/aux_/advance_forward.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: template< long N > struct advance_forward; 12329: template<> 12329: struct advance_forward<0> 12329: { 12329: template< typename Iterator > struct apply 12329: { 12329: typedef Iterator iter0; 12329: typedef iter0 type; 12329: }; 12329: }; 12329: 12329: template<> 12329: struct advance_forward<1> 12329: { 12329: template< typename Iterator > struct apply 12329: { 12329: typedef Iterator iter0; 12329: typedef typename next::type iter1; 12329: typedef iter1 type; 12329: }; 12329: }; 12329: 12329: template<> 12329: struct advance_forward<2> 12329: { 12329: template< typename Iterator > struct apply 12329: { 12329: typedef Iterator iter0; 12329: typedef typename next::type iter1; 12329: typedef typename next::type iter2; 12329: typedef iter2 type; 12329: }; 12329: }; 12329: 12329: template<> 12329: struct advance_forward<3> 12329: { 12329: template< typename Iterator > struct apply 12329: { 12329: typedef Iterator iter0; 12329: typedef typename next::type iter1; 12329: typedef typename next::type iter2; 12329: typedef typename next::type iter3; 12329: typedef iter3 type; 12329: }; 12329: }; 12329: 12329: template<> 12329: struct advance_forward<4> 12329: { 12329: template< typename Iterator > struct apply 12329: { 12329: typedef Iterator iter0; 12329: typedef typename next::type iter1; 12329: typedef typename next::type iter2; 12329: typedef typename next::type iter3; 12329: typedef typename next::type iter4; 12329: typedef iter4 type; 12329: }; 12329: }; 12329: 12329: template< long N > 12329: struct advance_forward 12329: { 12329: template< typename Iterator > struct apply 12329: { 12329: typedef typename apply_wrap1< 12329: advance_forward<4> 12329: , Iterator 12329: >::type chunk_result_; 12329: 12329: typedef typename apply_wrap1< 12329: advance_forward<( 12329: (N - 4) < 0 12329: ? 0 12329: : N - 4 12329: )> 12329: , chunk_result_ 12329: >::type type; 12329: }; 12329: }; 12329: 12329: }}} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 33 "/usr/include/boost/mpl/aux_/advance_forward.hpp" 2 3 4 12329: # 25 "/usr/include/boost/mpl/advance.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/advance_backward.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/advance_backward.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 24 "/usr/include/boost/mpl/aux_/advance_backward.hpp" 2 3 4 12329: # 32 "/usr/include/boost/mpl/aux_/advance_backward.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: template< long N > struct advance_backward; 12329: template<> 12329: struct advance_backward<0> 12329: { 12329: template< typename Iterator > struct apply 12329: { 12329: typedef Iterator iter0; 12329: typedef iter0 type; 12329: }; 12329: }; 12329: 12329: template<> 12329: struct advance_backward<1> 12329: { 12329: template< typename Iterator > struct apply 12329: { 12329: typedef Iterator iter0; 12329: typedef typename prior::type iter1; 12329: typedef iter1 type; 12329: }; 12329: }; 12329: 12329: template<> 12329: struct advance_backward<2> 12329: { 12329: template< typename Iterator > struct apply 12329: { 12329: typedef Iterator iter0; 12329: typedef typename prior::type iter1; 12329: typedef typename prior::type iter2; 12329: typedef iter2 type; 12329: }; 12329: }; 12329: 12329: template<> 12329: struct advance_backward<3> 12329: { 12329: template< typename Iterator > struct apply 12329: { 12329: typedef Iterator iter0; 12329: typedef typename prior::type iter1; 12329: typedef typename prior::type iter2; 12329: typedef typename prior::type iter3; 12329: typedef iter3 type; 12329: }; 12329: }; 12329: 12329: template<> 12329: struct advance_backward<4> 12329: { 12329: template< typename Iterator > struct apply 12329: { 12329: typedef Iterator iter0; 12329: typedef typename prior::type iter1; 12329: typedef typename prior::type iter2; 12329: typedef typename prior::type iter3; 12329: typedef typename prior::type iter4; 12329: typedef iter4 type; 12329: }; 12329: }; 12329: 12329: template< long N > 12329: struct advance_backward 12329: { 12329: template< typename Iterator > struct apply 12329: { 12329: typedef typename apply_wrap1< 12329: advance_backward<4> 12329: , Iterator 12329: >::type chunk_result_; 12329: 12329: typedef typename apply_wrap1< 12329: advance_backward<( 12329: (N - 4) < 0 12329: ? 0 12329: : N - 4 12329: )> 12329: , chunk_result_ 12329: >::type type; 12329: }; 12329: }; 12329: 12329: }}} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 33 "/usr/include/boost/mpl/aux_/advance_backward.hpp" 2 3 4 12329: # 26 "/usr/include/boost/mpl/advance.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: template< typename Tag > 12329: struct advance_impl 12329: { 12329: template< typename Iterator, typename N > struct apply 12329: { 12329: typedef typename less< N,long_<0> >::type backward_; 12329: typedef typename if_< backward_, negate, N >::type offset_; 12329: 12329: typedef typename if_< 12329: backward_ 12329: , aux::advance_backward< offset_::value > 12329: , aux::advance_forward< offset_::value > 12329: >::type f_; 12329: 12329: typedef typename apply_wrap1::type type; 12329: }; 12329: }; 12329: 12329: 12329: template< 12329: typename Iterator = na 12329: , typename N = na 12329: > 12329: struct advance 12329: : advance_impl< typename tag::type > 12329: ::template apply 12329: { 12329: }; 12329: 12329: template< 12329: typename Iterator 12329: , long N 12329: > 12329: struct advance_c 12329: : advance_impl< typename tag::type > 12329: ::template apply > 12329: { 12329: }; 12329: 12329: template<> struct advance< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : advance< T1 , T2 > { }; }; template< typename Tag > struct lambda< advance< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef advance< na , na > result_; typedef advance< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< advance< T1 , T2 > > : int_<2> { }; template<> struct template_arity< advance< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/aux_/at_impl.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: 12329: template< typename Tag > 12329: struct at_impl 12329: { 12329: template< typename Sequence, typename N > struct apply 12329: { 12329: typedef typename advance< 12329: typename begin::type 12329: , N 12329: >::type iter_; 12329: 12329: typedef typename deref::type type; 12329: }; 12329: }; 12329: 12329: template<> struct at_impl {}; 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/at.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Sequence = na 12329: , typename N = na 12329: > 12329: struct at 12329: : at_impl< typename sequence_tag::type > 12329: ::template apply< Sequence,N > 12329: { 12329: 12329: }; 12329: 12329: template< 12329: typename Sequence 12329: , long N 12329: > 12329: struct at_c 12329: : at_impl< typename sequence_tag::type > 12329: ::template apply< Sequence,mpl::long_ > 12329: { 12329: }; 12329: 12329: template<> struct at< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : at< T1 , T2 > { }; }; template< typename Tag > struct lambda< at< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef at< na , na > result_; typedef at< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< at< T1 , T2 > > : int_<2> { }; template<> struct template_arity< at< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 17 "/usr/include/boost/math/policies/policy.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/size.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/size.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/size_impl.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/size_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/distance.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/distance.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/iter_fold.hpp" 1 3 4 12329: # 21 "/usr/include/boost/mpl/iter_fold.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/iter_fold_impl.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/aux_/iter_fold_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/aux_/iter_fold_impl.hpp" 2 3 4 12329: # 33 "/usr/include/boost/mpl/aux_/iter_fold_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp" 3 4 12329: namespace boost { namespace mpl { namespace aux { 12329: 12329: 12329: 12329: template< 12329: int N 12329: , typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct iter_fold_impl; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct iter_fold_impl< 0,First,Last,State,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State state0; 12329: typedef state0 state; 12329: typedef iter0 iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct iter_fold_impl< 1,First,Last,State,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State state0; 12329: typedef typename apply2< ForwardOp,state0,iter0 >::type state1; 12329: typedef typename mpl::next::type iter1; 12329: 12329: 12329: typedef state1 state; 12329: typedef iter1 iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct iter_fold_impl< 2,First,Last,State,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State state0; 12329: typedef typename apply2< ForwardOp,state0,iter0 >::type state1; 12329: typedef typename mpl::next::type iter1; 12329: typedef typename apply2< ForwardOp,state1,iter1 >::type state2; 12329: typedef typename mpl::next::type iter2; 12329: 12329: 12329: typedef state2 state; 12329: typedef iter2 iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct iter_fold_impl< 3,First,Last,State,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State state0; 12329: typedef typename apply2< ForwardOp,state0,iter0 >::type state1; 12329: typedef typename mpl::next::type iter1; 12329: typedef typename apply2< ForwardOp,state1,iter1 >::type state2; 12329: typedef typename mpl::next::type iter2; 12329: typedef typename apply2< ForwardOp,state2,iter2 >::type state3; 12329: typedef typename mpl::next::type iter3; 12329: 12329: 12329: typedef state3 state; 12329: typedef iter3 iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct iter_fold_impl< 4,First,Last,State,ForwardOp > 12329: { 12329: typedef First iter0; 12329: typedef State state0; 12329: typedef typename apply2< ForwardOp,state0,iter0 >::type state1; 12329: typedef typename mpl::next::type iter1; 12329: typedef typename apply2< ForwardOp,state1,iter1 >::type state2; 12329: typedef typename mpl::next::type iter2; 12329: typedef typename apply2< ForwardOp,state2,iter2 >::type state3; 12329: typedef typename mpl::next::type iter3; 12329: typedef typename apply2< ForwardOp,state3,iter3 >::type state4; 12329: typedef typename mpl::next::type iter4; 12329: 12329: 12329: typedef state4 state; 12329: typedef iter4 iterator; 12329: }; 12329: 12329: template< 12329: int N 12329: , typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct iter_fold_impl 12329: { 12329: typedef iter_fold_impl< 12329: 4 12329: , First 12329: , Last 12329: , State 12329: , ForwardOp 12329: > chunk_; 12329: 12329: typedef iter_fold_impl< 12329: ( (N - 4) < 0 ? 0 : N - 4 ) 12329: , typename chunk_::iterator 12329: , Last 12329: , typename chunk_::state 12329: , ForwardOp 12329: > res_; 12329: 12329: typedef typename res_::state state; 12329: typedef typename res_::iterator iterator; 12329: }; 12329: 12329: template< 12329: typename First 12329: , typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct iter_fold_impl< -1,First,Last,State,ForwardOp > 12329: : iter_fold_impl< 12329: -1 12329: , typename mpl::next::type 12329: , Last 12329: , typename apply2< ForwardOp,State,First >::type 12329: , ForwardOp 12329: > 12329: { 12329: }; 12329: 12329: template< 12329: typename Last 12329: , typename State 12329: , typename ForwardOp 12329: > 12329: struct iter_fold_impl< -1,Last,Last,State,ForwardOp > 12329: { 12329: typedef State state; 12329: typedef Last iterator; 12329: }; 12329: 12329: }}} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 34 "/usr/include/boost/mpl/aux_/iter_fold_impl.hpp" 2 3 4 12329: # 22 "/usr/include/boost/mpl/iter_fold.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Sequence = na 12329: , typename State = na 12329: , typename ForwardOp = na 12329: > 12329: struct iter_fold 12329: { 12329: typedef typename aux::iter_fold_impl< 12329: ::boost::mpl::O1_size::value 12329: , typename begin::type 12329: , typename end::type 12329: , State 12329: , typename lambda::type 12329: >::state type; 12329: 12329: 12329: }; 12329: 12329: template<> struct iter_fold< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : iter_fold< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< iter_fold< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef iter_fold< na , na , na > result_; typedef iter_fold< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< iter_fold< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< iter_fold< na , na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 19 "/usr/include/boost/mpl/distance.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/iterator_range.hpp" 1 3 4 12329: # 20 "/usr/include/boost/mpl/iterator_range.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: struct iterator_range_tag; 12329: 12329: template< 12329: typename First = na 12329: , typename Last = na 12329: > 12329: struct iterator_range 12329: { 12329: typedef iterator_range_tag tag; 12329: typedef iterator_range type; 12329: typedef First begin; 12329: typedef Last end; 12329: 12329: 12329: }; 12329: 12329: template<> struct iterator_range< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : iterator_range< T1 , T2 > { }; }; template< typename Tag > struct lambda< iterator_range< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef iterator_range< na , na > result_; typedef iterator_range< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< iterator_range< T1 , T2 > > : int_<2> { }; template<> struct template_arity< iterator_range< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/distance.hpp" 2 3 4 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 24 "/usr/include/boost/mpl/distance.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: template< typename Tag > struct distance_impl 12329: { 12329: template< typename First, typename Last > struct apply 12329: 12329: : aux::msvc_eti_base< typename iter_fold< 12329: iterator_range 12329: , mpl::long_<0> 12329: , next<> 12329: >::type > 12329: { 12329: # 60 "/usr/include/boost/mpl/distance.hpp" 3 4 12329: }; 12329: }; 12329: 12329: template< 12329: typename First = na 12329: , typename Last = na 12329: > 12329: struct distance 12329: : distance_impl< typename tag::type > 12329: ::template apply 12329: { 12329: 12329: }; 12329: 12329: template<> struct distance< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : distance< T1 , T2 > { }; }; template< typename Tag > struct lambda< distance< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef distance< na , na > result_; typedef distance< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< distance< T1 , T2 > > : int_<2> { }; template<> struct template_arity< distance< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/aux_/size_impl.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: 12329: 12329: 12329: template< typename Tag > 12329: struct size_impl 12329: { 12329: template< typename Sequence > struct apply 12329: 12329: : distance< 12329: typename begin::type 12329: , typename end::type 12329: > 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: }; 12329: 12329: template<> struct size_impl {}; 12329: 12329: }} 12329: # 20 "/usr/include/boost/mpl/size.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Sequence = na 12329: > 12329: struct size 12329: : aux::msvc_eti_base< 12329: typename size_impl< typename sequence_tag::type > 12329: ::template apply< Sequence >::type 12329: >::type 12329: { 12329: 12329: }; 12329: 12329: template<> struct size< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : size< T1 > { }; }; template< typename Tag > struct lambda< size< na > , Tag , int_<-1> > { typedef false_ is_le; typedef size< na > result_; typedef size< na > type; }; namespace aux { template< typename T1 > struct template_arity< size< T1 > > : int_<1> { }; template<> struct template_arity< size< na > > : int_<-1> { }; } 12329: 12329: }} 12329: # 18 "/usr/include/boost/math/policies/policy.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/comparison.hpp" 1 3 4 12329: # 18 "/usr/include/boost/mpl/comparison.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/not_equal_to.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/not_equal_to.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 1 3 4 12329: # 27 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: # 28 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Tag1 12329: , typename Tag2 12329: > 12329: struct not_equal_to_impl 12329: : if_c< 12329: ( Tag1::value 12329: > Tag2::value 12329: ) 12329: 12329: , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > 12329: , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > 12329: >::type 12329: { 12329: }; 12329: 12329: 12329: template<> struct not_equal_to_impl< na,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct not_equal_to_impl< na,Tag > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct not_equal_to_impl< Tag,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename T > struct not_equal_to_tag 12329: { 12329: typedef typename T::tag type; 12329: }; 12329: 12329: template< 12329: typename N1 = na 12329: , typename N2 = na 12329: > 12329: struct not_equal_to 12329: 12329: : not_equal_to_impl< 12329: typename not_equal_to_tag::type 12329: , typename not_equal_to_tag::type 12329: >::template apply< N1,N2 >::type 12329: { 12329: 12329: 12329: }; 12329: 12329: template<> struct not_equal_to< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : not_equal_to< T1 , T2 > { }; }; template< typename Tag > struct lambda< not_equal_to< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef not_equal_to< na , na > result_; typedef not_equal_to< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< not_equal_to< T1 , T2 > > : int_<2> { }; template<> struct template_arity< not_equal_to< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct not_equal_to_impl< integral_c_tag,integral_c_tag > 12329: { 12329: template< typename N1, typename N2 > struct apply 12329: 12329: : bool_< ( N1::value != N2::value ) > 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 36 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 12329: # 20 "/usr/include/boost/mpl/not_equal_to.hpp" 2 3 4 12329: # 19 "/usr/include/boost/mpl/comparison.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/mpl/greater.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/greater.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 1 3 4 12329: # 27 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: # 28 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/greater.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/greater.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Tag1 12329: , typename Tag2 12329: > 12329: struct greater_impl 12329: : if_c< 12329: ( Tag1::value 12329: > Tag2::value 12329: ) 12329: 12329: , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > 12329: , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > 12329: >::type 12329: { 12329: }; 12329: 12329: 12329: template<> struct greater_impl< na,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct greater_impl< na,Tag > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct greater_impl< Tag,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename T > struct greater_tag 12329: { 12329: typedef typename T::tag type; 12329: }; 12329: 12329: template< 12329: typename N1 = na 12329: , typename N2 = na 12329: > 12329: struct greater 12329: 12329: : greater_impl< 12329: typename greater_tag::type 12329: , typename greater_tag::type 12329: >::template apply< N1,N2 >::type 12329: { 12329: 12329: 12329: }; 12329: 12329: template<> struct greater< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : greater< T1 , T2 > { }; }; template< typename Tag > struct lambda< greater< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef greater< na , na > result_; typedef greater< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< greater< T1 , T2 > > : int_<2> { }; template<> struct template_arity< greater< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct greater_impl< integral_c_tag,integral_c_tag > 12329: { 12329: template< typename N1, typename N2 > struct apply 12329: 12329: : bool_< ( N1::value > N2::value ) > 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 36 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 12329: # 20 "/usr/include/boost/mpl/greater.hpp" 2 3 4 12329: # 21 "/usr/include/boost/mpl/comparison.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/less_equal.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/less_equal.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 1 3 4 12329: # 27 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: # 28 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Tag1 12329: , typename Tag2 12329: > 12329: struct less_equal_impl 12329: : if_c< 12329: ( Tag1::value 12329: > Tag2::value 12329: ) 12329: 12329: , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > 12329: , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > 12329: >::type 12329: { 12329: }; 12329: 12329: 12329: template<> struct less_equal_impl< na,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct less_equal_impl< na,Tag > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct less_equal_impl< Tag,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename T > struct less_equal_tag 12329: { 12329: typedef typename T::tag type; 12329: }; 12329: 12329: template< 12329: typename N1 = na 12329: , typename N2 = na 12329: > 12329: struct less_equal 12329: 12329: : less_equal_impl< 12329: typename less_equal_tag::type 12329: , typename less_equal_tag::type 12329: >::template apply< N1,N2 >::type 12329: { 12329: 12329: 12329: }; 12329: 12329: template<> struct less_equal< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : less_equal< T1 , T2 > { }; }; template< typename Tag > struct lambda< less_equal< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef less_equal< na , na > result_; typedef less_equal< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< less_equal< T1 , T2 > > : int_<2> { }; template<> struct template_arity< less_equal< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct less_equal_impl< integral_c_tag,integral_c_tag > 12329: { 12329: template< typename N1, typename N2 > struct apply 12329: 12329: : bool_< ( N1::value <= N2::value ) > 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 36 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 12329: # 20 "/usr/include/boost/mpl/less_equal.hpp" 2 3 4 12329: # 22 "/usr/include/boost/mpl/comparison.hpp" 2 3 4 12329: # 1 "/usr/include/boost/mpl/greater_equal.hpp" 1 3 4 12329: # 19 "/usr/include/boost/mpl/greater_equal.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 1 3 4 12329: # 27 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 1 3 4 12329: # 22 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/apply_wrap.hpp" 1 3 4 12329: # 23 "/usr/include/boost/mpl/aux_/numeric_op.hpp" 2 3 4 12329: # 28 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 1 3 4 12329: # 37 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 3 4 12329: # 1 "/usr/include/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp" 1 3 4 12329: # 12 "/usr/include/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp" 3 4 12329: namespace boost { namespace mpl { 12329: 12329: template< 12329: typename Tag1 12329: , typename Tag2 12329: > 12329: struct greater_equal_impl 12329: : if_c< 12329: ( Tag1::value 12329: > Tag2::value 12329: ) 12329: 12329: , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > 12329: , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > 12329: >::type 12329: { 12329: }; 12329: 12329: 12329: template<> struct greater_equal_impl< na,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct greater_equal_impl< na,Tag > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename Tag > struct greater_equal_impl< Tag,na > 12329: { 12329: template< typename U1, typename U2 > struct apply 12329: { 12329: typedef apply type; 12329: static const int value = 0; 12329: }; 12329: }; 12329: 12329: template< typename T > struct greater_equal_tag 12329: { 12329: typedef typename T::tag type; 12329: }; 12329: 12329: template< 12329: typename N1 = na 12329: , typename N2 = na 12329: > 12329: struct greater_equal 12329: 12329: : greater_equal_impl< 12329: typename greater_equal_tag::type 12329: , typename greater_equal_tag::type 12329: >::template apply< N1,N2 >::type 12329: { 12329: 12329: 12329: }; 12329: 12329: template<> struct greater_equal< na , na > { template< typename T1 , typename T2 , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : greater_equal< T1 , T2 > { }; }; template< typename Tag > struct lambda< greater_equal< na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef greater_equal< na , na > result_; typedef greater_equal< na , na > type; }; namespace aux { template< typename T1 , typename T2 > struct template_arity< greater_equal< T1 , T2 > > : int_<2> { }; template<> struct template_arity< greater_equal< na , na > > : int_<-1> { }; } 12329: 12329: }} 12329: 12329: namespace boost { namespace mpl { 12329: 12329: template<> 12329: struct greater_equal_impl< integral_c_tag,integral_c_tag > 12329: { 12329: template< typename N1, typename N2 > struct apply 12329: 12329: : bool_< ( N1::value >= N2::value ) > 12329: { 12329: }; 12329: }; 12329: 12329: }} 12329: # 38 "/usr/include/boost/mpl/aux_/include_preprocessed.hpp" 2 3 4 12329: # 36 "/usr/include/boost/mpl/aux_/comparison_op.hpp" 2 3 4 12329: # 20 "/usr/include/boost/mpl/greater_equal.hpp" 2 3 4 12329: # 23 "/usr/include/boost/mpl/comparison.hpp" 2 3 4 12329: # 19 "/usr/include/boost/math/policies/policy.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/assert.hpp" 1 3 4 12329: # 58 "/usr/include/boost/assert.hpp" 3 4 12329: # 1 "/usr/include/assert.h" 1 3 4 12329: # 59 "/usr/include/boost/assert.hpp" 2 3 4 12329: # 22 "/usr/include/boost/math/policies/policy.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/limits.h" 1 3 4 12329: # 27 "/usr/include/boost/math/policies/policy.hpp" 2 3 4 12329: # 1 "/usr/include/c++/12/stdlib.h" 1 3 4 12329: # 36 "/usr/include/c++/12/stdlib.h" 3 4 12329: # 1 "/usr/include/c++/12/cstdlib" 1 3 4 12329: # 39 "/usr/include/c++/12/cstdlib" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cstdlib" 3 12329: # 37 "/usr/include/c++/12/stdlib.h" 2 3 4 12329: 12329: using std::abort; 12329: using std::atexit; 12329: using std::exit; 12329: 12329: 12329: using std::at_quick_exit; 12329: 12329: 12329: using std::quick_exit; 12329: 12329: 12329: 12329: 12329: using std::div_t; 12329: using std::ldiv_t; 12329: 12329: using std::abs; 12329: using std::atof; 12329: using std::atoi; 12329: using std::atol; 12329: using std::bsearch; 12329: using std::calloc; 12329: using std::div; 12329: using std::free; 12329: using std::getenv; 12329: using std::labs; 12329: using std::ldiv; 12329: using std::malloc; 12329: 12329: using std::mblen; 12329: using std::mbstowcs; 12329: using std::mbtowc; 12329: 12329: using std::qsort; 12329: using std::rand; 12329: using std::realloc; 12329: using std::srand; 12329: using std::strtod; 12329: using std::strtol; 12329: using std::strtoul; 12329: using std::system; 12329: 12329: using std::wcstombs; 12329: using std::wctomb; 12329: # 28 "/usr/include/boost/math/policies/policy.hpp" 2 3 4 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 29 "/usr/include/boost/math/policies/policy.hpp" 2 3 4 12329: # 1 "/usr/include/c++/12/math.h" 1 3 4 12329: # 36 "/usr/include/c++/12/math.h" 3 4 12329: # 1 "/usr/include/c++/12/cmath" 1 3 4 12329: # 39 "/usr/include/c++/12/cmath" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cmath" 3 12329: # 37 "/usr/include/c++/12/math.h" 2 3 4 12329: 12329: using std::abs; 12329: using std::acos; 12329: using std::asin; 12329: using std::atan; 12329: using std::atan2; 12329: using std::cos; 12329: using std::sin; 12329: using std::tan; 12329: using std::cosh; 12329: using std::sinh; 12329: using std::tanh; 12329: using std::exp; 12329: using std::frexp; 12329: using std::ldexp; 12329: using std::log; 12329: using std::log10; 12329: using std::modf; 12329: using std::pow; 12329: using std::sqrt; 12329: using std::ceil; 12329: using std::fabs; 12329: using std::floor; 12329: using std::fmod; 12329: 12329: 12329: using std::fpclassify; 12329: using std::isfinite; 12329: using std::isinf; 12329: using std::isnan; 12329: using std::isnormal; 12329: using std::signbit; 12329: using std::isgreater; 12329: using std::isgreaterequal; 12329: using std::isless; 12329: using std::islessequal; 12329: using std::islessgreater; 12329: using std::isunordered; 12329: 12329: 12329: 12329: using std::acosh; 12329: using std::asinh; 12329: using std::atanh; 12329: using std::cbrt; 12329: using std::copysign; 12329: using std::erf; 12329: using std::erfc; 12329: using std::exp2; 12329: using std::expm1; 12329: using std::fdim; 12329: using std::fma; 12329: using std::fmax; 12329: using std::fmin; 12329: using std::hypot; 12329: using std::ilogb; 12329: using std::lgamma; 12329: using std::llrint; 12329: using std::llround; 12329: using std::log1p; 12329: using std::log2; 12329: using std::logb; 12329: using std::lrint; 12329: using std::lround; 12329: using std::nearbyint; 12329: using std::nextafter; 12329: using std::nexttoward; 12329: using std::remainder; 12329: using std::remquo; 12329: using std::rint; 12329: using std::round; 12329: using std::scalbln; 12329: using std::scalbn; 12329: using std::tgamma; 12329: using std::trunc; 12329: # 30 "/usr/include/boost/math/policies/policy.hpp" 2 3 4 12329: 12329: namespace boost{ namespace math{ 12329: 12329: namespace tools{ 12329: 12329: template 12329: constexpr int digits() noexcept; 12329: template 12329: constexpr T epsilon() noexcept(std::is_floating_point::value); 12329: 12329: } 12329: 12329: namespace policies{ 12329: # 197 "/usr/include/boost/math/policies/policy.hpp" 3 4 12329: enum error_policy_type 12329: { 12329: throw_on_error = 0, 12329: errno_on_error = 1, 12329: ignore_error = 2, 12329: user_error = 3 12329: }; 12329: 12329: template struct domain_error : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const domain_error*); char test_is_default_arg(const domain_error*); template struct is_domain_error_imp { template static char test(const domain_error*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_domain_error : public boost::integral_constant::value>{}; 12329: template struct pole_error : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const pole_error*); char test_is_default_arg(const pole_error*); template struct is_pole_error_imp { template static char test(const pole_error*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_pole_error : public boost::integral_constant::value>{}; 12329: template struct overflow_error : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const overflow_error*); char test_is_default_arg(const overflow_error*); template struct is_overflow_error_imp { template static char test(const overflow_error*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_overflow_error : public boost::integral_constant::value>{}; 12329: template struct underflow_error : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const underflow_error*); char test_is_default_arg(const underflow_error*); template struct is_underflow_error_imp { template static char test(const underflow_error*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_underflow_error : public boost::integral_constant::value>{}; 12329: template struct denorm_error : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const denorm_error*); char test_is_default_arg(const denorm_error*); template struct is_denorm_error_imp { template static char test(const denorm_error*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_denorm_error : public boost::integral_constant::value>{}; 12329: template struct evaluation_error : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const evaluation_error*); char test_is_default_arg(const evaluation_error*); template struct is_evaluation_error_imp { template static char test(const evaluation_error*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_evaluation_error : public boost::integral_constant::value>{}; 12329: template struct rounding_error : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const rounding_error*); char test_is_default_arg(const rounding_error*); template struct is_rounding_error_imp { template static char test(const rounding_error*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_rounding_error : public boost::integral_constant::value>{}; 12329: template struct indeterminate_result_error : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const indeterminate_result_error*); char test_is_default_arg(const indeterminate_result_error*); template struct is_indeterminate_result_error_imp { template static char test(const indeterminate_result_error*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_indeterminate_result_error : public boost::integral_constant::value>{}; 12329: 12329: 12329: 12329: 12329: template struct promote_float : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const promote_float*); char test_is_default_arg(const promote_float*); template struct is_promote_float_imp { template static char test(const promote_float*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_promote_float : public boost::integral_constant::value>{}; 12329: template struct promote_double : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const promote_double*); char test_is_default_arg(const promote_double*); template struct is_promote_double_imp { template static char test(const promote_double*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_promote_double : public boost::integral_constant::value>{}; 12329: template struct assert_undefined : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const assert_undefined*); char test_is_default_arg(const assert_undefined*); template struct is_assert_undefined_imp { template static char test(const assert_undefined*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_assert_undefined : public boost::integral_constant::value>{}; 12329: 12329: 12329: 12329: enum discrete_quantile_policy_type 12329: { 12329: real, 12329: integer_round_outwards, 12329: integer_round_inwards, 12329: integer_round_down, 12329: integer_round_up, 12329: integer_round_nearest 12329: }; 12329: 12329: template struct discrete_quantile : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const discrete_quantile*); char test_is_default_arg(const discrete_quantile*); template struct is_discrete_quantile_imp { template static char test(const discrete_quantile*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_discrete_quantile : public boost::integral_constant::value>{}; 12329: 12329: 12329: 12329: template struct digits10 : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const digits10*); char test_is_default_arg(const digits10<0>*); template struct is_digits10_imp { template static char test(const digits10*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_digits10 : public boost::integral_constant::value>{}; 12329: template struct digits2 : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const digits2*); char test_is_default_arg(const digits2<0>*); template struct is_digits2_imp { template static char test(const digits2*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_digits2 : public boost::integral_constant::value>{}; 12329: 12329: 12329: 12329: template struct max_series_iterations : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const max_series_iterations*); char test_is_default_arg(const max_series_iterations<1000000>*); template struct is_max_series_iterations_imp { template static char test(const max_series_iterations*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_max_series_iterations : public boost::integral_constant::value>{}; 12329: template struct max_root_iterations : public boost::integral_constant{}; namespace detail{ template char test_is_valid_arg(const max_root_iterations*); char test_is_default_arg(const max_root_iterations<200>*); template struct is_max_root_iterations_imp { template static char test(const max_root_iterations*); static double test(...); static const bool value = sizeof(test(static_cast(0))) == 1; }; } template struct is_max_root_iterations : public boost::integral_constant::value>{}; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: struct default_policy{}; 12329: 12329: namespace detail{ 12329: 12329: 12329: 12329: template 12329: struct precision 12329: { 12329: 12329: 12329: 12329: typedef typename mpl::if_c< 12329: (Digits10::value == 0), 12329: digits2<0>, 12329: digits2<((Digits10::value + 1) * 1000L) / 301L> 12329: >::type digits2_type; 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: typedef typename mpl::if_c< 12329: (Digits2::value > digits2_type::value), 12329: Digits2, digits2_type>::type type; 12329: 12329: }; 12329: 12329: template 12329: struct select_result 12329: { 12329: typedef A type; 12329: }; 12329: template 12329: struct select_result 12329: { 12329: typedef typename mpl::deref::type type; 12329: }; 12329: 12329: template 12329: struct find_arg 12329: { 12329: private: 12329: typedef typename mpl::find_if::type iter; 12329: typedef typename mpl::end::type end_type; 12329: public: 12329: typedef typename select_result< 12329: DefaultType, iter, 12329: ::boost::is_same::value>::type type; 12329: }; 12329: 12329: double test_is_valid_arg(...); 12329: double test_is_default_arg(...); 12329: char test_is_valid_arg(const default_policy*); 12329: char test_is_default_arg(const default_policy*); 12329: 12329: template 12329: struct is_valid_policy_imp 12329: { 12329: static const bool value = sizeof(::boost::math::policies::detail::test_is_valid_arg(static_cast(0))) == 1; 12329: }; 12329: 12329: template 12329: struct is_default_policy_imp 12329: { 12329: static const bool value = sizeof(::boost::math::policies::detail::test_is_default_arg(static_cast(0))) == 1; 12329: }; 12329: 12329: template struct is_valid_policy 12329: : public boost::integral_constant::value> 12329: {}; 12329: 12329: template struct is_default_policy 12329: : public boost::integral_constant::value> 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef is_default_policy type; 12329: }; 12329: }; 12329: 12329: template 12329: struct append_N 12329: { 12329: typedef typename mpl::push_back::type new_seq; 12329: typedef typename append_N::type type; 12329: }; 12329: 12329: template 12329: struct append_N 12329: { 12329: typedef Seq type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct default_args 12329: { 12329: typedef promote_float arg1; 12329: typedef promote_double arg2; 12329: }; 12329: 12329: template <> 12329: struct default_args 12329: { 12329: typedef default_policy arg1; 12329: typedef default_policy arg2; 12329: }; 12329: 12329: template <> 12329: struct default_args 12329: { 12329: typedef promote_float arg1; 12329: typedef default_policy arg2; 12329: }; 12329: 12329: template <> 12329: struct default_args 12329: { 12329: typedef promote_double arg1; 12329: typedef default_policy arg2; 12329: }; 12329: 12329: typedef default_args::arg1 forwarding_arg1; 12329: typedef default_args::arg2 forwarding_arg2; 12329: 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: struct policy 12329: { 12329: private: 12329: 12329: 12329: 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: static_assert(::boost::math::policies::detail::is_valid_policy::value, "::boost::math::policies::detail::is_valid_policy::value"); 12329: 12329: 12329: 12329: typedef mpl::list arg_list; 12329: 12329: public: 12329: typedef typename detail::find_arg, domain_error<> >::type domain_error_type; 12329: typedef typename detail::find_arg, pole_error<> >::type pole_error_type; 12329: typedef typename detail::find_arg, overflow_error<> >::type overflow_error_type; 12329: typedef typename detail::find_arg, underflow_error<> >::type underflow_error_type; 12329: typedef typename detail::find_arg, denorm_error<> >::type denorm_error_type; 12329: typedef typename detail::find_arg, evaluation_error<> >::type evaluation_error_type; 12329: typedef typename detail::find_arg, rounding_error<> >::type rounding_error_type; 12329: typedef typename detail::find_arg, indeterminate_result_error<> >::type indeterminate_result_error_type; 12329: private: 12329: 12329: 12329: 12329: typedef typename detail::find_arg, digits10<> >::type digits10_type; 12329: typedef typename detail::find_arg, digits2<> >::type bits_precision_type; 12329: public: 12329: typedef typename detail::precision::type precision_type; 12329: 12329: 12329: 12329: typedef typename detail::find_arg, promote_float<> >::type promote_float_type; 12329: typedef typename detail::find_arg, promote_double<> >::type promote_double_type; 12329: 12329: 12329: 12329: typedef typename detail::find_arg, discrete_quantile<> >::type discrete_quantile_type; 12329: 12329: 12329: 12329: typedef typename detail::find_arg, assert_undefined<> >::type assert_undefined_type; 12329: 12329: 12329: 12329: typedef typename detail::find_arg, max_series_iterations<> >::type max_series_iterations_type; 12329: typedef typename detail::find_arg, max_root_iterations<> >::type max_root_iterations_type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template <> 12329: struct policy 12329: { 12329: public: 12329: typedef domain_error<> domain_error_type; 12329: typedef pole_error<> pole_error_type; 12329: typedef overflow_error<> overflow_error_type; 12329: typedef underflow_error<> underflow_error_type; 12329: typedef denorm_error<> denorm_error_type; 12329: typedef evaluation_error<> evaluation_error_type; 12329: typedef rounding_error<> rounding_error_type; 12329: typedef indeterminate_result_error<> indeterminate_result_error_type; 12329: 12329: typedef digits2<> precision_type; 12329: 12329: 12329: 12329: typedef promote_float<> promote_float_type; 12329: typedef promote_double<> promote_double_type; 12329: typedef discrete_quantile<> discrete_quantile_type; 12329: typedef assert_undefined<> assert_undefined_type; 12329: typedef max_series_iterations<> max_series_iterations_type; 12329: typedef max_root_iterations<> max_root_iterations_type; 12329: }; 12329: 12329: template <> 12329: struct policy 12329: { 12329: public: 12329: typedef domain_error<> domain_error_type; 12329: typedef pole_error<> pole_error_type; 12329: typedef overflow_error<> overflow_error_type; 12329: typedef underflow_error<> underflow_error_type; 12329: typedef denorm_error<> denorm_error_type; 12329: typedef evaluation_error<> evaluation_error_type; 12329: typedef rounding_error<> rounding_error_type; 12329: typedef indeterminate_result_error<> indeterminate_result_error_type; 12329: 12329: typedef digits2<> precision_type; 12329: 12329: 12329: 12329: typedef promote_float promote_float_type; 12329: typedef promote_double promote_double_type; 12329: typedef discrete_quantile<> discrete_quantile_type; 12329: typedef assert_undefined<> assert_undefined_type; 12329: typedef max_series_iterations<> max_series_iterations_type; 12329: typedef max_root_iterations<> max_root_iterations_type; 12329: }; 12329: 12329: template 12329: struct normalise 12329: { 12329: private: 12329: typedef mpl::list arg_list; 12329: typedef typename detail::find_arg, typename Policy::domain_error_type >::type domain_error_type; 12329: typedef typename detail::find_arg, typename Policy::pole_error_type >::type pole_error_type; 12329: typedef typename detail::find_arg, typename Policy::overflow_error_type >::type overflow_error_type; 12329: typedef typename detail::find_arg, typename Policy::underflow_error_type >::type underflow_error_type; 12329: typedef typename detail::find_arg, typename Policy::denorm_error_type >::type denorm_error_type; 12329: typedef typename detail::find_arg, typename Policy::evaluation_error_type >::type evaluation_error_type; 12329: typedef typename detail::find_arg, typename Policy::rounding_error_type >::type rounding_error_type; 12329: typedef typename detail::find_arg, typename Policy::indeterminate_result_error_type >::type indeterminate_result_error_type; 12329: 12329: 12329: 12329: typedef typename detail::find_arg, digits10<> >::type digits10_type; 12329: typedef typename detail::find_arg, typename Policy::precision_type >::type bits_precision_type; 12329: typedef typename detail::precision::type precision_type; 12329: 12329: 12329: 12329: typedef typename detail::find_arg, typename Policy::promote_float_type >::type promote_float_type; 12329: typedef typename detail::find_arg, typename Policy::promote_double_type >::type promote_double_type; 12329: 12329: 12329: 12329: typedef typename detail::find_arg, typename Policy::discrete_quantile_type >::type discrete_quantile_type; 12329: 12329: 12329: 12329: typedef typename detail::find_arg, typename Policy::assert_undefined_type >::type assert_undefined_type; 12329: 12329: 12329: 12329: typedef typename detail::find_arg, typename Policy::max_series_iterations_type>::type max_series_iterations_type; 12329: typedef typename detail::find_arg, typename Policy::max_root_iterations_type>::type max_root_iterations_type; 12329: 12329: 12329: 12329: typedef mpl::vector< 12329: domain_error_type, 12329: pole_error_type, 12329: overflow_error_type, 12329: underflow_error_type, 12329: denorm_error_type, 12329: evaluation_error_type, 12329: rounding_error_type, 12329: indeterminate_result_error_type, 12329: precision_type, 12329: promote_float_type, 12329: promote_double_type, 12329: discrete_quantile_type, 12329: assert_undefined_type, 12329: max_series_iterations_type, 12329: max_root_iterations_type> result_list; 12329: 12329: 12329: 12329: typedef typename mpl::remove_if >::type reduced_list; 12329: 12329: 12329: 12329: typedef typename detail::append_N::value)>::type result_type; 12329: public: 12329: typedef policy< 12329: typename mpl::at >::type, 12329: typename mpl::at >::type, 12329: typename mpl::at >::type, 12329: typename mpl::at >::type, 12329: typename mpl::at >::type, 12329: typename mpl::at >::type, 12329: typename mpl::at >::type, 12329: typename mpl::at >::type, 12329: typename mpl::at >::type, 12329: typename mpl::at >::type, 12329: typename mpl::at >::type, 12329: typename mpl::at >::type, 12329: typename mpl::at >::type > type; 12329: }; 12329: 12329: 12329: 12329: template <> 12329: struct normalise, 12329: promote_float, 12329: promote_double, 12329: discrete_quantile<>, 12329: assert_undefined<>, 12329: default_policy, 12329: default_policy, 12329: default_policy, 12329: default_policy, 12329: default_policy, 12329: default_policy, 12329: default_policy> 12329: { 12329: typedef policy type; 12329: }; 12329: 12329: template <> 12329: struct normalise, 12329: promote_float, 12329: promote_double, 12329: discrete_quantile<>, 12329: assert_undefined<>, 12329: default_policy, 12329: default_policy, 12329: default_policy, 12329: default_policy, 12329: default_policy, 12329: default_policy, 12329: default_policy> 12329: { 12329: typedef policy type; 12329: }; 12329: 12329: inline constexpr policy<> make_policy() noexcept 12329: { return policy<>(); } 12329: 12329: template 12329: inline constexpr typename normalise, A1>::type make_policy(const A1&) noexcept 12329: { 12329: typedef typename normalise, A1>::type result_type; 12329: return result_type(); 12329: } 12329: 12329: template 12329: inline constexpr typename normalise, A1, A2>::type make_policy(const A1&, const A2&) noexcept 12329: { 12329: typedef typename normalise, A1, A2>::type result_type; 12329: return result_type(); 12329: } 12329: 12329: template 12329: inline constexpr typename normalise, A1, A2, A3>::type make_policy(const A1&, const A2&, const A3&) noexcept 12329: { 12329: typedef typename normalise, A1, A2, A3>::type result_type; 12329: return result_type(); 12329: } 12329: 12329: template 12329: inline constexpr typename normalise, A1, A2, A3, A4>::type make_policy(const A1&, const A2&, const A3&, const A4&) noexcept 12329: { 12329: typedef typename normalise, A1, A2, A3, A4>::type result_type; 12329: return result_type(); 12329: } 12329: 12329: template 12329: inline constexpr typename normalise, A1, A2, A3, A4, A5>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&) noexcept 12329: { 12329: typedef typename normalise, A1, A2, A3, A4, A5>::type result_type; 12329: return result_type(); 12329: } 12329: 12329: template 12329: inline constexpr typename normalise, A1, A2, A3, A4, A5, A6>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&) noexcept 12329: { 12329: typedef typename normalise, A1, A2, A3, A4, A5, A6>::type result_type; 12329: return result_type(); 12329: } 12329: 12329: template 12329: inline constexpr typename normalise, A1, A2, A3, A4, A5, A6, A7>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&) noexcept 12329: { 12329: typedef typename normalise, A1, A2, A3, A4, A5, A6, A7>::type result_type; 12329: return result_type(); 12329: } 12329: 12329: template 12329: inline constexpr typename normalise, A1, A2, A3, A4, A5, A6, A7, A8>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&) noexcept 12329: { 12329: typedef typename normalise, A1, A2, A3, A4, A5, A6, A7, A8>::type result_type; 12329: return result_type(); 12329: } 12329: 12329: template 12329: inline constexpr typename normalise, A1, A2, A3, A4, A5, A6, A7, A8, A9>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&, const A9&) noexcept 12329: { 12329: typedef typename normalise, A1, A2, A3, A4, A5, A6, A7, A8, A9>::type result_type; 12329: return result_type(); 12329: } 12329: 12329: template 12329: inline constexpr typename normalise, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&, const A9&, const A10&) noexcept 12329: { 12329: typedef typename normalise, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>::type result_type; 12329: return result_type(); 12329: } 12329: 12329: template 12329: inline constexpr typename normalise, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&, const A9&, const A10&, const A11&) noexcept 12329: { 12329: typedef typename normalise, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>::type result_type; 12329: return result_type(); 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: struct evaluation 12329: { 12329: typedef Real type; 12329: }; 12329: 12329: template 12329: struct evaluation 12329: { 12329: typedef typename mpl::if_::type type; 12329: }; 12329: 12329: template 12329: struct evaluation 12329: { 12329: typedef typename mpl::if_::type type; 12329: }; 12329: # 795 "/usr/include/boost/math/policies/policy.hpp" 3 4 12329: template 12329: struct precision 12329: { 12329: static_assert((::std::numeric_limits::radix == 2) || ((::std::numeric_limits::is_specialized == 0) || (::std::numeric_limits::digits == 0)), "(::std::numeric_limits::radix == 2) || ((::std::numeric_limits::is_specialized == 0) || (::std::numeric_limits::digits == 0))"); 12329: 12329: typedef typename Policy::precision_type precision_type; 12329: typedef typename mpl::if_c< 12329: ((::std::numeric_limits::is_specialized == 0) || (::std::numeric_limits::digits == 0)), 12329: 12329: precision_type, 12329: typename mpl::if_c< 12329: ((::std::numeric_limits::digits <= precision_type::value) 12329: || (Policy::precision_type::value <= 0)), 12329: 12329: digits2< ::std::numeric_limits::digits>, 12329: 12329: precision_type 12329: >::type 12329: >::type type; 12329: # 831 "/usr/include/boost/math/policies/policy.hpp" 3 4 12329: }; 12329: # 845 "/usr/include/boost/math/policies/policy.hpp" 3 4 12329: namespace detail{ 12329: 12329: template 12329: inline constexpr int digits_imp(boost::true_type const&) noexcept 12329: { 12329: 12329: static_assert(::std::numeric_limits::is_specialized, "::std::numeric_limits::is_specialized"); 12329: 12329: 12329: 12329: typedef typename boost::math::policies::precision::type p_t; 12329: return p_t::value; 12329: } 12329: 12329: template 12329: inline constexpr int digits_imp(boost::false_type const&) noexcept 12329: { 12329: return tools::digits(); 12329: } 12329: 12329: } 12329: 12329: template 12329: inline constexpr int digits() noexcept 12329: { 12329: typedef boost::integral_constant::is_specialized > tag_type; 12329: return detail::digits_imp(tag_type()); 12329: } 12329: template 12329: inline constexpr int digits_base10() noexcept 12329: { 12329: return boost::math::policies::digits() * 301 / 1000L; 12329: } 12329: 12329: template 12329: inline constexpr unsigned long get_max_series_iterations() noexcept 12329: { 12329: typedef typename Policy::max_series_iterations_type iter_type; 12329: return iter_type::value; 12329: } 12329: 12329: template 12329: inline constexpr unsigned long get_max_root_iterations() noexcept 12329: { 12329: typedef typename Policy::max_root_iterations_type iter_type; 12329: return iter_type::value; 12329: } 12329: 12329: namespace detail{ 12329: 12329: template 12329: struct series_factor_calc 12329: { 12329: static T get() noexcept(std::is_floating_point::value) 12329: { 12329: return ldexp(T(1.0), 1 - Digits::value); 12329: } 12329: }; 12329: 12329: template 12329: struct series_factor_calc 12329: { 12329: static constexpr T get() noexcept(std::is_floating_point::value) 12329: { 12329: return boost::math::tools::epsilon(); 12329: } 12329: }; 12329: template 12329: struct series_factor_calc 12329: { 12329: static constexpr T get() noexcept(std::is_floating_point::value) 12329: { 12329: return 1 / static_cast(static_cast(1u) << (Digits::value - 1)); 12329: } 12329: }; 12329: template 12329: struct series_factor_calc 12329: { 12329: static constexpr T get() noexcept(std::is_floating_point::value) 12329: { 12329: return boost::math::tools::epsilon(); 12329: } 12329: }; 12329: 12329: template 12329: inline constexpr T get_epsilon_imp(boost::true_type const&) noexcept(std::is_floating_point::value) 12329: { 12329: 12329: static_assert(::std::numeric_limits::is_specialized, "::std::numeric_limits::is_specialized"); 12329: static_assert(::std::numeric_limits::radix == 2, "::std::numeric_limits::radix == 2"); 12329: 12329: 12329: 12329: 12329: typedef typename boost::math::policies::precision::type p_t; 12329: typedef boost::integral_constant::digits> is_small_int; 12329: typedef boost::integral_constant= std::numeric_limits::digits> is_default_value; 12329: return series_factor_calc::get(); 12329: } 12329: 12329: template 12329: inline constexpr T get_epsilon_imp(boost::false_type const&) noexcept(std::is_floating_point::value) 12329: { 12329: return tools::epsilon(); 12329: } 12329: 12329: } 12329: 12329: template 12329: inline constexpr T get_epsilon() noexcept(std::is_floating_point::value) 12329: { 12329: typedef boost::integral_constant::is_specialized && (std::numeric_limits::radix == 2)) > tag_type; 12329: return detail::get_epsilon_imp(tag_type()); 12329: } 12329: 12329: namespace detail{ 12329: 12329: template 12329: char test_is_policy(const policy*); 12329: double test_is_policy(...); 12329: 12329: template 12329: struct is_policy_imp 12329: { 12329: static const bool value = (sizeof(::boost::math::policies::detail::test_is_policy(static_cast(0))) == 1); 12329: }; 12329: 12329: } 12329: 12329: template 12329: struct is_policy : public boost::integral_constant::value> {}; 12329: 12329: 12329: 12329: 12329: template 12329: struct constructor_error_check 12329: { 12329: typedef typename Policy::domain_error_type domain_error_type; 12329: typedef typename mpl::if_c< 12329: (domain_error_type::value == throw_on_error) || (domain_error_type::value == user_error) || (domain_error_type::value == errno_on_error), 12329: boost::true_type, 12329: boost::false_type>::type type; 12329: }; 12329: 12329: template 12329: struct method_error_check 12329: { 12329: typedef typename Policy::domain_error_type domain_error_type; 12329: typedef typename mpl::if_c< 12329: (domain_error_type::value == throw_on_error) && (domain_error_type::value != user_error), 12329: boost::false_type, 12329: boost::true_type>::type type; 12329: }; 12329: 12329: 12329: 12329: template 12329: struct is_noexcept_error_policy 12329: { 12329: typedef typename Policy::domain_error_type t1; 12329: typedef typename Policy::pole_error_type t2; 12329: typedef typename Policy::overflow_error_type t3; 12329: typedef typename Policy::underflow_error_type t4; 12329: typedef typename Policy::denorm_error_type t5; 12329: typedef typename Policy::evaluation_error_type t6; 12329: typedef typename Policy::rounding_error_type t7; 12329: typedef typename Policy::indeterminate_result_error_type t8; 12329: 12329: static const bool value = ((t1::value != throw_on_error) && (t1::value != user_error) && (t2::value != throw_on_error) && (t2::value != user_error) && (t3::value != throw_on_error) && (t3::value != user_error) && (t4::value != throw_on_error) && (t4::value != user_error) && (t5::value != throw_on_error) && (t5::value != user_error) && (t6::value != throw_on_error) && (t6::value != user_error) && (t7::value != throw_on_error) && (t7::value != user_error) && (t8::value != throw_on_error) && (t8::value != user_error)) 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: ; 12329: }; 12329: 12329: }}} 12329: # 30 "/usr/include/boost/math/special_functions/math_fwd.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/config/no_tr1/complex.hpp" 1 3 4 12329: # 21 "/usr/include/boost/config/no_tr1/complex.hpp" 3 4 12329: # 1 "/usr/include/c++/12/complex" 1 3 4 12329: # 39 "/usr/include/c++/12/complex" 3 4 12329: 12329: # 40 "/usr/include/c++/12/complex" 3 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/cmath" 1 3 12329: # 39 "/usr/include/c++/12/cmath" 3 12329: 12329: # 40 "/usr/include/c++/12/cmath" 3 12329: # 45 "/usr/include/c++/12/complex" 2 3 12329: # 54 "/usr/include/c++/12/complex" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: # 67 "/usr/include/c++/12/complex" 3 12329: template class complex; 12329: template<> class complex; 12329: template<> class complex; 12329: template<> class complex; 12329: 12329: 12329: template _Tp abs(const complex<_Tp>&); 12329: 12329: template _Tp arg(const complex<_Tp>&); 12329: 12329: template _Tp norm(const complex<_Tp>&); 12329: 12329: 12329: template 12329: complex<_Tp> conj(const complex<_Tp>&); 12329: 12329: template complex<_Tp> polar(const _Tp&, const _Tp& = 0); 12329: 12329: 12329: 12329: template complex<_Tp> cos(const complex<_Tp>&); 12329: 12329: template complex<_Tp> cosh(const complex<_Tp>&); 12329: 12329: template complex<_Tp> exp(const complex<_Tp>&); 12329: 12329: template complex<_Tp> log(const complex<_Tp>&); 12329: 12329: template complex<_Tp> log10(const complex<_Tp>&); 12329: 12329: template complex<_Tp> pow(const complex<_Tp>&, int); 12329: 12329: template complex<_Tp> pow(const complex<_Tp>&, const _Tp&); 12329: 12329: template complex<_Tp> pow(const complex<_Tp>&, 12329: const complex<_Tp>&); 12329: 12329: template complex<_Tp> pow(const _Tp&, const complex<_Tp>&); 12329: 12329: template complex<_Tp> sin(const complex<_Tp>&); 12329: 12329: template complex<_Tp> sinh(const complex<_Tp>&); 12329: 12329: template complex<_Tp> sqrt(const complex<_Tp>&); 12329: 12329: template complex<_Tp> tan(const complex<_Tp>&); 12329: 12329: template complex<_Tp> tanh(const complex<_Tp>&); 12329: # 126 "/usr/include/c++/12/complex" 3 12329: template 12329: class complex 12329: { 12329: public: 12329: 12329: typedef _Tp value_type; 12329: 12329: 12329: 12329: constexpr complex(const _Tp& __r = _Tp(), const _Tp& __i = _Tp()) 12329: : _M_real(__r), _M_imag(__i) { } 12329: 12329: 12329: 12329: constexpr complex(const complex&) = default; 12329: 12329: 12329: 12329: template 12329: constexpr complex(const complex<_Up>& __z) 12329: : _M_real(__z.real()), _M_imag(__z.imag()) { } 12329: 12329: 12329: 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: constexpr _Tp 12329: real() const { return _M_real; } 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: constexpr _Tp 12329: imag() const { return _M_imag; } 12329: # 178 "/usr/include/c++/12/complex" 3 12329: void 12329: real(_Tp __val) { _M_real = __val; } 12329: 12329: void 12329: imag(_Tp __val) { _M_imag = __val; } 12329: 12329: 12329: complex<_Tp>& operator=(const _Tp&); 12329: 12329: 12329: 12329: complex<_Tp>& 12329: operator+=(const _Tp& __t) 12329: { 12329: _M_real += __t; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: complex<_Tp>& 12329: operator-=(const _Tp& __t) 12329: { 12329: _M_real -= __t; 12329: return *this; 12329: } 12329: 12329: 12329: complex<_Tp>& operator*=(const _Tp&); 12329: 12329: complex<_Tp>& operator/=(const _Tp&); 12329: 12329: 12329: 12329: complex& operator=(const complex&) = default; 12329: 12329: 12329: 12329: template 12329: complex<_Tp>& operator=(const complex<_Up>&); 12329: 12329: template 12329: complex<_Tp>& operator+=(const complex<_Up>&); 12329: 12329: template 12329: complex<_Tp>& operator-=(const complex<_Up>&); 12329: 12329: template 12329: complex<_Tp>& operator*=(const complex<_Up>&); 12329: 12329: template 12329: complex<_Tp>& operator/=(const complex<_Up>&); 12329: 12329: constexpr complex __rep() const 12329: { return *this; } 12329: 12329: private: 12329: _Tp _M_real; 12329: _Tp _M_imag; 12329: }; 12329: 12329: template 12329: complex<_Tp>& 12329: complex<_Tp>::operator=(const _Tp& __t) 12329: { 12329: _M_real = __t; 12329: _M_imag = _Tp(); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: complex<_Tp>& 12329: complex<_Tp>::operator*=(const _Tp& __t) 12329: { 12329: _M_real *= __t; 12329: _M_imag *= __t; 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: complex<_Tp>& 12329: complex<_Tp>::operator/=(const _Tp& __t) 12329: { 12329: _M_real /= __t; 12329: _M_imag /= __t; 12329: return *this; 12329: } 12329: 12329: template 12329: template 12329: complex<_Tp>& 12329: complex<_Tp>::operator=(const complex<_Up>& __z) 12329: { 12329: _M_real = __z.real(); 12329: _M_imag = __z.imag(); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: template 12329: complex<_Tp>& 12329: complex<_Tp>::operator+=(const complex<_Up>& __z) 12329: { 12329: _M_real += __z.real(); 12329: _M_imag += __z.imag(); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: template 12329: complex<_Tp>& 12329: complex<_Tp>::operator-=(const complex<_Up>& __z) 12329: { 12329: _M_real -= __z.real(); 12329: _M_imag -= __z.imag(); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: template 12329: template 12329: complex<_Tp>& 12329: complex<_Tp>::operator*=(const complex<_Up>& __z) 12329: { 12329: const _Tp __r = _M_real * __z.real() - _M_imag * __z.imag(); 12329: _M_imag = _M_real * __z.imag() + _M_imag * __z.real(); 12329: _M_real = __r; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: template 12329: template 12329: complex<_Tp>& 12329: complex<_Tp>::operator/=(const complex<_Up>& __z) 12329: { 12329: const _Tp __r = _M_real * __z.real() + _M_imag * __z.imag(); 12329: const _Tp __n = std::norm(__z); 12329: _M_imag = (_M_imag * __z.real() - _M_real * __z.imag()) / __n; 12329: _M_real = __r / __n; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: operator+(const complex<_Tp>& __x, const complex<_Tp>& __y) 12329: { 12329: complex<_Tp> __r = __x; 12329: __r += __y; 12329: return __r; 12329: } 12329: 12329: template 12329: inline complex<_Tp> 12329: operator+(const complex<_Tp>& __x, const _Tp& __y) 12329: { 12329: complex<_Tp> __r = __x; 12329: __r += __y; 12329: return __r; 12329: } 12329: 12329: template 12329: inline complex<_Tp> 12329: operator+(const _Tp& __x, const complex<_Tp>& __y) 12329: { 12329: complex<_Tp> __r = __y; 12329: __r += __x; 12329: return __r; 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: operator-(const complex<_Tp>& __x, const complex<_Tp>& __y) 12329: { 12329: complex<_Tp> __r = __x; 12329: __r -= __y; 12329: return __r; 12329: } 12329: 12329: template 12329: inline complex<_Tp> 12329: operator-(const complex<_Tp>& __x, const _Tp& __y) 12329: { 12329: complex<_Tp> __r = __x; 12329: __r -= __y; 12329: return __r; 12329: } 12329: 12329: template 12329: inline complex<_Tp> 12329: operator-(const _Tp& __x, const complex<_Tp>& __y) 12329: { 12329: complex<_Tp> __r = -__y; 12329: __r += __x; 12329: return __r; 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: operator*(const complex<_Tp>& __x, const complex<_Tp>& __y) 12329: { 12329: complex<_Tp> __r = __x; 12329: __r *= __y; 12329: return __r; 12329: } 12329: 12329: template 12329: inline complex<_Tp> 12329: operator*(const complex<_Tp>& __x, const _Tp& __y) 12329: { 12329: complex<_Tp> __r = __x; 12329: __r *= __y; 12329: return __r; 12329: } 12329: 12329: template 12329: inline complex<_Tp> 12329: operator*(const _Tp& __x, const complex<_Tp>& __y) 12329: { 12329: complex<_Tp> __r = __y; 12329: __r *= __x; 12329: return __r; 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: operator/(const complex<_Tp>& __x, const complex<_Tp>& __y) 12329: { 12329: complex<_Tp> __r = __x; 12329: __r /= __y; 12329: return __r; 12329: } 12329: 12329: template 12329: inline complex<_Tp> 12329: operator/(const complex<_Tp>& __x, const _Tp& __y) 12329: { 12329: complex<_Tp> __r = __x; 12329: __r /= __y; 12329: return __r; 12329: } 12329: 12329: template 12329: inline complex<_Tp> 12329: operator/(const _Tp& __x, const complex<_Tp>& __y) 12329: { 12329: complex<_Tp> __r = __x; 12329: __r /= __y; 12329: return __r; 12329: } 12329: 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: operator+(const complex<_Tp>& __x) 12329: { return __x; } 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: operator-(const complex<_Tp>& __x) 12329: { return complex<_Tp>(-__x.real(), -__x.imag()); } 12329: 12329: 12329: 12329: template 12329: inline constexpr bool 12329: operator==(const complex<_Tp>& __x, const complex<_Tp>& __y) 12329: { return __x.real() == __y.real() && __x.imag() == __y.imag(); } 12329: 12329: template 12329: inline constexpr bool 12329: operator==(const complex<_Tp>& __x, const _Tp& __y) 12329: { return __x.real() == __y && __x.imag() == _Tp(); } 12329: 12329: 12329: template 12329: inline constexpr bool 12329: operator==(const _Tp& __x, const complex<_Tp>& __y) 12329: { return __x == __y.real() && _Tp() == __y.imag(); } 12329: 12329: 12329: 12329: 12329: template 12329: inline constexpr bool 12329: operator!=(const complex<_Tp>& __x, const complex<_Tp>& __y) 12329: { return __x.real() != __y.real() || __x.imag() != __y.imag(); } 12329: 12329: template 12329: inline constexpr bool 12329: operator!=(const complex<_Tp>& __x, const _Tp& __y) 12329: { return __x.real() != __y || __x.imag() != _Tp(); } 12329: 12329: template 12329: inline constexpr bool 12329: operator!=(const _Tp& __x, const complex<_Tp>& __y) 12329: { return __x != __y.real() || _Tp() != __y.imag(); } 12329: 12329: 12329: 12329: 12329: template 12329: basic_istream<_CharT, _Traits>& 12329: operator>>(basic_istream<_CharT, _Traits>& __is, complex<_Tp>& __x) 12329: { 12329: bool __fail = true; 12329: _CharT __ch; 12329: if (__is >> __ch) 12329: { 12329: if (_Traits::eq(__ch, __is.widen('('))) 12329: { 12329: _Tp __u; 12329: if (__is >> __u >> __ch) 12329: { 12329: const _CharT __rparen = __is.widen(')'); 12329: if (_Traits::eq(__ch, __rparen)) 12329: { 12329: __x = __u; 12329: __fail = false; 12329: } 12329: else if (_Traits::eq(__ch, __is.widen(','))) 12329: { 12329: _Tp __v; 12329: if (__is >> __v >> __ch) 12329: { 12329: if (_Traits::eq(__ch, __rparen)) 12329: { 12329: __x = complex<_Tp>(__u, __v); 12329: __fail = false; 12329: } 12329: else 12329: __is.putback(__ch); 12329: } 12329: } 12329: else 12329: __is.putback(__ch); 12329: } 12329: } 12329: else 12329: { 12329: __is.putback(__ch); 12329: _Tp __u; 12329: if (__is >> __u) 12329: { 12329: __x = __u; 12329: __fail = false; 12329: } 12329: } 12329: } 12329: if (__fail) 12329: __is.setstate(ios_base::failbit); 12329: return __is; 12329: } 12329: 12329: 12329: template 12329: basic_ostream<_CharT, _Traits>& 12329: operator<<(basic_ostream<_CharT, _Traits>& __os, const complex<_Tp>& __x) 12329: { 12329: basic_ostringstream<_CharT, _Traits> __s; 12329: __s.flags(__os.flags()); 12329: __s.imbue(__os.getloc()); 12329: __s.precision(__os.precision()); 12329: __s << '(' << __x.real() << ',' << __x.imag() << ')'; 12329: return __os << __s.str(); 12329: } 12329: 12329: 12329: 12329: template 12329: constexpr _Tp 12329: real(const complex<_Tp>& __z) 12329: { return __z.real(); } 12329: 12329: template 12329: constexpr _Tp 12329: imag(const complex<_Tp>& __z) 12329: { return __z.imag(); } 12329: # 599 "/usr/include/c++/12/complex" 3 12329: template 12329: inline _Tp 12329: __complex_abs(const complex<_Tp>& __z) 12329: { 12329: _Tp __x = __z.real(); 12329: _Tp __y = __z.imag(); 12329: const _Tp __s = std::max(abs(__x), abs(__y)); 12329: if (__s == _Tp()) 12329: return __s; 12329: __x /= __s; 12329: __y /= __s; 12329: return __s * sqrt(__x * __x + __y * __y); 12329: } 12329: 12329: 12329: inline float 12329: __complex_abs(__complex__ float __z) { return __builtin_cabsf(__z); } 12329: 12329: inline double 12329: __complex_abs(__complex__ double __z) { return __builtin_cabs(__z); } 12329: 12329: inline long double 12329: __complex_abs(const __complex__ long double& __z) 12329: { return __builtin_cabsl(__z); } 12329: 12329: template 12329: inline _Tp 12329: abs(const complex<_Tp>& __z) { return __complex_abs(__z.__rep()); } 12329: # 635 "/usr/include/c++/12/complex" 3 12329: template 12329: inline _Tp 12329: __complex_arg(const complex<_Tp>& __z) 12329: { return atan2(__z.imag(), __z.real()); } 12329: 12329: 12329: inline float 12329: __complex_arg(__complex__ float __z) { return __builtin_cargf(__z); } 12329: 12329: inline double 12329: __complex_arg(__complex__ double __z) { return __builtin_carg(__z); } 12329: 12329: inline long double 12329: __complex_arg(const __complex__ long double& __z) 12329: { return __builtin_cargl(__z); } 12329: 12329: template 12329: inline _Tp 12329: arg(const complex<_Tp>& __z) { return __complex_arg(__z.__rep()); } 12329: # 665 "/usr/include/c++/12/complex" 3 12329: template 12329: struct _Norm_helper 12329: { 12329: template 12329: static inline _Tp _S_do_it(const complex<_Tp>& __z) 12329: { 12329: const _Tp __x = __z.real(); 12329: const _Tp __y = __z.imag(); 12329: return __x * __x + __y * __y; 12329: } 12329: }; 12329: 12329: template<> 12329: struct _Norm_helper 12329: { 12329: template 12329: static inline _Tp _S_do_it(const complex<_Tp>& __z) 12329: { 12329: 12329: 12329: const _Tp __x = __z.real(); 12329: const _Tp __y = __z.imag(); 12329: return __x * __x + __y * __y; 12329: } 12329: }; 12329: 12329: template 12329: inline _Tp 12329: norm(const complex<_Tp>& __z) 12329: { 12329: return _Norm_helper<__is_floating<_Tp>::__value 12329: && !0>::_S_do_it(__z); 12329: } 12329: 12329: template 12329: inline complex<_Tp> 12329: polar(const _Tp& __rho, const _Tp& __theta) 12329: { 12329: do { if (std::__is_constant_evaluated() && !bool(__rho >= 0)) __builtin_unreachable(); } while (false); 12329: return complex<_Tp>(__rho * cos(__theta), __rho * sin(__theta)); 12329: } 12329: 12329: template 12329: inline complex<_Tp> 12329: conj(const complex<_Tp>& __z) 12329: { return complex<_Tp>(__z.real(), -__z.imag()); } 12329: 12329: 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: __complex_cos(const complex<_Tp>& __z) 12329: { 12329: const _Tp __x = __z.real(); 12329: const _Tp __y = __z.imag(); 12329: return complex<_Tp>(cos(__x) * cosh(__y), -sin(__x) * sinh(__y)); 12329: } 12329: 12329: 12329: inline __complex__ float 12329: __complex_cos(__complex__ float __z) { return __builtin_ccosf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_cos(__complex__ double __z) { return __builtin_ccos(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_cos(const __complex__ long double& __z) 12329: { return __builtin_ccosl(__z); } 12329: 12329: template 12329: inline complex<_Tp> 12329: cos(const complex<_Tp>& __z) { return __complex_cos(__z.__rep()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: __complex_cosh(const complex<_Tp>& __z) 12329: { 12329: const _Tp __x = __z.real(); 12329: const _Tp __y = __z.imag(); 12329: return complex<_Tp>(cosh(__x) * cos(__y), sinh(__x) * sin(__y)); 12329: } 12329: 12329: 12329: inline __complex__ float 12329: __complex_cosh(__complex__ float __z) { return __builtin_ccoshf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_cosh(__complex__ double __z) { return __builtin_ccosh(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_cosh(const __complex__ long double& __z) 12329: { return __builtin_ccoshl(__z); } 12329: 12329: template 12329: inline complex<_Tp> 12329: cosh(const complex<_Tp>& __z) { return __complex_cosh(__z.__rep()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: __complex_exp(const complex<_Tp>& __z) 12329: { return std::polar<_Tp>(exp(__z.real()), __z.imag()); } 12329: 12329: 12329: inline __complex__ float 12329: __complex_exp(__complex__ float __z) { return __builtin_cexpf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_exp(__complex__ double __z) { return __builtin_cexp(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_exp(const __complex__ long double& __z) 12329: { return __builtin_cexpl(__z); } 12329: 12329: template 12329: inline complex<_Tp> 12329: exp(const complex<_Tp>& __z) { return __complex_exp(__z.__rep()); } 12329: # 802 "/usr/include/c++/12/complex" 3 12329: template 12329: inline complex<_Tp> 12329: __complex_log(const complex<_Tp>& __z) 12329: { return complex<_Tp>(log(std::abs(__z)), std::arg(__z)); } 12329: 12329: 12329: inline __complex__ float 12329: __complex_log(__complex__ float __z) { return __builtin_clogf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_log(__complex__ double __z) { return __builtin_clog(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_log(const __complex__ long double& __z) 12329: { return __builtin_clogl(__z); } 12329: 12329: template 12329: inline complex<_Tp> 12329: log(const complex<_Tp>& __z) { return __complex_log(__z.__rep()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: log10(const complex<_Tp>& __z) 12329: { return std::log(__z) / log(_Tp(10.0)); } 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: __complex_sin(const complex<_Tp>& __z) 12329: { 12329: const _Tp __x = __z.real(); 12329: const _Tp __y = __z.imag(); 12329: return complex<_Tp>(sin(__x) * cosh(__y), cos(__x) * sinh(__y)); 12329: } 12329: 12329: 12329: inline __complex__ float 12329: __complex_sin(__complex__ float __z) { return __builtin_csinf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_sin(__complex__ double __z) { return __builtin_csin(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_sin(const __complex__ long double& __z) 12329: { return __builtin_csinl(__z); } 12329: 12329: template 12329: inline complex<_Tp> 12329: sin(const complex<_Tp>& __z) { return __complex_sin(__z.__rep()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: __complex_sinh(const complex<_Tp>& __z) 12329: { 12329: const _Tp __x = __z.real(); 12329: const _Tp __y = __z.imag(); 12329: return complex<_Tp>(sinh(__x) * cos(__y), cosh(__x) * sin(__y)); 12329: } 12329: 12329: 12329: inline __complex__ float 12329: __complex_sinh(__complex__ float __z) { return __builtin_csinhf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_sinh(__complex__ double __z) { return __builtin_csinh(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_sinh(const __complex__ long double& __z) 12329: { return __builtin_csinhl(__z); } 12329: 12329: template 12329: inline complex<_Tp> 12329: sinh(const complex<_Tp>& __z) { return __complex_sinh(__z.__rep()); } 12329: # 894 "/usr/include/c++/12/complex" 3 12329: template 12329: complex<_Tp> 12329: __complex_sqrt(const complex<_Tp>& __z) 12329: { 12329: _Tp __x = __z.real(); 12329: _Tp __y = __z.imag(); 12329: 12329: if (__x == _Tp()) 12329: { 12329: _Tp __t = sqrt(abs(__y) / 2); 12329: return complex<_Tp>(__t, __y < _Tp() ? -__t : __t); 12329: } 12329: else 12329: { 12329: _Tp __t = sqrt(2 * (std::abs(__z) + abs(__x))); 12329: _Tp __u = __t / 2; 12329: return __x > _Tp() 12329: ? complex<_Tp>(__u, __y / __t) 12329: : complex<_Tp>(abs(__y) / __t, __y < _Tp() ? -__u : __u); 12329: } 12329: } 12329: 12329: 12329: inline __complex__ float 12329: __complex_sqrt(__complex__ float __z) { return __builtin_csqrtf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_sqrt(__complex__ double __z) { return __builtin_csqrt(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_sqrt(const __complex__ long double& __z) 12329: { return __builtin_csqrtl(__z); } 12329: 12329: template 12329: inline complex<_Tp> 12329: sqrt(const complex<_Tp>& __z) { return __complex_sqrt(__z.__rep()); } 12329: # 938 "/usr/include/c++/12/complex" 3 12329: template 12329: inline complex<_Tp> 12329: __complex_tan(const complex<_Tp>& __z) 12329: { return std::sin(__z) / std::cos(__z); } 12329: 12329: 12329: inline __complex__ float 12329: __complex_tan(__complex__ float __z) { return __builtin_ctanf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_tan(__complex__ double __z) { return __builtin_ctan(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_tan(const __complex__ long double& __z) 12329: { return __builtin_ctanl(__z); } 12329: 12329: template 12329: inline complex<_Tp> 12329: tan(const complex<_Tp>& __z) { return __complex_tan(__z.__rep()); } 12329: # 966 "/usr/include/c++/12/complex" 3 12329: template 12329: inline complex<_Tp> 12329: __complex_tanh(const complex<_Tp>& __z) 12329: { return std::sinh(__z) / std::cosh(__z); } 12329: 12329: 12329: inline __complex__ float 12329: __complex_tanh(__complex__ float __z) { return __builtin_ctanhf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_tanh(__complex__ double __z) { return __builtin_ctanh(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_tanh(const __complex__ long double& __z) 12329: { return __builtin_ctanhl(__z); } 12329: 12329: template 12329: inline complex<_Tp> 12329: tanh(const complex<_Tp>& __z) { return __complex_tanh(__z.__rep()); } 12329: # 995 "/usr/include/c++/12/complex" 3 12329: template 12329: complex<_Tp> 12329: __complex_pow_unsigned(complex<_Tp> __x, unsigned __n) 12329: { 12329: complex<_Tp> __y = __n % 2 ? __x : complex<_Tp>(1); 12329: 12329: while (__n >>= 1) 12329: { 12329: __x *= __x; 12329: if (__n % 2) 12329: __y *= __x; 12329: } 12329: 12329: return __y; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: pow(const complex<_Tp>& __z, int __n) 12329: { 12329: return __n < 0 12329: ? complex<_Tp>(1) / std::__complex_pow_unsigned(__z, -(unsigned)__n) 12329: : std::__complex_pow_unsigned(__z, __n); 12329: } 12329: 12329: template 12329: complex<_Tp> 12329: pow(const complex<_Tp>& __x, const _Tp& __y) 12329: { 12329: 12329: 12329: 12329: 12329: if (__x.imag() == _Tp() && __x.real() > _Tp()) 12329: return pow(__x.real(), __y); 12329: 12329: complex<_Tp> __t = std::log(__x); 12329: return std::polar<_Tp>(exp(__y * __t.real()), __y * __t.imag()); 12329: } 12329: 12329: template 12329: inline complex<_Tp> 12329: __complex_pow(const complex<_Tp>& __x, const complex<_Tp>& __y) 12329: { return __x == _Tp() ? _Tp() : std::exp(__y * std::log(__x)); } 12329: 12329: 12329: inline __complex__ float 12329: __complex_pow(__complex__ float __x, __complex__ float __y) 12329: { return __builtin_cpowf(__x, __y); } 12329: 12329: inline __complex__ double 12329: __complex_pow(__complex__ double __x, __complex__ double __y) 12329: { return __builtin_cpow(__x, __y); } 12329: 12329: inline __complex__ long double 12329: __complex_pow(const __complex__ long double& __x, 12329: const __complex__ long double& __y) 12329: { return __builtin_cpowl(__x, __y); } 12329: 12329: template 12329: inline complex<_Tp> 12329: pow(const complex<_Tp>& __x, const complex<_Tp>& __y) 12329: { return __complex_pow(__x.__rep(), __y.__rep()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline complex<_Tp> 12329: pow(const _Tp& __x, const complex<_Tp>& __y) 12329: { 12329: return __x > _Tp() ? std::polar<_Tp>(pow(__x, __y.real()), 12329: __y.imag() * log(__x)) 12329: : std::pow(complex<_Tp>(__x), __y); 12329: } 12329: 12329: 12329: 12329: template<> 12329: class complex 12329: { 12329: public: 12329: typedef float value_type; 12329: typedef __complex__ float _ComplexT; 12329: 12329: constexpr complex(_ComplexT __z) : _M_value(__z) { } 12329: 12329: constexpr complex(float __r = 0.0f, float __i = 0.0f) 12329: 12329: : _M_value{ __r, __i } { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: explicit constexpr complex(const complex&); 12329: explicit constexpr complex(const complex&); 12329: 12329: 12329: 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: constexpr float 12329: real() const { return __real__ _M_value; } 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: constexpr float 12329: imag() const { return __imag__ _M_value; } 12329: # 1130 "/usr/include/c++/12/complex" 3 12329: void 12329: real(float __val) { __real__ _M_value = __val; } 12329: 12329: void 12329: imag(float __val) { __imag__ _M_value = __val; } 12329: 12329: complex& 12329: operator=(float __f) 12329: { 12329: _M_value = __f; 12329: return *this; 12329: } 12329: 12329: complex& 12329: operator+=(float __f) 12329: { 12329: _M_value += __f; 12329: return *this; 12329: } 12329: 12329: complex& 12329: operator-=(float __f) 12329: { 12329: _M_value -= __f; 12329: return *this; 12329: } 12329: 12329: complex& 12329: operator*=(float __f) 12329: { 12329: _M_value *= __f; 12329: return *this; 12329: } 12329: 12329: complex& 12329: operator/=(float __f) 12329: { 12329: _M_value /= __f; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: constexpr complex& operator=(const complex&) = default; 12329: 12329: 12329: template 12329: complex& 12329: operator=(const complex<_Tp>& __z) 12329: { 12329: __real__ _M_value = __z.real(); 12329: __imag__ _M_value = __z.imag(); 12329: return *this; 12329: } 12329: 12329: template 12329: complex& 12329: operator+=(const complex<_Tp>& __z) 12329: { 12329: _M_value += __z.__rep(); 12329: return *this; 12329: } 12329: 12329: template 12329: complex& 12329: operator-=(const complex<_Tp>& __z) 12329: { 12329: _M_value -= __z.__rep(); 12329: return *this; 12329: } 12329: 12329: template 12329: complex& 12329: operator*=(const complex<_Tp>& __z) 12329: { 12329: const _ComplexT __t = __z.__rep(); 12329: _M_value *= __t; 12329: return *this; 12329: } 12329: 12329: template 12329: complex& 12329: operator/=(const complex<_Tp>& __z) 12329: { 12329: const _ComplexT __t = __z.__rep(); 12329: _M_value /= __t; 12329: return *this; 12329: } 12329: 12329: constexpr _ComplexT __rep() const { return _M_value; } 12329: 12329: private: 12329: _ComplexT _M_value; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: class complex 12329: { 12329: public: 12329: typedef double value_type; 12329: typedef __complex__ double _ComplexT; 12329: 12329: constexpr complex(_ComplexT __z) : _M_value(__z) { } 12329: 12329: constexpr complex(double __r = 0.0, double __i = 0.0) 12329: 12329: : _M_value{ __r, __i } { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: constexpr complex(const complex& __z) 12329: : _M_value(__z.__rep()) { } 12329: 12329: explicit constexpr complex(const complex&); 12329: 12329: 12329: 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: constexpr double 12329: real() const { return __real__ _M_value; } 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: constexpr double 12329: imag() const { return __imag__ _M_value; } 12329: # 1278 "/usr/include/c++/12/complex" 3 12329: void 12329: real(double __val) { __real__ _M_value = __val; } 12329: 12329: void 12329: imag(double __val) { __imag__ _M_value = __val; } 12329: 12329: complex& 12329: operator=(double __d) 12329: { 12329: _M_value = __d; 12329: return *this; 12329: } 12329: 12329: complex& 12329: operator+=(double __d) 12329: { 12329: _M_value += __d; 12329: return *this; 12329: } 12329: 12329: complex& 12329: operator-=(double __d) 12329: { 12329: _M_value -= __d; 12329: return *this; 12329: } 12329: 12329: complex& 12329: operator*=(double __d) 12329: { 12329: _M_value *= __d; 12329: return *this; 12329: } 12329: 12329: complex& 12329: operator/=(double __d) 12329: { 12329: _M_value /= __d; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: constexpr complex& operator=(const complex&) = default; 12329: 12329: 12329: template 12329: complex& 12329: operator=(const complex<_Tp>& __z) 12329: { 12329: _M_value = __z.__rep(); 12329: return *this; 12329: } 12329: 12329: template 12329: complex& 12329: operator+=(const complex<_Tp>& __z) 12329: { 12329: _M_value += __z.__rep(); 12329: return *this; 12329: } 12329: 12329: template 12329: complex& 12329: operator-=(const complex<_Tp>& __z) 12329: { 12329: _M_value -= __z.__rep(); 12329: return *this; 12329: } 12329: 12329: template 12329: complex& 12329: operator*=(const complex<_Tp>& __z) 12329: { 12329: const _ComplexT __t = __z.__rep(); 12329: _M_value *= __t; 12329: return *this; 12329: } 12329: 12329: template 12329: complex& 12329: operator/=(const complex<_Tp>& __z) 12329: { 12329: const _ComplexT __t = __z.__rep(); 12329: _M_value /= __t; 12329: return *this; 12329: } 12329: 12329: constexpr _ComplexT __rep() const { return _M_value; } 12329: 12329: private: 12329: _ComplexT _M_value; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: class complex 12329: { 12329: public: 12329: typedef long double value_type; 12329: typedef __complex__ long double _ComplexT; 12329: 12329: constexpr complex(_ComplexT __z) : _M_value(__z) { } 12329: 12329: constexpr complex(long double __r = 0.0L, 12329: long double __i = 0.0L) 12329: 12329: : _M_value{ __r, __i } { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: constexpr complex(const complex& __z) 12329: : _M_value(__z.__rep()) { } 12329: 12329: constexpr complex(const complex& __z) 12329: : _M_value(__z.__rep()) { } 12329: 12329: 12329: 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: constexpr long double 12329: real() const { return __real__ _M_value; } 12329: 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: constexpr long double 12329: imag() const { return __imag__ _M_value; } 12329: # 1426 "/usr/include/c++/12/complex" 3 12329: void 12329: real(long double __val) { __real__ _M_value = __val; } 12329: 12329: void 12329: imag(long double __val) { __imag__ _M_value = __val; } 12329: 12329: complex& 12329: operator=(long double __r) 12329: { 12329: _M_value = __r; 12329: return *this; 12329: } 12329: 12329: complex& 12329: operator+=(long double __r) 12329: { 12329: _M_value += __r; 12329: return *this; 12329: } 12329: 12329: complex& 12329: operator-=(long double __r) 12329: { 12329: _M_value -= __r; 12329: return *this; 12329: } 12329: 12329: complex& 12329: operator*=(long double __r) 12329: { 12329: _M_value *= __r; 12329: return *this; 12329: } 12329: 12329: complex& 12329: operator/=(long double __r) 12329: { 12329: _M_value /= __r; 12329: return *this; 12329: } 12329: 12329: 12329: 12329: constexpr complex& operator=(const complex&) = default; 12329: 12329: 12329: template 12329: complex& 12329: operator=(const complex<_Tp>& __z) 12329: { 12329: _M_value = __z.__rep(); 12329: return *this; 12329: } 12329: 12329: template 12329: complex& 12329: operator+=(const complex<_Tp>& __z) 12329: { 12329: _M_value += __z.__rep(); 12329: return *this; 12329: } 12329: 12329: template 12329: complex& 12329: operator-=(const complex<_Tp>& __z) 12329: { 12329: _M_value -= __z.__rep(); 12329: return *this; 12329: } 12329: 12329: template 12329: complex& 12329: operator*=(const complex<_Tp>& __z) 12329: { 12329: const _ComplexT __t = __z.__rep(); 12329: _M_value *= __t; 12329: return *this; 12329: } 12329: 12329: template 12329: complex& 12329: operator/=(const complex<_Tp>& __z) 12329: { 12329: const _ComplexT __t = __z.__rep(); 12329: _M_value /= __t; 12329: return *this; 12329: } 12329: 12329: constexpr _ComplexT __rep() const { return _M_value; } 12329: 12329: private: 12329: _ComplexT _M_value; 12329: }; 12329: 12329: 12329: 12329: inline constexpr 12329: complex::complex(const complex& __z) 12329: : _M_value(__z.__rep()) { } 12329: 12329: inline constexpr 12329: complex::complex(const complex& __z) 12329: : _M_value(__z.__rep()) { } 12329: 12329: inline constexpr 12329: complex::complex(const complex& __z) 12329: : _M_value(__z.__rep()) { } 12329: 12329: 12329: 12329: 12329: 12329: extern template istream& operator>>(istream&, complex&); 12329: extern template ostream& operator<<(ostream&, const complex&); 12329: extern template istream& operator>>(istream&, complex&); 12329: extern template ostream& operator<<(ostream&, const complex&); 12329: extern template istream& operator>>(istream&, complex&); 12329: extern template ostream& operator<<(ostream&, const complex&); 12329: 12329: 12329: extern template wistream& operator>>(wistream&, complex&); 12329: extern template wostream& operator<<(wostream&, const complex&); 12329: extern template wistream& operator>>(wistream&, complex&); 12329: extern template wostream& operator<<(wostream&, const complex&); 12329: extern template wistream& operator>>(wistream&, complex&); 12329: extern template wostream& operator<<(wostream&, const complex&); 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: template std::complex<_Tp> acos(const std::complex<_Tp>&); 12329: template std::complex<_Tp> asin(const std::complex<_Tp>&); 12329: template std::complex<_Tp> atan(const std::complex<_Tp>&); 12329: 12329: template std::complex<_Tp> acosh(const std::complex<_Tp>&); 12329: template std::complex<_Tp> asinh(const std::complex<_Tp>&); 12329: template std::complex<_Tp> atanh(const std::complex<_Tp>&); 12329: 12329: template _Tp fabs(const std::complex<_Tp>&); 12329: 12329: template 12329: inline std::complex<_Tp> 12329: __complex_acos(const std::complex<_Tp>& __z) 12329: { 12329: const std::complex<_Tp> __t = std::asin(__z); 12329: const _Tp __pi_2 = 1.5707963267948966192313216916397514L; 12329: return std::complex<_Tp>(__pi_2 - __t.real(), -__t.imag()); 12329: } 12329: 12329: 12329: inline __complex__ float 12329: __complex_acos(__complex__ float __z) 12329: { return __builtin_cacosf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_acos(__complex__ double __z) 12329: { return __builtin_cacos(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_acos(const __complex__ long double& __z) 12329: { return __builtin_cacosl(__z); } 12329: 12329: template 12329: inline std::complex<_Tp> 12329: acos(const std::complex<_Tp>& __z) 12329: { return __complex_acos(__z.__rep()); } 12329: # 1613 "/usr/include/c++/12/complex" 3 12329: template 12329: inline std::complex<_Tp> 12329: __complex_asin(const std::complex<_Tp>& __z) 12329: { 12329: std::complex<_Tp> __t(-__z.imag(), __z.real()); 12329: __t = std::asinh(__t); 12329: return std::complex<_Tp>(__t.imag(), -__t.real()); 12329: } 12329: 12329: 12329: inline __complex__ float 12329: __complex_asin(__complex__ float __z) 12329: { return __builtin_casinf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_asin(__complex__ double __z) 12329: { return __builtin_casin(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_asin(const __complex__ long double& __z) 12329: { return __builtin_casinl(__z); } 12329: 12329: template 12329: inline std::complex<_Tp> 12329: asin(const std::complex<_Tp>& __z) 12329: { return __complex_asin(__z.__rep()); } 12329: # 1649 "/usr/include/c++/12/complex" 3 12329: template 12329: std::complex<_Tp> 12329: __complex_atan(const std::complex<_Tp>& __z) 12329: { 12329: const _Tp __r2 = __z.real() * __z.real(); 12329: const _Tp __x = _Tp(1.0) - __r2 - __z.imag() * __z.imag(); 12329: 12329: _Tp __num = __z.imag() + _Tp(1.0); 12329: _Tp __den = __z.imag() - _Tp(1.0); 12329: 12329: __num = __r2 + __num * __num; 12329: __den = __r2 + __den * __den; 12329: 12329: return std::complex<_Tp>(_Tp(0.5) * atan2(_Tp(2.0) * __z.real(), __x), 12329: _Tp(0.25) * log(__num / __den)); 12329: } 12329: 12329: 12329: inline __complex__ float 12329: __complex_atan(__complex__ float __z) 12329: { return __builtin_catanf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_atan(__complex__ double __z) 12329: { return __builtin_catan(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_atan(const __complex__ long double& __z) 12329: { return __builtin_catanl(__z); } 12329: 12329: template 12329: inline std::complex<_Tp> 12329: atan(const std::complex<_Tp>& __z) 12329: { return __complex_atan(__z.__rep()); } 12329: # 1693 "/usr/include/c++/12/complex" 3 12329: template 12329: std::complex<_Tp> 12329: __complex_acosh(const std::complex<_Tp>& __z) 12329: { 12329: 12329: return _Tp(2.0) * std::log(std::sqrt(_Tp(0.5) * (__z + _Tp(1.0))) 12329: + std::sqrt(_Tp(0.5) * (__z - _Tp(1.0)))); 12329: } 12329: 12329: 12329: inline __complex__ float 12329: __complex_acosh(__complex__ float __z) 12329: { return __builtin_cacoshf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_acosh(__complex__ double __z) 12329: { return __builtin_cacosh(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_acosh(const __complex__ long double& __z) 12329: { return __builtin_cacoshl(__z); } 12329: 12329: template 12329: inline std::complex<_Tp> 12329: acosh(const std::complex<_Tp>& __z) 12329: { return __complex_acosh(__z.__rep()); } 12329: # 1729 "/usr/include/c++/12/complex" 3 12329: template 12329: std::complex<_Tp> 12329: __complex_asinh(const std::complex<_Tp>& __z) 12329: { 12329: std::complex<_Tp> __t((__z.real() - __z.imag()) 12329: * (__z.real() + __z.imag()) + _Tp(1.0), 12329: _Tp(2.0) * __z.real() * __z.imag()); 12329: __t = std::sqrt(__t); 12329: 12329: return std::log(__t + __z); 12329: } 12329: 12329: 12329: inline __complex__ float 12329: __complex_asinh(__complex__ float __z) 12329: { return __builtin_casinhf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_asinh(__complex__ double __z) 12329: { return __builtin_casinh(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_asinh(const __complex__ long double& __z) 12329: { return __builtin_casinhl(__z); } 12329: 12329: template 12329: inline std::complex<_Tp> 12329: asinh(const std::complex<_Tp>& __z) 12329: { return __complex_asinh(__z.__rep()); } 12329: # 1768 "/usr/include/c++/12/complex" 3 12329: template 12329: std::complex<_Tp> 12329: __complex_atanh(const std::complex<_Tp>& __z) 12329: { 12329: const _Tp __i2 = __z.imag() * __z.imag(); 12329: const _Tp __x = _Tp(1.0) - __i2 - __z.real() * __z.real(); 12329: 12329: _Tp __num = _Tp(1.0) + __z.real(); 12329: _Tp __den = _Tp(1.0) - __z.real(); 12329: 12329: __num = __i2 + __num * __num; 12329: __den = __i2 + __den * __den; 12329: 12329: return std::complex<_Tp>(_Tp(0.25) * (log(__num) - log(__den)), 12329: _Tp(0.5) * atan2(_Tp(2.0) * __z.imag(), __x)); 12329: } 12329: 12329: 12329: inline __complex__ float 12329: __complex_atanh(__complex__ float __z) 12329: { return __builtin_catanhf(__z); } 12329: 12329: inline __complex__ double 12329: __complex_atanh(__complex__ double __z) 12329: { return __builtin_catanh(__z); } 12329: 12329: inline __complex__ long double 12329: __complex_atanh(const __complex__ long double& __z) 12329: { return __builtin_catanhl(__z); } 12329: 12329: template 12329: inline std::complex<_Tp> 12329: atanh(const std::complex<_Tp>& __z) 12329: { return __complex_atanh(__z.__rep()); } 12329: # 1812 "/usr/include/c++/12/complex" 3 12329: template 12329: inline _Tp 12329: 12329: 12329: 12329: fabs(const std::complex<_Tp>& __z) 12329: { return std::abs(__z); } 12329: 12329: 12329: template 12329: inline typename __gnu_cxx::__promote<_Tp>::__type 12329: arg(_Tp __x) 12329: { 12329: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 12329: 12329: return std::signbit(__x) ? __type(3.1415926535897932384626433832795029L) 12329: : __type(); 12329: 12329: 12329: 12329: } 12329: 12329: template 12329: constexpr inline typename __gnu_cxx::__promote<_Tp>::__type 12329: imag(_Tp) 12329: { return _Tp(); } 12329: 12329: template 12329: inline typename __gnu_cxx::__promote<_Tp>::__type 12329: norm(_Tp __x) 12329: { 12329: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 12329: return __type(__x) * __type(__x); 12329: } 12329: 12329: template 12329: constexpr inline typename __gnu_cxx::__promote<_Tp>::__type 12329: real(_Tp __x) 12329: { return __x; } 12329: 12329: template 12329: inline std::complex::__type> 12329: pow(const std::complex<_Tp>& __x, const _Up& __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return std::pow(std::complex<__type>(__x), __type(__y)); 12329: } 12329: 12329: template 12329: inline std::complex::__type> 12329: pow(const _Tp& __x, const std::complex<_Up>& __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return std::pow(__type(__x), std::complex<__type>(__y)); 12329: } 12329: 12329: template 12329: inline std::complex::__type> 12329: pow(const std::complex<_Tp>& __x, const std::complex<_Up>& __y) 12329: { 12329: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 12329: return std::pow(std::complex<__type>(__x), 12329: std::complex<__type>(__y)); 12329: } 12329: 12329: 12329: 12329: template 12329: std::complex<_Tp> proj(const std::complex<_Tp>&); 12329: 12329: 12329: template 12329: inline std::complex<_Tp> 12329: __complex_proj(const std::complex<_Tp>& __z) 12329: { return __z; } 12329: 12329: 12329: inline complex 12329: __complex_proj(const complex& __z) 12329: { return __builtin_cprojf(__z.__rep()); } 12329: 12329: inline complex 12329: __complex_proj(const complex& __z) 12329: { return __builtin_cproj(__z.__rep()); } 12329: 12329: inline complex 12329: __complex_proj(const complex& __z) 12329: { return __builtin_cprojl(__z.__rep()); } 12329: # 1929 "/usr/include/c++/12/complex" 3 12329: template 12329: inline std::complex<_Tp> 12329: proj(const std::complex<_Tp>& __z) 12329: { return __complex_proj(__z); } 12329: 12329: 12329: template 12329: inline std::complex::__type> 12329: proj(_Tp __x) 12329: { 12329: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 12329: return std::proj(std::complex<__type>(__x)); 12329: } 12329: 12329: template 12329: inline 12329: std::complex::__type> 12329: conj(_Tp __x) 12329: { 12329: typedef typename __gnu_cxx::__promote<_Tp>::__type __type; 12329: return std::complex<__type>(__x, -__type()); 12329: } 12329: 12329: 12329: 12329: inline namespace literals { 12329: inline namespace complex_literals { 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wliteral-suffix" 12329: 12329: 12329: constexpr std::complex 12329: operator""if(long double __num) 12329: { return std::complex{0.0F, static_cast(__num)}; } 12329: 12329: constexpr std::complex 12329: operator""if(unsigned long long __num) 12329: { return std::complex{0.0F, static_cast(__num)}; } 12329: 12329: constexpr std::complex 12329: operator""i(long double __num) 12329: { return std::complex{0.0, static_cast(__num)}; } 12329: 12329: constexpr std::complex 12329: operator""i(unsigned long long __num) 12329: { return std::complex{0.0, static_cast(__num)}; } 12329: 12329: constexpr std::complex 12329: operator""il(long double __num) 12329: { return std::complex{0.0L, __num}; } 12329: 12329: constexpr std::complex 12329: operator""il(unsigned long long __num) 12329: { return std::complex{0.0L, static_cast(__num)}; } 12329: 12329: #pragma GCC diagnostic pop 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: } 12329: # 22 "/usr/include/boost/config/no_tr1/complex.hpp" 2 3 4 12329: # 33 "/usr/include/boost/math/special_functions/math_fwd.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost 12329: { 12329: namespace math 12329: { 12329: 12329: 12329: template 12329: typename tools::promote_args::type 12329: beta(RT1 a, RT2 b); 12329: 12329: template 12329: typename tools::promote_args::type 12329: beta(RT1 a, RT2 b, A x); 12329: 12329: template 12329: typename tools::promote_args::type 12329: beta(RT1 a, RT2 b, RT3 x, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: betac(RT1 a, RT2 b, RT3 x); 12329: 12329: template 12329: typename tools::promote_args::type 12329: betac(RT1 a, RT2 b, RT3 x, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibeta(RT1 a, RT2 b, RT3 x); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibeta(RT1 a, RT2 b, RT3 x, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibetac(RT1 a, RT2 b, RT3 x); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibetac(RT1 a, RT2 b, RT3 x, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibeta_inv(T1 a, T2 b, T3 p, T4* py); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibeta_inv(T1 a, T2 b, T3 p, T4* py, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibeta_inv(RT1 a, RT2 b, RT3 p); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibeta_inv(RT1 a, RT2 b, RT3 p, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibeta_inva(RT1 a, RT2 b, RT3 p); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibeta_inva(RT1 a, RT2 b, RT3 p, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibeta_invb(RT1 a, RT2 b, RT3 p); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibeta_invb(RT1 a, RT2 b, RT3 p, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibetac_inv(T1 a, T2 b, T3 q, T4* py); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibetac_inv(T1 a, T2 b, T3 q, T4* py, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibetac_inv(RT1 a, RT2 b, RT3 q); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibetac_inv(RT1 a, RT2 b, RT3 q, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibetac_inva(RT1 a, RT2 b, RT3 q); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibetac_inva(RT1 a, RT2 b, RT3 q, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibetac_invb(RT1 a, RT2 b, RT3 q); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibetac_invb(RT1 a, RT2 b, RT3 q, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibeta_derivative(RT1 a, RT2 b, RT3 x); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ibeta_derivative(RT1 a, RT2 b, RT3 x, const Policy& pol); 12329: 12329: 12329: template 12329: T binomial_coefficient(unsigned n, unsigned k, const Policy& pol); 12329: template 12329: T binomial_coefficient(unsigned n, unsigned k); 12329: 12329: 12329: template 12329: typename tools::promote_args::type erf(RT z); 12329: template 12329: typename tools::promote_args::type erf(RT z, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type erfc(RT z); 12329: template 12329: typename tools::promote_args::type erfc(RT z, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type erf_inv(RT z); 12329: template 12329: typename tools::promote_args::type erf_inv(RT z, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type erfc_inv(RT z); 12329: template 12329: typename tools::promote_args::type erfc_inv(RT z, const Policy& pol); 12329: 12329: 12329: template 12329: typename tools::promote_args::type 12329: legendre_next(unsigned l, T1 x, T2 Pl, T3 Plm1); 12329: 12329: template 12329: typename tools::promote_args::type 12329: legendre_p(int l, T x); 12329: template 12329: typename tools::promote_args::type 12329: legendre_p_prime(int l, T x); 12329: 12329: 12329: template 12329: inline std::vector legendre_p_zeros(int l, const Policy& pol); 12329: 12329: template 12329: inline std::vector legendre_p_zeros(int l); 12329: 12329: 12329: template 12329: typename boost::enable_if_c::value, typename tools::promote_args::type>::type 12329: legendre_p(int l, T x, const Policy& pol); 12329: template 12329: inline typename boost::enable_if_c::value, typename tools::promote_args::type>::type 12329: legendre_p_prime(int l, T x, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: legendre_q(unsigned l, T x); 12329: 12329: template 12329: typename boost::enable_if_c::value, typename tools::promote_args::type>::type 12329: legendre_q(unsigned l, T x, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: legendre_next(unsigned l, unsigned m, T1 x, T2 Pl, T3 Plm1); 12329: 12329: template 12329: typename tools::promote_args::type 12329: legendre_p(int l, int m, T x); 12329: 12329: template 12329: typename tools::promote_args::type 12329: legendre_p(int l, int m, T x, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: laguerre_next(unsigned n, T1 x, T2 Ln, T3 Lnm1); 12329: 12329: template 12329: typename tools::promote_args::type 12329: laguerre_next(unsigned n, unsigned l, T1 x, T2 Pl, T3 Plm1); 12329: 12329: template 12329: typename tools::promote_args::type 12329: laguerre(unsigned n, T x); 12329: 12329: template 12329: typename tools::promote_args::type 12329: laguerre(unsigned n, unsigned m, T x, const Policy& pol); 12329: 12329: template 12329: struct laguerre_result 12329: { 12329: typedef typename mpl::if_< 12329: policies::is_policy, 12329: typename tools::promote_args::type, 12329: typename tools::promote_args::type 12329: >::type type; 12329: }; 12329: 12329: template 12329: typename laguerre_result::type 12329: laguerre(unsigned n, T1 m, T2 x); 12329: 12329: template 12329: typename tools::promote_args::type 12329: hermite(unsigned n, T x); 12329: 12329: template 12329: typename tools::promote_args::type 12329: hermite(unsigned n, T x, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: hermite_next(unsigned n, T1 x, T2 Hn, T3 Hnm1); 12329: 12329: template 12329: typename tools::promote_args::type chebyshev_next(T1 const & x, T2 const & Tn, T3 const & Tn_1); 12329: 12329: template 12329: typename tools::promote_args::type 12329: chebyshev_t(unsigned n, Real const & x, const Policy&); 12329: template 12329: typename tools::promote_args::type chebyshev_t(unsigned n, Real const & x); 12329: 12329: template 12329: typename tools::promote_args::type 12329: chebyshev_u(unsigned n, Real const & x, const Policy&); 12329: template 12329: typename tools::promote_args::type chebyshev_u(unsigned n, Real const & x); 12329: 12329: template 12329: typename tools::promote_args::type 12329: chebyshev_t_prime(unsigned n, Real const & x, const Policy&); 12329: template 12329: typename tools::promote_args::type chebyshev_t_prime(unsigned n, Real const & x); 12329: 12329: template 12329: Real chebyshev_clenshaw_recurrence(const Real* const c, size_t length, const T2& x); 12329: 12329: template 12329: std::complex::type> 12329: spherical_harmonic(unsigned n, int m, T1 theta, T2 phi); 12329: 12329: template 12329: std::complex::type> 12329: spherical_harmonic(unsigned n, int m, T1 theta, T2 phi, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: spherical_harmonic_r(unsigned n, int m, T1 theta, T2 phi); 12329: 12329: template 12329: typename tools::promote_args::type 12329: spherical_harmonic_r(unsigned n, int m, T1 theta, T2 phi, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: spherical_harmonic_i(unsigned n, int m, T1 theta, T2 phi); 12329: 12329: template 12329: typename tools::promote_args::type 12329: spherical_harmonic_i(unsigned n, int m, T1 theta, T2 phi, const Policy& pol); 12329: 12329: 12329: template 12329: typename tools::promote_args::type 12329: ellint_rf(T1 x, T2 y, T3 z); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ellint_rf(T1 x, T2 y, T3 z, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ellint_rd(T1 x, T2 y, T3 z); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ellint_rd(T1 x, T2 y, T3 z, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ellint_rc(T1 x, T2 y); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ellint_rc(T1 x, T2 y, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ellint_rj(T1 x, T2 y, T3 z, T4 p); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ellint_rj(T1 x, T2 y, T3 z, T4 p, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ellint_rg(T1 x, T2 y, T3 z); 12329: 12329: template 12329: typename tools::promote_args::type 12329: ellint_rg(T1 x, T2 y, T3 z, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type ellint_2(T k); 12329: 12329: template 12329: typename tools::promote_args::type ellint_2(T1 k, T2 phi); 12329: 12329: template 12329: typename tools::promote_args::type ellint_2(T1 k, T2 phi, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type ellint_1(T k); 12329: 12329: template 12329: typename tools::promote_args::type ellint_1(T1 k, T2 phi); 12329: 12329: template 12329: typename tools::promote_args::type ellint_1(T1 k, T2 phi, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type ellint_d(T k); 12329: 12329: template 12329: typename tools::promote_args::type ellint_d(T1 k, T2 phi); 12329: 12329: template 12329: typename tools::promote_args::type ellint_d(T1 k, T2 phi, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_zeta(T1 k, T2 phi); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_zeta(T1 k, T2 phi, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type heuman_lambda(T1 k, T2 phi); 12329: 12329: template 12329: typename tools::promote_args::type heuman_lambda(T1 k, T2 phi, const Policy& pol); 12329: 12329: namespace detail{ 12329: 12329: template 12329: struct ellint_3_result 12329: { 12329: typedef typename mpl::if_< 12329: policies::is_policy, 12329: typename tools::promote_args::type, 12329: typename tools::promote_args::type 12329: >::type type; 12329: }; 12329: 12329: } 12329: 12329: 12329: template 12329: typename detail::ellint_3_result::type ellint_3(T1 k, T2 v, T3 phi); 12329: 12329: template 12329: typename tools::promote_args::type ellint_3(T1 k, T2 v, T3 phi, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type ellint_3(T1 k, T2 v); 12329: 12329: 12329: 12329: template 12329: struct max_factorial; 12329: template 12329: RT factorial(unsigned int); 12329: template 12329: RT factorial(unsigned int, const Policy& pol); 12329: template 12329: RT unchecked_factorial(unsigned int ); 12329: template 12329: RT double_factorial(unsigned i); 12329: template 12329: RT double_factorial(unsigned i, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type falling_factorial(RT x, unsigned n); 12329: 12329: template 12329: typename tools::promote_args::type falling_factorial(RT x, unsigned n, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type rising_factorial(RT x, int n); 12329: 12329: template 12329: typename tools::promote_args::type rising_factorial(RT x, int n, const Policy& pol); 12329: 12329: 12329: template 12329: typename tools::promote_args::type tgamma(RT z); 12329: 12329: template 12329: typename tools::promote_args::type tgamma1pm1(RT z); 12329: 12329: template 12329: typename tools::promote_args::type tgamma1pm1(RT z, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type tgamma(RT1 a, RT2 z); 12329: 12329: template 12329: typename tools::promote_args::type tgamma(RT1 a, RT2 z, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type lgamma(RT z, int* sign); 12329: 12329: template 12329: typename tools::promote_args::type lgamma(RT z, int* sign, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type lgamma(RT x); 12329: 12329: template 12329: typename tools::promote_args::type lgamma(RT x, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type tgamma_lower(RT1 a, RT2 z); 12329: 12329: template 12329: typename tools::promote_args::type tgamma_lower(RT1 a, RT2 z, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type gamma_q(RT1 a, RT2 z); 12329: 12329: template 12329: typename tools::promote_args::type gamma_q(RT1 a, RT2 z, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type gamma_p(RT1 a, RT2 z); 12329: 12329: template 12329: typename tools::promote_args::type gamma_p(RT1 a, RT2 z, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type tgamma_delta_ratio(T1 z, T2 delta); 12329: 12329: template 12329: typename tools::promote_args::type tgamma_delta_ratio(T1 z, T2 delta, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type tgamma_ratio(T1 a, T2 b); 12329: 12329: template 12329: typename tools::promote_args::type tgamma_ratio(T1 a, T2 b, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type gamma_p_derivative(T1 a, T2 x); 12329: 12329: template 12329: typename tools::promote_args::type gamma_p_derivative(T1 a, T2 x, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type gamma_p_inv(T1 a, T2 p); 12329: 12329: template 12329: typename tools::promote_args::type gamma_p_inva(T1 a, T2 p, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type gamma_p_inva(T1 a, T2 p); 12329: 12329: template 12329: typename tools::promote_args::type gamma_p_inv(T1 a, T2 p, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type gamma_q_inv(T1 a, T2 q); 12329: 12329: template 12329: typename tools::promote_args::type gamma_q_inv(T1 a, T2 q, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type gamma_q_inva(T1 a, T2 q); 12329: 12329: template 12329: typename tools::promote_args::type gamma_q_inva(T1 a, T2 q, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type digamma(T x); 12329: 12329: template 12329: typename tools::promote_args::type digamma(T x, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type trigamma(T x); 12329: 12329: template 12329: typename tools::promote_args::type trigamma(T x, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type polygamma(int n, T x); 12329: 12329: template 12329: typename tools::promote_args::type polygamma(int n, T x, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type 12329: hypot(T1 x, T2 y); 12329: 12329: template 12329: typename tools::promote_args::type 12329: hypot(T1 x, T2 y, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type cbrt(RT z); 12329: 12329: template 12329: typename tools::promote_args::type cbrt(RT z, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type log1p(T); 12329: 12329: template 12329: typename tools::promote_args::type log1p(T, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type log1pmx(T); 12329: 12329: template 12329: typename tools::promote_args::type log1pmx(T, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type expm1(T); 12329: 12329: template 12329: typename tools::promote_args::type expm1(T, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type 12329: powm1(const T1 a, const T2 z); 12329: 12329: template 12329: typename tools::promote_args::type 12329: powm1(const T1 a, const T2 z, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type sqrt1pm1(const T& val); 12329: 12329: template 12329: typename tools::promote_args::type sqrt1pm1(const T& val, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type sinc_pi(T x); 12329: 12329: template 12329: typename tools::promote_args::type sinc_pi(T x, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type sinhc_pi(T x); 12329: 12329: template 12329: typename tools::promote_args::type sinhc_pi(T x, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type asinh(T x); 12329: 12329: template 12329: typename tools::promote_args::type asinh(T x, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type acosh(T x); 12329: 12329: template 12329: typename tools::promote_args::type acosh(T x, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type atanh(T x); 12329: 12329: template 12329: typename tools::promote_args::type atanh(T x, const Policy&); 12329: 12329: namespace detail{ 12329: 12329: typedef boost::integral_constant bessel_no_int_tag; 12329: typedef boost::integral_constant bessel_maybe_int_tag; 12329: typedef boost::integral_constant bessel_int_tag; 12329: 12329: template 12329: struct bessel_traits 12329: { 12329: typedef typename mpl::if_< 12329: is_integral, 12329: typename tools::promote_args::type, 12329: typename tools::promote_args::type 12329: >::type result_type; 12329: 12329: typedef typename policies::precision::type precision_type; 12329: 12329: typedef typename mpl::if_< 12329: mpl::or_< 12329: mpl::less_equal >, 12329: mpl::greater > >, 12329: bessel_no_int_tag, 12329: typename mpl::if_< 12329: is_integral, 12329: bessel_int_tag, 12329: bessel_maybe_int_tag 12329: >::type 12329: >::type optimisation_tag; 12329: typedef typename mpl::if_< 12329: mpl::or_< 12329: mpl::less_equal >, 12329: mpl::greater > >, 12329: bessel_no_int_tag, 12329: typename mpl::if_< 12329: is_integral, 12329: bessel_int_tag, 12329: bessel_maybe_int_tag 12329: >::type 12329: >::type optimisation_tag128; 12329: }; 12329: } 12329: 12329: 12329: template 12329: typename detail::bessel_traits::result_type cyl_bessel_j(T1 v, T2 x, const Policy& pol); 12329: template 12329: typename detail::bessel_traits::result_type cyl_bessel_j_prime(T1 v, T2 x, const Policy& pol); 12329: 12329: template 12329: typename detail::bessel_traits >::result_type cyl_bessel_j(T1 v, T2 x); 12329: template 12329: typename detail::bessel_traits >::result_type cyl_bessel_j_prime(T1 v, T2 x); 12329: 12329: template 12329: typename detail::bessel_traits::result_type sph_bessel(unsigned v, T x, const Policy& pol); 12329: template 12329: typename detail::bessel_traits::result_type sph_bessel_prime(unsigned v, T x, const Policy& pol); 12329: 12329: template 12329: typename detail::bessel_traits >::result_type sph_bessel(unsigned v, T x); 12329: template 12329: typename detail::bessel_traits >::result_type sph_bessel_prime(unsigned v, T x); 12329: 12329: template 12329: typename detail::bessel_traits::result_type cyl_bessel_i(T1 v, T2 x, const Policy& pol); 12329: template 12329: typename detail::bessel_traits::result_type cyl_bessel_i_prime(T1 v, T2 x, const Policy& pol); 12329: 12329: template 12329: typename detail::bessel_traits >::result_type cyl_bessel_i(T1 v, T2 x); 12329: template 12329: typename detail::bessel_traits >::result_type cyl_bessel_i_prime(T1 v, T2 x); 12329: 12329: template 12329: typename detail::bessel_traits::result_type cyl_bessel_k(T1 v, T2 x, const Policy& pol); 12329: template 12329: typename detail::bessel_traits::result_type cyl_bessel_k_prime(T1 v, T2 x, const Policy& pol); 12329: 12329: template 12329: typename detail::bessel_traits >::result_type cyl_bessel_k(T1 v, T2 x); 12329: template 12329: typename detail::bessel_traits >::result_type cyl_bessel_k_prime(T1 v, T2 x); 12329: 12329: template 12329: typename detail::bessel_traits::result_type cyl_neumann(T1 v, T2 x, const Policy& pol); 12329: template 12329: typename detail::bessel_traits::result_type cyl_neumann_prime(T1 v, T2 x, const Policy& pol); 12329: 12329: template 12329: typename detail::bessel_traits >::result_type cyl_neumann(T1 v, T2 x); 12329: template 12329: typename detail::bessel_traits >::result_type cyl_neumann_prime(T1 v, T2 x); 12329: 12329: template 12329: typename detail::bessel_traits::result_type sph_neumann(unsigned v, T x, const Policy& pol); 12329: template 12329: typename detail::bessel_traits::result_type sph_neumann_prime(unsigned v, T x, const Policy& pol); 12329: 12329: template 12329: typename detail::bessel_traits >::result_type sph_neumann(unsigned v, T x); 12329: template 12329: typename detail::bessel_traits >::result_type sph_neumann_prime(unsigned v, T x); 12329: 12329: template 12329: typename detail::bessel_traits::result_type cyl_bessel_j_zero(T v, int m, const Policy& pol); 12329: 12329: template 12329: typename detail::bessel_traits >::result_type cyl_bessel_j_zero(T v, int m); 12329: 12329: template 12329: OutputIterator cyl_bessel_j_zero(T v, 12329: int start_index, 12329: unsigned number_of_zeros, 12329: OutputIterator out_it); 12329: 12329: template 12329: OutputIterator cyl_bessel_j_zero(T v, 12329: int start_index, 12329: unsigned number_of_zeros, 12329: OutputIterator out_it, 12329: const Policy&); 12329: 12329: template 12329: typename detail::bessel_traits::result_type cyl_neumann_zero(T v, int m, const Policy& pol); 12329: 12329: template 12329: typename detail::bessel_traits >::result_type cyl_neumann_zero(T v, int m); 12329: 12329: template 12329: OutputIterator cyl_neumann_zero(T v, 12329: int start_index, 12329: unsigned number_of_zeros, 12329: OutputIterator out_it); 12329: 12329: template 12329: OutputIterator cyl_neumann_zero(T v, 12329: int start_index, 12329: unsigned number_of_zeros, 12329: OutputIterator out_it, 12329: const Policy&); 12329: 12329: template 12329: std::complex >::result_type> cyl_hankel_1(T1 v, T2 x); 12329: 12329: template 12329: std::complex::result_type> cyl_hankel_1(T1 v, T2 x, const Policy& pol); 12329: 12329: template 12329: std::complex::result_type> cyl_hankel_2(T1 v, T2 x, const Policy& pol); 12329: 12329: template 12329: std::complex >::result_type> cyl_hankel_2(T1 v, T2 x); 12329: 12329: template 12329: std::complex::result_type> sph_hankel_1(T1 v, T2 x, const Policy& pol); 12329: 12329: template 12329: std::complex >::result_type> sph_hankel_1(T1 v, T2 x); 12329: 12329: template 12329: std::complex::result_type> sph_hankel_2(T1 v, T2 x, const Policy& pol); 12329: 12329: template 12329: std::complex >::result_type> sph_hankel_2(T1 v, T2 x); 12329: 12329: template 12329: typename tools::promote_args::type airy_ai(T x, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type airy_ai(T x); 12329: 12329: template 12329: typename tools::promote_args::type airy_bi(T x, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type airy_bi(T x); 12329: 12329: template 12329: typename tools::promote_args::type airy_ai_prime(T x, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type airy_ai_prime(T x); 12329: 12329: template 12329: typename tools::promote_args::type airy_bi_prime(T x, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type airy_bi_prime(T x); 12329: 12329: template 12329: T airy_ai_zero(int m); 12329: template 12329: T airy_ai_zero(int m, const Policy&); 12329: 12329: template 12329: OutputIterator airy_ai_zero( 12329: int start_index, 12329: unsigned number_of_zeros, 12329: OutputIterator out_it); 12329: template 12329: OutputIterator airy_ai_zero( 12329: int start_index, 12329: unsigned number_of_zeros, 12329: OutputIterator out_it, 12329: const Policy&); 12329: 12329: template 12329: T airy_bi_zero(int m); 12329: template 12329: T airy_bi_zero(int m, const Policy&); 12329: 12329: template 12329: OutputIterator airy_bi_zero( 12329: int start_index, 12329: unsigned number_of_zeros, 12329: OutputIterator out_it); 12329: template 12329: OutputIterator airy_bi_zero( 12329: int start_index, 12329: unsigned number_of_zeros, 12329: OutputIterator out_it, 12329: const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type sin_pi(T x, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type sin_pi(T x); 12329: 12329: template 12329: typename tools::promote_args::type cos_pi(T x, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type cos_pi(T x); 12329: 12329: template 12329: int fpclassify (T t); 12329: 12329: template 12329: bool isfinite (T z); 12329: 12329: template 12329: bool isinf (T t); 12329: 12329: template 12329: bool isnan (T t); 12329: 12329: template 12329: bool isnormal (T t); 12329: 12329: template 12329: int signbit (T x); 12329: 12329: template 12329: int sign (const T& z); 12329: 12329: template 12329: typename tools::promote_args_permissive::type copysign (const T& x, const U& y); 12329: 12329: template 12329: typename tools::promote_args_permissive::type changesign (const T& z); 12329: 12329: 12329: namespace detail{ 12329: 12329: template 12329: struct expint_result 12329: { 12329: typedef typename mpl::if_< 12329: policies::is_policy, 12329: typename tools::promote_args::type, 12329: typename tools::promote_args::type 12329: >::type type; 12329: }; 12329: 12329: } 12329: 12329: template 12329: typename tools::promote_args::type expint(unsigned n, T z, const Policy&); 12329: 12329: template 12329: typename detail::expint_result::type expint(T const z, U const u); 12329: 12329: template 12329: typename tools::promote_args::type expint(T z); 12329: 12329: 12329: template 12329: typename tools::promote_args::type zeta(T s, const Policy&); 12329: 12329: 12329: template 12329: typename tools::promote_args::type owens_t(T1 h, T2 a, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type owens_t(T1 h, T2 a); 12329: 12329: 12329: template 12329: typename tools::promote_args::type jacobi_elliptic(T k, U theta, V* pcn, V* pdn, const Policy&); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_elliptic(T k, U theta, V* pcn = 0, V* pdn = 0); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_sn(U k, T theta, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_sn(U k, T theta); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_cn(T k, U theta, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_cn(T k, U theta); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_dn(T k, U theta, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_dn(T k, U theta); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_cd(T k, U theta, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_cd(T k, U theta); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_dc(T k, U theta, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_dc(T k, U theta); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_ns(T k, U theta, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_ns(T k, U theta); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_sd(T k, U theta, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_sd(T k, U theta); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_ds(T k, U theta, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_ds(T k, U theta); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_nc(T k, U theta, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_nc(T k, U theta); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_nd(T k, U theta, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_nd(T k, U theta); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_sc(T k, U theta, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_sc(T k, U theta); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_cs(T k, U theta, const Policy& pol); 12329: 12329: template 12329: typename tools::promote_args::type jacobi_cs(T k, U theta); 12329: 12329: 12329: template 12329: typename tools::promote_args::type zeta(T s); 12329: 12329: 12329: template 12329: typename tools::promote_args::type pow(T base, const Policy& policy); 12329: 12329: template 12329: typename tools::promote_args::type pow(T base); 12329: 12329: 12329: template 12329: typename tools::promote_args::type nextafter(const T&, const U&, const Policy&); 12329: template 12329: typename tools::promote_args::type nextafter(const T&, const U&); 12329: template 12329: typename tools::promote_args::type float_next(const T&, const Policy&); 12329: template 12329: typename tools::promote_args::type float_next(const T&); 12329: template 12329: typename tools::promote_args::type float_prior(const T&, const Policy&); 12329: template 12329: typename tools::promote_args::type float_prior(const T&); 12329: template 12329: typename tools::promote_args::type float_distance(const T&, const U&, const Policy&); 12329: template 12329: typename tools::promote_args::type float_distance(const T&, const U&); 12329: template 12329: typename tools::promote_args::type float_advance(T val, int distance, const Policy& pol); 12329: template 12329: typename tools::promote_args::type float_advance(const T& val, int distance); 12329: 12329: template 12329: typename tools::promote_args::type ulp(const T& val, const Policy& pol); 12329: template 12329: typename tools::promote_args::type ulp(const T& val); 12329: 12329: template 12329: typename tools::promote_args::type relative_difference(const T&, const U&); 12329: template 12329: typename tools::promote_args::type epsilon_difference(const T&, const U&); 12329: 12329: template 12329: constexpr T unchecked_bernoulli_b2n(const std::size_t n); 12329: template 12329: T bernoulli_b2n(const int i, const Policy &pol); 12329: template 12329: T bernoulli_b2n(const int i); 12329: template 12329: OutputIterator bernoulli_b2n(const int start_index, 12329: const unsigned number_of_bernoullis_b2n, 12329: OutputIterator out_it, 12329: const Policy& pol); 12329: template 12329: OutputIterator bernoulli_b2n(const int start_index, 12329: const unsigned number_of_bernoullis_b2n, 12329: OutputIterator out_it); 12329: template 12329: T tangent_t2n(const int i, const Policy &pol); 12329: template 12329: T tangent_t2n(const int i); 12329: template 12329: OutputIterator tangent_t2n(const int start_index, 12329: const unsigned number_of_bernoullis_b2n, 12329: OutputIterator out_it, 12329: const Policy& pol); 12329: template 12329: OutputIterator tangent_t2n(const int start_index, 12329: const unsigned number_of_bernoullis_b2n, 12329: OutputIterator out_it); 12329: 12329: 12329: template 12329: typename boost::math::tools::promote_args::type lambert_w0(T z, const Policy& pol); 12329: template 12329: typename boost::math::tools::promote_args::type lambert_w0(T z); 12329: template 12329: typename boost::math::tools::promote_args::type lambert_wm1(T z, const Policy& pol); 12329: template 12329: typename boost::math::tools::promote_args::type lambert_wm1(T z); 12329: template 12329: typename boost::math::tools::promote_args::type lambert_w0_prime(T z, const Policy& pol); 12329: template 12329: typename boost::math::tools::promote_args::type lambert_w0_prime(T z); 12329: template 12329: typename boost::math::tools::promote_args::type lambert_wm1_prime(T z, const Policy& pol); 12329: template 12329: typename boost::math::tools::promote_args::type lambert_wm1_prime(T z); 12329: 12329: 12329: template typename tools::promote_args::type hypergeometric_1F0(T1 a, T2 z); 12329: template typename tools::promote_args::type hypergeometric_1F0(T1 a, T2 z, const Policy&); 12329: 12329: template typename tools::promote_args::type hypergeometric_0F1(T1 b, T2 z); 12329: template typename tools::promote_args::type hypergeometric_0F1(T1 b, T2 z, const Policy&); 12329: 12329: template typename tools::promote_args::type hypergeometric_2F0(T1 a1, T2 a2, T3 z); 12329: template typename tools::promote_args::type hypergeometric_2F0(T1 a1, T2 a2, T3 z, const Policy&); 12329: 12329: template typename tools::promote_args::type hypergeometric_1F1(T1 a, T2 b, T3 z); 12329: template typename tools::promote_args::type hypergeometric_1F1(T1 a, T2 b, T3 z, const Policy&); 12329: 12329: 12329: } 12329: } 12329: # 18 "/usr/include/boost/math/special_functions/sign.hpp" 2 3 4 12329: # 1 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 1 3 4 12329: # 23 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 3 4 12329: # 1 "/usr/include/c++/12/cstring" 1 3 4 12329: # 39 "/usr/include/c++/12/cstring" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cstring" 3 12329: # 24 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/assert.hpp" 1 3 4 12329: # 58 "/usr/include/boost/assert.hpp" 3 4 12329: # 1 "/usr/include/assert.h" 1 3 4 12329: # 59 "/usr/include/boost/assert.hpp" 2 3 4 12329: # 26 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 2 3 4 12329: # 1 "/usr/include/boost/cstdint.hpp" 1 3 4 12329: # 27 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 2 3 4 12329: # 1 "/usr/include/boost/predef/other/endian.h" 1 3 4 12329: # 12 "/usr/include/boost/predef/other/endian.h" 3 4 12329: # 1 "/usr/include/boost/predef/make.h" 1 3 4 12329: # 13 "/usr/include/boost/predef/other/endian.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/library/c/gnu.h" 1 3 4 12329: # 12 "/usr/include/boost/predef/library/c/gnu.h" 3 4 12329: # 1 "/usr/include/boost/predef/make.h" 1 3 4 12329: # 13 "/usr/include/boost/predef/library/c/gnu.h" 2 3 4 12329: 12329: # 1 "/usr/include/boost/predef/library/c/_prefix.h" 1 3 4 12329: # 11 "/usr/include/boost/predef/library/c/_prefix.h" 3 4 12329: # 1 "/usr/include/boost/predef/detail/_cassert.h" 1 3 4 12329: # 12 "/usr/include/boost/predef/detail/_cassert.h" 3 4 12329: # 1 "/usr/include/c++/12/cassert" 1 3 4 12329: # 41 "/usr/include/c++/12/cassert" 3 4 12329: 12329: # 42 "/usr/include/c++/12/cassert" 3 12329: 12329: 12329: # 1 "/usr/include/assert.h" 1 3 4 12329: # 45 "/usr/include/c++/12/cassert" 2 3 12329: # 13 "/usr/include/boost/predef/detail/_cassert.h" 2 3 4 12329: # 12 "/usr/include/boost/predef/library/c/_prefix.h" 2 3 4 12329: # 15 "/usr/include/boost/predef/library/c/gnu.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/lib/gcc/aarch64-linux-gnu/12/include/stddef.h" 1 3 4 12329: # 18 "/usr/include/boost/predef/library/c/gnu.h" 2 3 4 12329: # 62 "/usr/include/boost/predef/library/c/gnu.h" 3 4 12329: 12329: # 14 "/usr/include/boost/predef/other/endian.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/macos.h" 1 3 4 12329: # 17 "/usr/include/boost/predef/os/macos.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/ios.h" 1 3 4 12329: # 13 "/usr/include/boost/predef/os/ios.h" 3 4 12329: # 1 "/usr/include/boost/predef/make.h" 1 3 4 12329: # 14 "/usr/include/boost/predef/os/ios.h" 2 3 4 12329: # 52 "/usr/include/boost/predef/os/ios.h" 3 4 12329: 12329: # 18 "/usr/include/boost/predef/os/macos.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/predef/make.h" 1 3 4 12329: # 21 "/usr/include/boost/predef/os/macos.h" 2 3 4 12329: # 66 "/usr/include/boost/predef/os/macos.h" 3 4 12329: 12329: # 15 "/usr/include/boost/predef/other/endian.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd.h" 1 3 4 12329: # 16 "/usr/include/boost/predef/os/bsd.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/macos.h" 1 3 4 12329: # 66 "/usr/include/boost/predef/os/macos.h" 3 4 12329: 12329: # 17 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/predef/make.h" 1 3 4 12329: # 20 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 53 "/usr/include/boost/predef/os/bsd.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/bsdi.h" 1 3 4 12329: # 11 "/usr/include/boost/predef/os/bsd/bsdi.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd.h" 1 3 4 12329: # 95 "/usr/include/boost/predef/os/bsd.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/bsdi.h" 1 3 4 12329: # 49 "/usr/include/boost/predef/os/bsd/bsdi.h" 3 4 12329: 12329: # 96 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/dragonfly.h" 1 3 4 12329: # 11 "/usr/include/boost/predef/os/bsd/dragonfly.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd.h" 1 3 4 12329: # 95 "/usr/include/boost/predef/os/bsd.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/bsdi.h" 1 3 4 12329: # 49 "/usr/include/boost/predef/os/bsd/bsdi.h" 3 4 12329: 12329: # 96 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/dragonfly.h" 1 3 4 12329: # 51 "/usr/include/boost/predef/os/bsd/dragonfly.h" 3 4 12329: 12329: # 97 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/free.h" 1 3 4 12329: # 11 "/usr/include/boost/predef/os/bsd/free.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd.h" 1 3 4 12329: # 95 "/usr/include/boost/predef/os/bsd.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/bsdi.h" 1 3 4 12329: # 49 "/usr/include/boost/predef/os/bsd/bsdi.h" 3 4 12329: 12329: # 96 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/dragonfly.h" 1 3 4 12329: # 51 "/usr/include/boost/predef/os/bsd/dragonfly.h" 3 4 12329: 12329: # 97 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/free.h" 1 3 4 12329: # 68 "/usr/include/boost/predef/os/bsd/free.h" 3 4 12329: 12329: # 98 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/open.h" 1 3 4 12329: # 11 "/usr/include/boost/predef/os/bsd/open.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd.h" 1 3 4 12329: # 95 "/usr/include/boost/predef/os/bsd.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/bsdi.h" 1 3 4 12329: # 49 "/usr/include/boost/predef/os/bsd/bsdi.h" 3 4 12329: 12329: # 96 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/dragonfly.h" 1 3 4 12329: # 51 "/usr/include/boost/predef/os/bsd/dragonfly.h" 3 4 12329: 12329: # 97 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/free.h" 1 3 4 12329: # 68 "/usr/include/boost/predef/os/bsd/free.h" 3 4 12329: 12329: # 98 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/open.h" 1 3 4 12329: # 252 "/usr/include/boost/predef/os/bsd/open.h" 3 4 12329: 12329: # 99 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/net.h" 1 3 4 12329: # 11 "/usr/include/boost/predef/os/bsd/net.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd.h" 1 3 4 12329: # 95 "/usr/include/boost/predef/os/bsd.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/bsdi.h" 1 3 4 12329: # 49 "/usr/include/boost/predef/os/bsd/bsdi.h" 3 4 12329: 12329: # 96 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/dragonfly.h" 1 3 4 12329: # 51 "/usr/include/boost/predef/os/bsd/dragonfly.h" 3 4 12329: 12329: # 97 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/free.h" 1 3 4 12329: # 68 "/usr/include/boost/predef/os/bsd/free.h" 3 4 12329: 12329: # 98 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/open.h" 1 3 4 12329: # 252 "/usr/include/boost/predef/os/bsd/open.h" 3 4 12329: 12329: # 99 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/net.h" 1 3 4 12329: # 85 "/usr/include/boost/predef/os/bsd/net.h" 3 4 12329: 12329: # 100 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: 12329: 12329: 12329: # 12 "/usr/include/boost/predef/os/bsd/net.h" 2 3 4 12329: # 85 "/usr/include/boost/predef/os/bsd/net.h" 3 4 12329: 12329: # 100 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: 12329: 12329: 12329: # 12 "/usr/include/boost/predef/os/bsd/open.h" 2 3 4 12329: # 252 "/usr/include/boost/predef/os/bsd/open.h" 3 4 12329: 12329: # 99 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/net.h" 1 3 4 12329: # 85 "/usr/include/boost/predef/os/bsd/net.h" 3 4 12329: 12329: # 100 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: 12329: 12329: 12329: # 12 "/usr/include/boost/predef/os/bsd/free.h" 2 3 4 12329: # 68 "/usr/include/boost/predef/os/bsd/free.h" 3 4 12329: 12329: # 98 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/open.h" 1 3 4 12329: # 252 "/usr/include/boost/predef/os/bsd/open.h" 3 4 12329: 12329: # 99 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/net.h" 1 3 4 12329: # 85 "/usr/include/boost/predef/os/bsd/net.h" 3 4 12329: 12329: # 100 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: 12329: 12329: 12329: # 12 "/usr/include/boost/predef/os/bsd/dragonfly.h" 2 3 4 12329: # 51 "/usr/include/boost/predef/os/bsd/dragonfly.h" 3 4 12329: 12329: # 97 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/free.h" 1 3 4 12329: # 68 "/usr/include/boost/predef/os/bsd/free.h" 3 4 12329: 12329: # 98 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/open.h" 1 3 4 12329: # 252 "/usr/include/boost/predef/os/bsd/open.h" 3 4 12329: 12329: # 99 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/net.h" 1 3 4 12329: # 85 "/usr/include/boost/predef/os/bsd/net.h" 3 4 12329: 12329: # 100 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: 12329: 12329: 12329: # 12 "/usr/include/boost/predef/os/bsd/bsdi.h" 2 3 4 12329: # 49 "/usr/include/boost/predef/os/bsd/bsdi.h" 3 4 12329: 12329: # 54 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/dragonfly.h" 1 3 4 12329: # 51 "/usr/include/boost/predef/os/bsd/dragonfly.h" 3 4 12329: 12329: # 55 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/free.h" 1 3 4 12329: # 68 "/usr/include/boost/predef/os/bsd/free.h" 3 4 12329: 12329: # 56 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/open.h" 1 3 4 12329: # 252 "/usr/include/boost/predef/os/bsd/open.h" 3 4 12329: 12329: # 57 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/net.h" 1 3 4 12329: # 85 "/usr/include/boost/predef/os/bsd/net.h" 3 4 12329: 12329: # 58 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 95 "/usr/include/boost/predef/os/bsd.h" 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/bsdi.h" 1 3 4 12329: # 49 "/usr/include/boost/predef/os/bsd/bsdi.h" 3 4 12329: 12329: # 96 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/dragonfly.h" 1 3 4 12329: # 51 "/usr/include/boost/predef/os/bsd/dragonfly.h" 3 4 12329: 12329: # 97 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/free.h" 1 3 4 12329: # 68 "/usr/include/boost/predef/os/bsd/free.h" 3 4 12329: 12329: # 98 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/open.h" 1 3 4 12329: # 252 "/usr/include/boost/predef/os/bsd/open.h" 3 4 12329: 12329: # 99 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/os/bsd/net.h" 1 3 4 12329: # 85 "/usr/include/boost/predef/os/bsd/net.h" 3 4 12329: 12329: # 100 "/usr/include/boost/predef/os/bsd.h" 2 3 4 12329: 12329: 12329: 12329: # 16 "/usr/include/boost/predef/other/endian.h" 2 3 4 12329: # 1 "/usr/include/boost/predef/platform/android.h" 1 3 4 12329: # 12 "/usr/include/boost/predef/platform/android.h" 3 4 12329: # 1 "/usr/include/boost/predef/make.h" 1 3 4 12329: # 13 "/usr/include/boost/predef/platform/android.h" 2 3 4 12329: # 44 "/usr/include/boost/predef/platform/android.h" 3 4 12329: 12329: # 17 "/usr/include/boost/predef/other/endian.h" 2 3 4 12329: # 195 "/usr/include/boost/predef/other/endian.h" 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 28 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 2 3 4 12329: # 81 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 3 4 12329: namespace boost { 12329: namespace math { 12329: namespace detail { 12329: # 92 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 3 4 12329: struct native_tag {}; 12329: template 12329: struct generic_tag {}; 12329: struct ieee_tag {}; 12329: struct ieee_copy_all_bits_tag : public ieee_tag {}; 12329: struct ieee_copy_leading_bits_tag : public ieee_tag {}; 12329: # 125 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 3 4 12329: struct unknown_precision{}; 12329: struct single_precision {}; 12329: struct double_precision {}; 12329: struct extended_double_precision {}; 12329: 12329: 12329: 12329: template struct fp_traits_native 12329: { 12329: typedef native_tag method; 12329: }; 12329: 12329: 12329: 12329: template struct fp_traits_non_native 12329: { 12329: 12329: typedef generic_tag::is_specialized> method; 12329: 12329: 12329: 12329: }; 12329: # 177 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 3 4 12329: template<> struct fp_traits_non_native 12329: { 12329: typedef ieee_copy_all_bits_tag method; 12329: 12329: static const uint32_t sign = 0x80000000u; 12329: static const uint32_t exponent = 0x7f800000; 12329: static const uint32_t flag = 0x00000000; 12329: static const uint32_t significand = 0x007fffff; 12329: 12329: typedef uint32_t bits; 12329: static void get_bits(float x, uint32_t& a) { std::memcpy(&a, &x, 4); } 12329: static void set_bits(float& x, uint32_t a) { std::memcpy(&x, &a, 4); } 12329: }; 12329: # 232 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 3 4 12329: template<> struct fp_traits_non_native 12329: { 12329: typedef ieee_copy_all_bits_tag method; 12329: 12329: static const uint64_t sign = ((uint64_t)0x80000000u) << 32; 12329: static const uint64_t exponent = ((uint64_t)0x7ff00000) << 32; 12329: static const uint64_t flag = 0; 12329: static const uint64_t significand 12329: = (((uint64_t)0x000fffff) << 32) + ((uint64_t)0xffffffffu); 12329: 12329: typedef uint64_t bits; 12329: static void get_bits(double x, uint64_t& a) { std::memcpy(&a, &x, 8); } 12329: static void set_bits(double& x, uint64_t a) { std::memcpy(&x, &a, 8); } 12329: }; 12329: # 292 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 3 4 12329: template<> struct fp_traits_non_native 12329: { 12329: typedef ieee_copy_all_bits_tag method; 12329: 12329: static const uint64_t sign = (uint64_t)0x80000000u << 32; 12329: static const uint64_t exponent = (uint64_t)0x7ff00000 << 32; 12329: static const uint64_t flag = 0; 12329: static const uint64_t significand 12329: = ((uint64_t)0x000fffff << 32) + (uint64_t)0xffffffffu; 12329: 12329: typedef uint64_t bits; 12329: static void get_bits(long double x, uint64_t& a) { std::memcpy(&a, &x, 8); } 12329: static void set_bits(long double& x, uint64_t a) { std::memcpy(&x, &a, 8); } 12329: }; 12329: # 457 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 3 4 12329: template<> 12329: struct fp_traits_non_native 12329: { 12329: typedef ieee_copy_leading_bits_tag method; 12329: 12329: static const uint32_t sign = 0x80000000u; 12329: static const uint32_t exponent = 0x7fff0000; 12329: static const uint32_t flag = 0x00000000; 12329: static const uint32_t significand = 0x0000ffff; 12329: 12329: typedef uint32_t bits; 12329: 12329: static void get_bits(long double x, uint32_t& a) 12329: { 12329: std::memcpy(&a, reinterpret_cast(&x) + offset_, 4); 12329: } 12329: 12329: static void set_bits(long double& x, uint32_t a) 12329: { 12329: std::memcpy(reinterpret_cast(&x) + offset_, &a, 4); 12329: } 12329: 12329: private: 12329: 12329: 12329: 12329: 12329: static const int offset_ = 12; 12329: 12329: 12329: 12329: }; 12329: # 497 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 3 4 12329: template struct size_to_precision 12329: { 12329: typedef unknown_precision type; 12329: }; 12329: 12329: template<> struct size_to_precision<4, true> 12329: { 12329: typedef single_precision type; 12329: }; 12329: 12329: template<> struct size_to_precision<8, true> 12329: { 12329: typedef double_precision type; 12329: }; 12329: 12329: template<> struct size_to_precision<10, true> 12329: { 12329: typedef extended_double_precision type; 12329: }; 12329: 12329: template<> struct size_to_precision<12, true> 12329: { 12329: typedef extended_double_precision type; 12329: }; 12329: 12329: template<> struct size_to_precision<16, true> 12329: { 12329: typedef extended_double_precision type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct select_native 12329: { 12329: typedef typename size_to_precision::value>::type precision; 12329: typedef fp_traits_non_native type; 12329: }; 12329: template<> 12329: struct select_native 12329: { 12329: typedef fp_traits_native type; 12329: }; 12329: template<> 12329: struct select_native 12329: { 12329: typedef fp_traits_native type; 12329: }; 12329: template<> 12329: struct select_native 12329: { 12329: typedef fp_traits_native type; 12329: }; 12329: # 571 "/usr/include/boost/math/special_functions/detail/fp_traits.hpp" 3 4 12329: template struct fp_traits 12329: { 12329: typedef typename size_to_precision::value>::type precision; 12329: 12329: typedef typename select_native::type type; 12329: 12329: 12329: 12329: typedef fp_traits_non_native sign_change_type; 12329: }; 12329: 12329: 12329: 12329: } 12329: } 12329: } 12329: # 19 "/usr/include/boost/math/special_functions/sign.hpp" 2 3 4 12329: 12329: namespace boost{ namespace math{ 12329: 12329: namespace detail { 12329: 12329: 12329: 12329: 12329: template 12329: inline int signbit_impl(T x, native_tag const&) 12329: { 12329: return (std::signbit)(x) ? 1 : 0; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline int signbit_impl(T x, generic_tag const&) 12329: { 12329: return x < 0; 12329: } 12329: 12329: template 12329: inline int signbit_impl(T x, generic_tag const&) 12329: { 12329: return x < 0; 12329: } 12329: # 67 "/usr/include/boost/math/special_functions/sign.hpp" 3 4 12329: template 12329: inline int signbit_impl(T x, ieee_copy_all_bits_tag const&) 12329: { 12329: typedef typename fp_traits::type traits; 12329: 12329: typename traits::bits a; 12329: traits::get_bits(x,a); 12329: return a & traits::sign ? 1 : 0; 12329: } 12329: 12329: template 12329: inline int signbit_impl(T x, ieee_copy_leading_bits_tag const&) 12329: { 12329: typedef typename fp_traits::type traits; 12329: 12329: typename traits::bits a; 12329: traits::get_bits(x,a); 12329: 12329: return a & traits::sign ? 1 : 0; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline T (changesign_impl)(T x, generic_tag const&) 12329: { 12329: return -x; 12329: } 12329: 12329: template 12329: inline T (changesign_impl)(T x, generic_tag const&) 12329: { 12329: return -x; 12329: } 12329: # 126 "/usr/include/boost/math/special_functions/sign.hpp" 3 4 12329: template 12329: inline T changesign_impl(T x, ieee_copy_all_bits_tag const&) 12329: { 12329: typedef typename fp_traits::sign_change_type traits; 12329: 12329: typename traits::bits a; 12329: traits::get_bits(x,a); 12329: a ^= traits::sign; 12329: traits::set_bits(x,a); 12329: return x; 12329: } 12329: 12329: template 12329: inline T (changesign_impl)(T x, ieee_copy_leading_bits_tag const&) 12329: { 12329: typedef typename fp_traits::sign_change_type traits; 12329: 12329: typename traits::bits a; 12329: traits::get_bits(x,a); 12329: a ^= traits::sign; 12329: traits::set_bits(x,a); 12329: return x; 12329: } 12329: 12329: 12329: } 12329: 12329: template int (signbit)(T x) 12329: { 12329: typedef typename detail::fp_traits::type traits; 12329: typedef typename traits::method method; 12329: 12329: typedef typename tools::promote_args_permissive::type result_type; 12329: return detail::signbit_impl(static_cast(x), method()); 12329: } 12329: 12329: template 12329: inline int sign (const T& z) 12329: { 12329: return (z == 0) ? 0 : (boost::math::signbit)(z) ? -1 : 1; 12329: } 12329: 12329: template typename tools::promote_args_permissive::type (changesign)(const T& x) 12329: { 12329: typedef typename detail::fp_traits::sign_change_type traits; 12329: typedef typename traits::method method; 12329: 12329: typedef typename tools::promote_args_permissive::type result_type; 12329: 12329: return detail::changesign_impl(static_cast(x), method()); 12329: } 12329: 12329: template 12329: inline typename tools::promote_args_permissive::type 12329: copysign (const T& x, const U& y) 12329: { 12329: using std::abs; using std::acos; using std::cos; using std::fmod; using std::modf; using std::tan; using std::asin; using std::cosh; using std::frexp; using std::pow; using std::tanh; using std::atan; using std::exp; using std::ldexp; using std::sin; using std::atan2; using std::fabs; using std::log; using std::sinh; using std::ceil; using std::floor; using std::log10; using std::sqrt; using boost::math::round; using boost::math::iround; using boost::math::lround; using boost::math::trunc; using boost::math::itrunc; using boost::math::ltrunc; using boost::math::modf; 12329: typedef typename tools::promote_args_permissive::type result_type; 12329: return (boost::math::signbit)(static_cast(x)) != (boost::math::signbit)(static_cast(y)) 12329: ? (boost::math::changesign)(static_cast(x)) : static_cast(x); 12329: } 12329: 12329: } 12329: } 12329: # 35 "/usr/include/boost/lexical_cast/detail/inf_nan.hpp" 2 3 4 12329: # 1 "/usr/include/boost/math/special_functions/fpclassify.hpp" 1 3 4 12329: # 14 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: # 1 "/usr/include/c++/12/math.h" 1 3 4 12329: # 15 "/usr/include/boost/math/special_functions/fpclassify.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/boost/math/tools/real_cast.hpp" 1 3 4 12329: # 15 "/usr/include/boost/math/tools/real_cast.hpp" 3 4 12329: namespace boost{ namespace math 12329: { 12329: namespace tools 12329: { 12329: template 12329: inline constexpr To real_cast(T t) noexcept(((std::is_floating_point::value) && (std::is_floating_point::value))) 12329: { 12329: return static_cast(t); 12329: } 12329: } 12329: } 12329: } 12329: # 18 "/usr/include/boost/math/special_functions/fpclassify.hpp" 2 3 4 12329: # 96 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: namespace boost{ 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace math_detail{ 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool is_nan_helper(T t, const boost::true_type&) 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: return (::std:: fpclassify(t) == (int)0); 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: inline bool is_nan_helper(T, const boost::false_type&) 12329: { 12329: return false; 12329: } 12329: # 145 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: } 12329: 12329: namespace math{ 12329: 12329: namespace detail{ 12329: 12329: 12329: template 12329: inline int fpclassify_imp (T t, const native_tag&) 12329: { 12329: return (std::fpclassify)(t); 12329: } 12329: 12329: 12329: template 12329: inline int fpclassify_imp (T t, const generic_tag&) 12329: { 12329: ; 12329: 12329: 12329: 12329: if(::boost::math_detail::is_nan_helper(t, ::boost::is_floating_point())) 12329: return 0; 12329: # 176 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: T at = (t < T(0)) ? -t : t; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: if(at <= (std::numeric_limits::max)()) 12329: { 12329: if(at >= (std::numeric_limits::min)()) 12329: return 4; 12329: return (at != 0) ? 3 : 2; 12329: } 12329: else if(at > (std::numeric_limits::max)()) 12329: return 1; 12329: return 0; 12329: } 12329: 12329: template 12329: inline int fpclassify_imp (T t, const generic_tag&) 12329: { 12329: # 206 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: ; 12329: 12329: return t == 0 ? 2 : 4; 12329: } 12329: 12329: template 12329: int fpclassify_imp (T x, ieee_copy_all_bits_tag) 12329: { 12329: typedef typename fp_traits::type traits; 12329: 12329: ; 12329: 12329: typename traits::bits a; 12329: traits::get_bits(x,a); 12329: ; 12329: a &= traits::exponent | traits::flag | traits::significand; 12329: ; 12329: ; 12329: 12329: if(a <= traits::significand) { 12329: if(a == 0) 12329: return 2; 12329: else 12329: return 3; 12329: } 12329: 12329: if(a < traits::exponent) return 4; 12329: 12329: a &= traits::significand; 12329: if(a == 0) return 1; 12329: 12329: return 0; 12329: } 12329: 12329: template 12329: int fpclassify_imp (T x, ieee_copy_leading_bits_tag) 12329: { 12329: typedef typename fp_traits::type traits; 12329: 12329: ; 12329: 12329: typename traits::bits a; 12329: traits::get_bits(x,a); 12329: a &= traits::exponent | traits::flag | traits::significand; 12329: 12329: if(a <= traits::significand) { 12329: if(x == 0) 12329: return 2; 12329: else 12329: return 3; 12329: } 12329: 12329: if(a < traits::exponent) return 4; 12329: 12329: a &= traits::significand; 12329: traits::set_bits(x,a); 12329: if(x == 0) return 1; 12329: 12329: return 0; 12329: } 12329: # 274 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: } 12329: 12329: template 12329: inline int fpclassify (T t) 12329: { 12329: typedef typename detail::fp_traits::type traits; 12329: typedef typename traits::method method; 12329: typedef typename tools::promote_args_permissive::type value_type; 12329: 12329: 12329: 12329: 12329: 12329: return detail::fpclassify_imp(static_cast(t), method()); 12329: 12329: } 12329: # 308 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: namespace detail { 12329: 12329: 12329: template 12329: inline bool isfinite_impl(T x, native_tag const&) 12329: { 12329: return (std::isfinite)(x); 12329: } 12329: 12329: 12329: template 12329: inline bool isfinite_impl(T x, generic_tag const&) 12329: { 12329: return x >= -(std::numeric_limits::max)() 12329: && x <= (std::numeric_limits::max)(); 12329: } 12329: 12329: template 12329: inline bool isfinite_impl(T x, generic_tag const&) 12329: { 12329: 12329: 12329: 12329: 12329: (void)x; 12329: return true; 12329: } 12329: 12329: template 12329: inline bool isfinite_impl(T x, ieee_tag const&) 12329: { 12329: typedef typename detail::fp_traits::type traits; 12329: typename traits::bits a; 12329: traits::get_bits(x,a); 12329: a &= traits::exponent; 12329: return a != traits::exponent; 12329: } 12329: # 353 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: } 12329: 12329: template 12329: inline bool (isfinite)(T x) 12329: { 12329: typedef typename detail::fp_traits::type traits; 12329: typedef typename traits::method method; 12329: 12329: typedef typename tools::promote_args_permissive::type value_type; 12329: return detail::isfinite_impl(static_cast(x), method()); 12329: } 12329: # 379 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: namespace detail { 12329: 12329: 12329: template 12329: inline bool isnormal_impl(T x, native_tag const&) 12329: { 12329: return (std::isnormal)(x); 12329: } 12329: 12329: 12329: template 12329: inline bool isnormal_impl(T x, generic_tag const&) 12329: { 12329: if(x < 0) x = -x; 12329: return x >= (std::numeric_limits::min)() 12329: && x <= (std::numeric_limits::max)(); 12329: } 12329: 12329: template 12329: inline bool isnormal_impl(T x, generic_tag const&) 12329: { 12329: 12329: 12329: 12329: 12329: return !(x == 0); 12329: } 12329: 12329: template 12329: inline bool isnormal_impl(T x, ieee_tag const&) 12329: { 12329: typedef typename detail::fp_traits::type traits; 12329: typename traits::bits a; 12329: traits::get_bits(x,a); 12329: a &= traits::exponent | traits::flag; 12329: return (a != 0) && (a < traits::exponent); 12329: } 12329: # 424 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: } 12329: 12329: template 12329: inline bool (isnormal)(T x) 12329: { 12329: typedef typename detail::fp_traits::type traits; 12329: typedef typename traits::method method; 12329: 12329: typedef typename tools::promote_args_permissive::type value_type; 12329: return detail::isnormal_impl(static_cast(x), method()); 12329: } 12329: # 450 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: namespace detail { 12329: 12329: 12329: template 12329: inline bool isinf_impl(T x, native_tag const&) 12329: { 12329: return (std::isinf)(x); 12329: } 12329: 12329: 12329: template 12329: inline bool isinf_impl(T x, generic_tag const&) 12329: { 12329: (void)x; 12329: return std::numeric_limits::has_infinity 12329: && ( x == std::numeric_limits::infinity() 12329: || x == -std::numeric_limits::infinity()); 12329: } 12329: 12329: template 12329: inline bool isinf_impl(T x, generic_tag const&) 12329: { 12329: 12329: 12329: 12329: 12329: (void)x; 12329: return false; 12329: } 12329: 12329: template 12329: inline bool isinf_impl(T x, ieee_copy_all_bits_tag const&) 12329: { 12329: typedef typename fp_traits::type traits; 12329: 12329: typename traits::bits a; 12329: traits::get_bits(x,a); 12329: a &= traits::exponent | traits::significand; 12329: return a == traits::exponent; 12329: } 12329: 12329: template 12329: inline bool isinf_impl(T x, ieee_copy_leading_bits_tag const&) 12329: { 12329: typedef typename fp_traits::type traits; 12329: 12329: typename traits::bits a; 12329: traits::get_bits(x,a); 12329: a &= traits::exponent | traits::significand; 12329: if(a != traits::exponent) 12329: return false; 12329: 12329: traits::set_bits(x,0); 12329: return x == 0; 12329: } 12329: # 513 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: } 12329: 12329: template 12329: inline bool (isinf)(T x) 12329: { 12329: typedef typename detail::fp_traits::type traits; 12329: typedef typename traits::method method; 12329: 12329: typedef typename tools::promote_args_permissive::type value_type; 12329: return detail::isinf_impl(static_cast(x), method()); 12329: } 12329: # 546 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: namespace detail { 12329: 12329: 12329: template 12329: inline bool isnan_impl(T x, native_tag const&) 12329: { 12329: return (std::isnan)(x); 12329: } 12329: 12329: 12329: template 12329: inline bool isnan_impl(T x, generic_tag const&) 12329: { 12329: return std::numeric_limits::has_infinity 12329: ? !(x <= std::numeric_limits::infinity()) 12329: : x != x; 12329: } 12329: 12329: template 12329: inline bool isnan_impl(T x, generic_tag const&) 12329: { 12329: 12329: 12329: 12329: 12329: (void)x; 12329: return false; 12329: } 12329: 12329: template 12329: inline bool isnan_impl(T x, ieee_copy_all_bits_tag const&) 12329: { 12329: typedef typename fp_traits::type traits; 12329: 12329: typename traits::bits a; 12329: traits::get_bits(x,a); 12329: a &= traits::exponent | traits::significand; 12329: return a > traits::exponent; 12329: } 12329: 12329: template 12329: inline bool isnan_impl(T x, ieee_copy_leading_bits_tag const&) 12329: { 12329: typedef typename fp_traits::type traits; 12329: 12329: typename traits::bits a; 12329: traits::get_bits(x,a); 12329: 12329: a &= traits::exponent | traits::significand; 12329: if(a < traits::exponent) 12329: return false; 12329: 12329: a &= traits::significand; 12329: traits::set_bits(x,a); 12329: return x != 0; 12329: } 12329: 12329: } 12329: 12329: template 12329: inline bool (isnan)(T x) 12329: { 12329: typedef typename detail::fp_traits::type traits; 12329: typedef typename traits::method method; 12329: 12329: return detail::isnan_impl(x, method()); 12329: } 12329: # 636 "/usr/include/boost/math/special_functions/fpclassify.hpp" 3 4 12329: } 12329: } 12329: # 36 "/usr/include/boost/lexical_cast/detail/inf_nan.hpp" 2 3 4 12329: 12329: 12329: 12329: namespace boost { 12329: namespace detail 12329: { 12329: template 12329: bool lc_iequal(const CharT* val, const CharT* lcase, const CharT* ucase, unsigned int len) noexcept { 12329: for( unsigned int i=0; i < len; ++i ) { 12329: if ( val[i] != lcase[i] && val[i] != ucase[i] ) return false; 12329: } 12329: 12329: return true; 12329: } 12329: 12329: 12329: template 12329: inline bool parse_inf_nan_impl(const CharT* begin, const CharT* end, T& value 12329: , const CharT* lc_NAN, const CharT* lc_nan 12329: , const CharT* lc_INFINITY, const CharT* lc_infinity 12329: , const CharT opening_brace, const CharT closing_brace) noexcept 12329: { 12329: using namespace std; 12329: if (begin == end) return false; 12329: const CharT minus = lcast_char_constants::minus; 12329: const CharT plus = lcast_char_constants::plus; 12329: const int inifinity_size = 8; 12329: 12329: 12329: bool const has_minus = (*begin == minus); 12329: if (has_minus || *begin == plus) { 12329: ++ begin; 12329: } 12329: 12329: if (end - begin < 3) return false; 12329: if (lc_iequal(begin, lc_nan, lc_NAN, 3)) { 12329: begin += 3; 12329: if (end != begin) { 12329: 12329: 12329: if (end - begin < 2) return false; 12329: -- end; 12329: if (*begin != opening_brace || *end != closing_brace) return false; 12329: } 12329: 12329: if( !has_minus ) value = std::numeric_limits::quiet_NaN(); 12329: else value = (boost::math::changesign) (std::numeric_limits::quiet_NaN()); 12329: return true; 12329: } else if ( 12329: ( 12329: end - begin == 3 12329: && lc_iequal(begin, lc_infinity, lc_INFINITY, 3) 12329: ) 12329: || 12329: ( 12329: end - begin == inifinity_size 12329: && lc_iequal(begin, lc_infinity, lc_INFINITY, inifinity_size) 12329: ) 12329: ) 12329: { 12329: if( !has_minus ) value = std::numeric_limits::infinity(); 12329: else value = (boost::math::changesign) (std::numeric_limits::infinity()); 12329: return true; 12329: } 12329: 12329: return false; 12329: } 12329: 12329: template 12329: bool put_inf_nan_impl(CharT* begin, CharT*& end, const T& value 12329: , const CharT* lc_nan 12329: , const CharT* lc_infinity) noexcept 12329: { 12329: using namespace std; 12329: const CharT minus = lcast_char_constants::minus; 12329: if ((boost::math::isnan)(value)) { 12329: if ((boost::math::signbit)(value)) { 12329: *begin = minus; 12329: ++ begin; 12329: } 12329: 12329: memcpy(begin, lc_nan, 3 * sizeof(CharT)); 12329: end = begin + 3; 12329: return true; 12329: } else if ((boost::math::isinf)(value)) { 12329: if ((boost::math::signbit)(value)) { 12329: *begin = minus; 12329: ++ begin; 12329: } 12329: 12329: memcpy(begin, lc_infinity, 3 * sizeof(CharT)); 12329: end = begin + 3; 12329: return true; 12329: } 12329: 12329: return false; 12329: } 12329: 12329: 12329: 12329: template 12329: bool parse_inf_nan(const wchar_t* begin, const wchar_t* end, T& value) noexcept { 12329: return parse_inf_nan_impl(begin, end, value 12329: , L"NAN", L"nan" 12329: , L"INFINITY", L"infinity" 12329: , L'(', L')'); 12329: } 12329: 12329: template 12329: bool put_inf_nan(wchar_t* begin, wchar_t*& end, const T& value) noexcept { 12329: return put_inf_nan_impl(begin, end, value, L"nan", L"infinity"); 12329: } 12329: 12329: 12329: 12329: template 12329: bool parse_inf_nan(const char16_t* begin, const char16_t* end, T& value) noexcept { 12329: return parse_inf_nan_impl(begin, end, value 12329: , u"NAN", u"nan" 12329: , u"INFINITY", u"infinity" 12329: , u'(', u')'); 12329: } 12329: 12329: template 12329: bool put_inf_nan(char16_t* begin, char16_t*& end, const T& value) noexcept { 12329: return put_inf_nan_impl(begin, end, value, u"nan", u"infinity"); 12329: } 12329: 12329: 12329: template 12329: bool parse_inf_nan(const char32_t* begin, const char32_t* end, T& value) noexcept { 12329: return parse_inf_nan_impl(begin, end, value 12329: , U"NAN", U"nan" 12329: , U"INFINITY", U"infinity" 12329: , U'(', U')'); 12329: } 12329: 12329: template 12329: bool put_inf_nan(char32_t* begin, char32_t*& end, const T& value) noexcept { 12329: return put_inf_nan_impl(begin, end, value, U"nan", U"infinity"); 12329: } 12329: 12329: 12329: template 12329: bool parse_inf_nan(const CharT* begin, const CharT* end, T& value) noexcept { 12329: return parse_inf_nan_impl(begin, end, value 12329: , "NAN", "nan" 12329: , "INFINITY", "infinity" 12329: , '(', ')'); 12329: } 12329: 12329: template 12329: bool put_inf_nan(CharT* begin, CharT*& end, const T& value) noexcept { 12329: return put_inf_nan_impl(begin, end, value, "nan", "infinity"); 12329: } 12329: } 12329: } 12329: # 64 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 2 3 4 12329: # 78 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 3 4 12329: # 1 "/usr/include/boost/detail/basic_pointerbuf.hpp" 1 3 4 12329: # 24 "/usr/include/boost/detail/basic_pointerbuf.hpp" 3 4 12329: namespace boost { namespace detail { 12329: 12329: 12329: 12329: 12329: 12329: template 12329: class basic_pointerbuf : public BufferT { 12329: protected: 12329: typedef BufferT base_type; 12329: typedef basic_pointerbuf this_type; 12329: typedef typename base_type::int_type int_type; 12329: typedef typename base_type::char_type char_type; 12329: typedef typename base_type::pos_type pos_type; 12329: typedef ::std::streamsize streamsize; 12329: typedef typename base_type::off_type off_type; 12329: 12329: public: 12329: basic_pointerbuf() : base_type() { this_type::setbuf(0, 0); } 12329: const charT* getnext() { return this->gptr(); } 12329: 12329: 12329: using base_type::pptr; 12329: using base_type::pbase; 12329: 12329: 12329: 12329: 12329: 12329: protected: 12329: 12329: 12329: 12329: 12329: inline base_type* setbuf(char_type* s, streamsize n) override; 12329: inline typename this_type::pos_type seekpos(pos_type sp, ::std::ios_base::openmode which) override; 12329: inline typename this_type::pos_type seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which) override; 12329: 12329: private: 12329: basic_pointerbuf& operator=(const basic_pointerbuf&); 12329: basic_pointerbuf(const basic_pointerbuf&); 12329: }; 12329: 12329: template 12329: BufferT* 12329: basic_pointerbuf::setbuf(char_type* s, streamsize n) 12329: { 12329: this->setg(s, s, s + n); 12329: return this; 12329: } 12329: 12329: template 12329: typename basic_pointerbuf::pos_type 12329: basic_pointerbuf::seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which) 12329: { 12329: typedef typename boost::int_t::least cast_type; 12329: 12329: if(which & ::std::ios_base::out) 12329: return pos_type(off_type(-1)); 12329: std::ptrdiff_t size = this->egptr() - this->eback(); 12329: std::ptrdiff_t pos = this->gptr() - this->eback(); 12329: charT* g = this->eback(); 12329: switch(static_cast(way)) 12329: { 12329: case ::std::ios_base::beg: 12329: if((off < 0) || (off > size)) 12329: return pos_type(off_type(-1)); 12329: else 12329: this->setg(g, g + off, g + size); 12329: break; 12329: case ::std::ios_base::end: 12329: if((off < 0) || (off > size)) 12329: return pos_type(off_type(-1)); 12329: else 12329: this->setg(g, g + size - off, g + size); 12329: break; 12329: case ::std::ios_base::cur: 12329: { 12329: std::ptrdiff_t newpos = static_cast(pos + off); 12329: if((newpos < 0) || (newpos > size)) 12329: return pos_type(off_type(-1)); 12329: else 12329: this->setg(g, g + newpos, g + size); 12329: break; 12329: } 12329: default: ; 12329: } 12329: 12329: 12329: 12329: 12329: return static_cast(this->gptr() - this->eback()); 12329: 12329: 12329: 12329: } 12329: 12329: template 12329: typename basic_pointerbuf::pos_type 12329: basic_pointerbuf::seekpos(pos_type sp, ::std::ios_base::openmode which) 12329: { 12329: if(which & ::std::ios_base::out) 12329: return pos_type(off_type(-1)); 12329: off_type size = static_cast(this->egptr() - this->eback()); 12329: charT* g = this->eback(); 12329: if(off_type(sp) <= size) 12329: { 12329: this->setg(g, g + off_type(sp), g + size); 12329: } 12329: return pos_type(off_type(-1)); 12329: } 12329: 12329: }} 12329: # 79 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 2 3 4 12329: 12329: 12329: # 1 "/usr/include/c++/12/cwchar" 1 3 4 12329: # 39 "/usr/include/c++/12/cwchar" 3 4 12329: 12329: # 40 "/usr/include/c++/12/cwchar" 3 12329: # 82 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 2 3 4 12329: 12329: 12329: namespace boost { 12329: 12329: namespace detail 12329: { 12329: 12329: 12329: template 12329: class basic_unlockedbuf : public basic_pointerbuf { 12329: public: 12329: typedef basic_pointerbuf base_type; 12329: typedef typename base_type::streamsize streamsize; 12329: 12329: 12329: using base_type::pptr; 12329: using base_type::pbase; 12329: using base_type::setbuf; 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: } 12329: 12329: namespace detail 12329: { 12329: struct do_not_construct_out_buffer_t{}; 12329: struct do_not_construct_out_stream_t{ 12329: do_not_construct_out_stream_t(do_not_construct_out_buffer_t*){} 12329: }; 12329: 12329: template 12329: struct out_stream_helper_trait { 12329: # 125 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 3 4 12329: typedef std::basic_ostream out_stream_t; 12329: typedef basic_unlockedbuf, CharT> stringbuffer_t; 12329: typedef basic_unlockedbuf, CharT> buffer_t; 12329: 12329: }; 12329: } 12329: 12329: namespace detail 12329: { 12329: template< class CharT 12329: , class Traits 12329: , bool RequiresStringbuffer 12329: , std::size_t CharacterBufferSize 12329: > 12329: class lexical_istream_limited_src: boost::noncopyable { 12329: typedef typename boost::conditional< 12329: RequiresStringbuffer, 12329: typename out_stream_helper_trait::out_stream_t, 12329: do_not_construct_out_stream_t 12329: >::type deduced_out_stream_t; 12329: 12329: typedef typename boost::conditional< 12329: RequiresStringbuffer, 12329: typename out_stream_helper_trait::stringbuffer_t, 12329: do_not_construct_out_buffer_t 12329: >::type deduced_out_buffer_t; 12329: 12329: deduced_out_buffer_t out_buffer; 12329: deduced_out_stream_t out_stream; 12329: CharT buffer[CharacterBufferSize]; 12329: 12329: 12329: 12329: const CharT* start; 12329: const CharT* finish; 12329: 12329: public: 12329: lexical_istream_limited_src() noexcept 12329: : out_buffer() 12329: , out_stream(&out_buffer) 12329: , start(buffer) 12329: , finish(buffer + CharacterBufferSize) 12329: {} 12329: 12329: const CharT* cbegin() const noexcept { 12329: return start; 12329: } 12329: 12329: const CharT* cend() const noexcept { 12329: return finish; 12329: } 12329: 12329: private: 12329: 12329: bool shl_char(CharT ch) noexcept { 12329: Traits::assign(buffer[0], ch); 12329: finish = start + 1; 12329: return true; 12329: } 12329: 12329: 12329: template 12329: bool shl_char(T ch) { 12329: static_assert(( sizeof(T) <= sizeof(CharT)) , "boost::lexical_cast does not support narrowing of char types." "Use boost::locale instead") 12329: 12329: ; 12329: 12329: std::locale loc; 12329: CharT const w = std::use_facet< std::ctype >(loc).widen(ch); 12329: 12329: 12329: 12329: Traits::assign(buffer[0], w); 12329: finish = start + 1; 12329: return true; 12329: } 12329: 12329: 12329: bool shl_char_array(CharT const* str_value) noexcept { 12329: start = str_value; 12329: finish = start + Traits::length(str_value); 12329: return true; 12329: } 12329: 12329: template 12329: bool shl_char_array(T const* str_value) { 12329: static_assert(( sizeof(T) <= sizeof(CharT)), "boost::lexical_cast does not support narrowing of char types." "Use boost::locale instead") 12329: 12329: ; 12329: return shl_input_streamable(str_value); 12329: } 12329: 12329: bool shl_char_array_limited(CharT const* str, std::size_t max_size) noexcept { 12329: start = str; 12329: finish = std::find(start, start + max_size, Traits::to_char_type(0)); 12329: return true; 12329: } 12329: 12329: template 12329: bool shl_input_streamable(InputStreamable& input) { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: out_stream.exceptions(std::ios::badbit); 12329: try { 12329: 12329: bool const result = !(out_stream << input).fail(); 12329: const deduced_out_buffer_t* const p = static_cast( 12329: out_stream.rdbuf() 12329: ); 12329: start = p->pbase(); 12329: finish = p->pptr(); 12329: return result; 12329: 12329: } catch (const ::std::ios_base::failure& ) { 12329: return false; 12329: } 12329: 12329: } 12329: 12329: template 12329: inline bool shl_unsigned(const T n) { 12329: CharT* tmp_finish = buffer + CharacterBufferSize; 12329: start = lcast_put_unsigned(n, tmp_finish).convert(); 12329: finish = tmp_finish; 12329: return true; 12329: } 12329: 12329: template 12329: inline bool shl_signed(const T n) { 12329: CharT* tmp_finish = buffer + CharacterBufferSize; 12329: typedef typename boost::make_unsigned::type utype; 12329: CharT* tmp_start = lcast_put_unsigned(lcast_to_unsigned(n), tmp_finish).convert(); 12329: if (n < 0) { 12329: --tmp_start; 12329: CharT const minus = lcast_char_constants::minus; 12329: Traits::assign(*tmp_start, minus); 12329: } 12329: start = tmp_start; 12329: finish = tmp_finish; 12329: return true; 12329: } 12329: 12329: template 12329: bool shl_real_type(const T& val, SomeCharT* ) { 12329: lcast_set_precision(out_stream, &val); 12329: return shl_input_streamable(val); 12329: } 12329: 12329: bool shl_real_type(float val, char* begin) { 12329: using namespace std; 12329: const double val_as_double = val; 12329: finish = start + 12329: 12329: 12329: 12329: sprintf(begin, 12329: 12329: "%.*g", static_cast(boost::detail::lcast_get_precision()), val_as_double); 12329: return finish > start; 12329: } 12329: 12329: bool shl_real_type(double val, char* begin) { 12329: using namespace std; 12329: finish = start + 12329: 12329: 12329: 12329: sprintf(begin, 12329: 12329: "%.*g", static_cast(boost::detail::lcast_get_precision()), val); 12329: return finish > start; 12329: } 12329: 12329: 12329: bool shl_real_type(long double val, char* begin) { 12329: using namespace std; 12329: finish = start + 12329: 12329: 12329: 12329: sprintf(begin, 12329: 12329: "%.*Lg", static_cast(boost::detail::lcast_get_precision()), val ); 12329: return finish > start; 12329: } 12329: 12329: 12329: 12329: 12329: bool shl_real_type(float val, wchar_t* begin) { 12329: using namespace std; 12329: const double val_as_double = val; 12329: finish = start + swprintf(begin, CharacterBufferSize, 12329: L"%.*g", 12329: static_cast(boost::detail::lcast_get_precision()), 12329: val_as_double ); 12329: return finish > start; 12329: } 12329: 12329: bool shl_real_type(double val, wchar_t* begin) { 12329: using namespace std; 12329: finish = start + swprintf(begin, CharacterBufferSize, 12329: L"%.*g", static_cast(boost::detail::lcast_get_precision()), val ); 12329: return finish > start; 12329: } 12329: 12329: bool shl_real_type(long double val, wchar_t* begin) { 12329: using namespace std; 12329: finish = start + swprintf(begin, CharacterBufferSize, 12329: L"%.*Lg", static_cast(boost::detail::lcast_get_precision()), val ); 12329: return finish > start; 12329: } 12329: 12329: template 12329: bool shl_real(T val) { 12329: CharT* tmp_finish = buffer + CharacterBufferSize; 12329: if (put_inf_nan(buffer, tmp_finish, val)) { 12329: finish = tmp_finish; 12329: return true; 12329: } 12329: 12329: return shl_real_type(val, static_cast(buffer)); 12329: } 12329: 12329: 12329: public: 12329: template 12329: bool operator<<(std::basic_string const& str) noexcept { 12329: start = str.data(); 12329: finish = start + str.length(); 12329: return true; 12329: } 12329: 12329: template 12329: bool operator<<(boost::container::basic_string const& str) noexcept { 12329: start = str.data(); 12329: finish = start + str.length(); 12329: return true; 12329: } 12329: 12329: bool operator<<(bool value) noexcept { 12329: CharT const czero = lcast_char_constants::zero; 12329: Traits::assign(buffer[0], Traits::to_char_type(czero + value)); 12329: finish = start + 1; 12329: return true; 12329: } 12329: 12329: template 12329: typename boost::disable_if, bool>::type 12329: operator<<(const iterator_range& rng) noexcept { 12329: return (*this) << iterator_range(rng.begin(), rng.end()); 12329: } 12329: 12329: bool operator<<(const iterator_range& rng) noexcept { 12329: start = rng.begin(); 12329: finish = rng.end(); 12329: return true; 12329: } 12329: 12329: bool operator<<(const iterator_range& rng) noexcept { 12329: return (*this) << iterator_range( 12329: reinterpret_cast(rng.begin()), 12329: reinterpret_cast(rng.end()) 12329: ); 12329: } 12329: 12329: bool operator<<(const iterator_range& rng) noexcept { 12329: return (*this) << iterator_range( 12329: reinterpret_cast(rng.begin()), 12329: reinterpret_cast(rng.end()) 12329: ); 12329: } 12329: 12329: bool operator<<(char ch) { return shl_char(ch); } 12329: bool operator<<(unsigned char ch) { return ((*this) << static_cast(ch)); } 12329: bool operator<<(signed char ch) { return ((*this) << static_cast(ch)); } 12329: 12329: bool operator<<(wchar_t const* str) { return shl_char_array(str); } 12329: bool operator<<(wchar_t * str) { return shl_char_array(str); } 12329: 12329: bool operator<<(wchar_t ch) { return shl_char(ch); } 12329: 12329: 12329: 12329: bool operator<<(char16_t ch) { return shl_char(ch); } 12329: bool operator<<(char16_t * str) { return shl_char_array(str); } 12329: bool operator<<(char16_t const * str) { return shl_char_array(str); } 12329: 12329: 12329: bool operator<<(char32_t ch) { return shl_char(ch); } 12329: bool operator<<(char32_t * str) { return shl_char_array(str); } 12329: bool operator<<(char32_t const * str) { return shl_char_array(str); } 12329: 12329: bool operator<<(unsigned char const* ch) { return ((*this) << reinterpret_cast(ch)); } 12329: bool operator<<(unsigned char * ch) { return ((*this) << reinterpret_cast(ch)); } 12329: bool operator<<(signed char const* ch) { return ((*this) << reinterpret_cast(ch)); } 12329: bool operator<<(signed char * ch) { return ((*this) << reinterpret_cast(ch)); } 12329: bool operator<<(char const* str_value) { return shl_char_array(str_value); } 12329: bool operator<<(char* str_value) { return shl_char_array(str_value); } 12329: bool operator<<(short n) { return shl_signed(n); } 12329: bool operator<<(int n) { return shl_signed(n); } 12329: bool operator<<(long n) { return shl_signed(n); } 12329: bool operator<<(unsigned short n) { return shl_unsigned(n); } 12329: bool operator<<(unsigned int n) { return shl_unsigned(n); } 12329: bool operator<<(unsigned long n) { return shl_unsigned(n); } 12329: 12329: 12329: bool operator<<(boost::ulong_long_type n) { return shl_unsigned(n); } 12329: bool operator<<(boost::long_long_type n) { return shl_signed(n); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: bool operator<<(const boost::uint128_type& n) { return shl_unsigned(n); } 12329: bool operator<<(const boost::int128_type& n) { return shl_signed(n); } 12329: 12329: bool operator<<(float val) { return shl_real(val); } 12329: bool operator<<(double val) { return shl_real(val); } 12329: bool operator<<(long double val) { 12329: 12329: return shl_real(val); 12329: 12329: 12329: 12329: } 12329: 12329: 12329: template 12329: typename boost::disable_if, bool>::type 12329: operator<<(boost::array const& input) noexcept { 12329: static_assert((sizeof(boost::array) == sizeof(boost::array)), "boost::array and boost::array must have exactly the same layout.") 12329: 12329: 12329: ; 12329: return ((*this) << reinterpret_cast const& >(input)); 12329: } 12329: 12329: template 12329: bool operator<<(boost::array const& input) noexcept { 12329: return shl_char_array_limited(input.data(), N); 12329: } 12329: 12329: template 12329: bool operator<<(boost::array const& input) noexcept { 12329: return ((*this) << reinterpret_cast const& >(input)); 12329: } 12329: 12329: template 12329: bool operator<<(boost::array const& input) noexcept { 12329: return ((*this) << reinterpret_cast const& >(input)); 12329: } 12329: 12329: 12329: 12329: template 12329: bool operator<<(std::array const& input) noexcept { 12329: static_assert((sizeof(std::array) == sizeof(boost::array)), "std::array and boost::array must have exactly the same layout. " "Bug in implementation of std::array or boost::array.") 12329: 12329: 12329: 12329: ; 12329: return ((*this) << reinterpret_cast const& >(input)); 12329: } 12329: 12329: template 12329: bool operator<<(const InStreamable& input) { return shl_input_streamable(input); } 12329: }; 12329: 12329: 12329: template 12329: class lexical_ostream_limited_src: boost::noncopyable { 12329: 12329: const CharT* start; 12329: const CharT* const finish; 12329: 12329: public: 12329: lexical_ostream_limited_src(const CharT* begin, const CharT* end) noexcept 12329: : start(begin) 12329: , finish(end) 12329: {} 12329: 12329: 12329: private: 12329: template 12329: bool shr_unsigned(Type& output) { 12329: if (start == finish) return false; 12329: CharT const minus = lcast_char_constants::minus; 12329: CharT const plus = lcast_char_constants::plus; 12329: bool const has_minus = Traits::eq(minus, *start); 12329: 12329: 12329: if (has_minus || Traits::eq(plus, *start)) { 12329: ++start; 12329: } 12329: 12329: bool const succeed = lcast_ret_unsigned(output, start, finish).convert(); 12329: 12329: if (has_minus) { 12329: output = static_cast(0u - output); 12329: } 12329: 12329: return succeed; 12329: } 12329: 12329: template 12329: bool shr_signed(Type& output) { 12329: if (start == finish) return false; 12329: CharT const minus = lcast_char_constants::minus; 12329: CharT const plus = lcast_char_constants::plus; 12329: typedef typename make_unsigned::type utype; 12329: utype out_tmp = 0; 12329: bool const has_minus = Traits::eq(minus, *start); 12329: 12329: 12329: if (has_minus || Traits::eq(plus, *start)) { 12329: ++start; 12329: } 12329: 12329: bool succeed = lcast_ret_unsigned(out_tmp, start, finish).convert(); 12329: if (has_minus) { 12329: utype const comp_val = (static_cast(1) << std::numeric_limits::digits); 12329: succeed = succeed && out_tmp<=comp_val; 12329: output = static_cast(0u - out_tmp); 12329: } else { 12329: utype const comp_val = static_cast((std::numeric_limits::max)()); 12329: succeed = succeed && out_tmp<=comp_val; 12329: output = static_cast(out_tmp); 12329: } 12329: return succeed; 12329: } 12329: 12329: template 12329: bool shr_using_base_class(InputStreamable& output) 12329: { 12329: static_assert((!boost::is_pointer::value), "boost::lexical_cast can not convert to pointers") 12329: 12329: 12329: ; 12329: # 581 "/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp" 3 4 12329: typedef typename out_stream_helper_trait::buffer_t buffer_t; 12329: buffer_t buf; 12329: 12329: 12329: buf.setbuf(const_cast(start), static_cast(finish - start)); 12329: 12329: 12329: 12329: std::basic_istream stream(&buf); 12329: 12329: 12329: 12329: 12329: stream.exceptions(std::ios::badbit); 12329: try { 12329: 12329: stream.unsetf(std::ios::skipws); 12329: lcast_set_precision(stream, static_cast(0)); 12329: 12329: return (stream >> output) 12329: && (stream.get() == Traits::eof()); 12329: 12329: 12329: } catch (const ::std::ios_base::failure& ) { 12329: return false; 12329: } 12329: 12329: } 12329: 12329: template 12329: inline bool shr_xchar(T& output) noexcept { 12329: static_assert(( sizeof(CharT) == sizeof(T) ), "boost::lexical_cast does not support narrowing of character types." "Use boost::locale instead") 12329: 12329: ; 12329: bool const ok = (finish - start == 1); 12329: if (ok) { 12329: CharT out; 12329: Traits::assign(out, *start); 12329: output = static_cast(out); 12329: } 12329: return ok; 12329: } 12329: 12329: template 12329: bool shr_std_array(ArrayT& output) noexcept { 12329: using namespace std; 12329: const std::size_t size = static_cast(finish - start); 12329: if (size > N - 1) { 12329: return false; 12329: } 12329: 12329: memcpy(&output[0], start, size * sizeof(CharT)); 12329: output[size] = Traits::to_char_type(0); 12329: return true; 12329: } 12329: 12329: 12329: public: 12329: bool operator>>(unsigned short& output) { return shr_unsigned(output); } 12329: bool operator>>(unsigned int& output) { return shr_unsigned(output); } 12329: bool operator>>(unsigned long int& output) { return shr_unsigned(output); } 12329: bool operator>>(short& output) { return shr_signed(output); } 12329: bool operator>>(int& output) { return shr_signed(output); } 12329: bool operator>>(long int& output) { return shr_signed(output); } 12329: 12329: bool operator>>(boost::ulong_long_type& output) { return shr_unsigned(output); } 12329: bool operator>>(boost::long_long_type& output) { return shr_signed(output); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: bool operator>>(boost::uint128_type& output) { return shr_unsigned(output); } 12329: bool operator>>(boost::int128_type& output) { return shr_signed(output); } 12329: 12329: 12329: bool operator>>(char& output) { return shr_xchar(output); } 12329: bool operator>>(unsigned char& output) { return shr_xchar(output); } 12329: bool operator>>(signed char& output) { return shr_xchar(output); } 12329: 12329: bool operator>>(wchar_t& output) { return shr_xchar(output); } 12329: 12329: 12329: bool operator>>(char16_t& output) { return shr_xchar(output); } 12329: 12329: 12329: bool operator>>(char32_t& output) { return shr_xchar(output); } 12329: 12329: template 12329: bool operator>>(std::basic_string& str) { 12329: str.assign(start, finish); return true; 12329: } 12329: 12329: template 12329: bool operator>>(boost::container::basic_string& str) { 12329: str.assign(start, finish); return true; 12329: } 12329: 12329: template 12329: bool operator>>(boost::array& output) noexcept { 12329: return shr_std_array(output); 12329: } 12329: 12329: template 12329: bool operator>>(boost::array& output) noexcept { 12329: return ((*this) >> reinterpret_cast& >(output)); 12329: } 12329: 12329: template 12329: bool operator>>(boost::array& output) noexcept { 12329: return ((*this) >> reinterpret_cast& >(output)); 12329: } 12329: 12329: 12329: template 12329: bool operator>>(std::array& output) noexcept { 12329: static_assert((sizeof(std::array) == sizeof(boost::array)), "std::array and boost::array must have exactly the same layout.") 12329: 12329: 12329: ; 12329: return ((*this) >> reinterpret_cast& >(output)); 12329: } 12329: 12329: 12329: bool operator>>(bool& output) noexcept { 12329: output = false; 12329: 12329: if (start == finish) return false; 12329: CharT const zero = lcast_char_constants::zero; 12329: CharT const plus = lcast_char_constants::plus; 12329: CharT const minus = lcast_char_constants::minus; 12329: 12329: const CharT* const dec_finish = finish - 1; 12329: output = Traits::eq(*dec_finish, zero + 1); 12329: if (!output && !Traits::eq(*dec_finish, zero)) { 12329: return false; 12329: } 12329: 12329: if (start == dec_finish) return true; 12329: 12329: 12329: if (Traits::eq(plus, *start) || (Traits::eq(minus, *start) && !output)) { 12329: ++ start; 12329: } 12329: 12329: 12329: while (start != dec_finish) { 12329: if (!Traits::eq(zero, *start)) { 12329: return false; 12329: } 12329: 12329: ++ start; 12329: } 12329: 12329: return true; 12329: } 12329: 12329: private: 12329: 12329: template 12329: bool float_types_converter_internal(T& output) { 12329: if (parse_inf_nan(start, finish, output)) return true; 12329: bool const return_value = shr_using_base_class(output); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: CharT const minus = lcast_char_constants::minus; 12329: CharT const plus = lcast_char_constants::plus; 12329: CharT const capital_e = lcast_char_constants::capital_e; 12329: CharT const lowercase_e = lcast_char_constants::lowercase_e; 12329: if ( return_value && 12329: ( 12329: Traits::eq(*(finish-1), lowercase_e) 12329: || Traits::eq(*(finish-1), capital_e) 12329: || Traits::eq(*(finish-1), minus) 12329: || Traits::eq(*(finish-1), plus) 12329: ) 12329: ) return false; 12329: 12329: return return_value; 12329: } 12329: 12329: public: 12329: bool operator>>(float& output) { return float_types_converter_internal(output); } 12329: bool operator>>(double& output) { return float_types_converter_internal(output); } 12329: bool operator>>(long double& output) { return float_types_converter_internal(output); } 12329: 12329: 12329: 12329: template 12329: bool operator>>(InputStreamable& output) { 12329: return shr_using_base_class(output); 12329: } 12329: }; 12329: } 12329: } 12329: # 55 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 2 3 4 12329: 12329: namespace boost { 12329: 12329: namespace detail 12329: { 12329: 12329: template < class Char > 12329: struct normalize_single_byte_char 12329: { 12329: typedef Char type; 12329: }; 12329: 12329: template <> 12329: struct normalize_single_byte_char< signed char > 12329: { 12329: typedef char type; 12329: }; 12329: 12329: template <> 12329: struct normalize_single_byte_char< unsigned char > 12329: { 12329: typedef char type; 12329: }; 12329: } 12329: 12329: namespace detail 12329: { 12329: 12329: 12329: template < class T > struct deduce_character_type_later {}; 12329: } 12329: 12329: namespace detail 12329: { 12329: 12329: 12329: 12329: template < typename Type > 12329: struct stream_char_common: public boost::conditional< 12329: boost::detail::is_character< Type >::value, 12329: Type, 12329: boost::detail::deduce_character_type_later< Type > 12329: > {}; 12329: 12329: template < typename Char > 12329: struct stream_char_common< Char* >: public boost::conditional< 12329: boost::detail::is_character< Char >::value, 12329: Char, 12329: boost::detail::deduce_character_type_later< Char* > 12329: > {}; 12329: 12329: template < typename Char > 12329: struct stream_char_common< const Char* >: public boost::conditional< 12329: boost::detail::is_character< Char >::value, 12329: Char, 12329: boost::detail::deduce_character_type_later< const Char* > 12329: > {}; 12329: 12329: template < typename Char > 12329: struct stream_char_common< boost::iterator_range< Char* > >: public boost::conditional< 12329: boost::detail::is_character< Char >::value, 12329: Char, 12329: boost::detail::deduce_character_type_later< boost::iterator_range< Char* > > 12329: > {}; 12329: 12329: template < typename Char > 12329: struct stream_char_common< boost::iterator_range< const Char* > >: public boost::conditional< 12329: boost::detail::is_character< Char >::value, 12329: Char, 12329: boost::detail::deduce_character_type_later< boost::iterator_range< const Char* > > 12329: > {}; 12329: 12329: template < class Char, class Traits, class Alloc > 12329: struct stream_char_common< std::basic_string< Char, Traits, Alloc > > 12329: { 12329: typedef Char type; 12329: }; 12329: 12329: template < class Char, class Traits, class Alloc > 12329: struct stream_char_common< boost::container::basic_string< Char, Traits, Alloc > > 12329: { 12329: typedef Char type; 12329: }; 12329: 12329: template < typename Char, std::size_t N > 12329: struct stream_char_common< boost::array< Char, N > >: public boost::conditional< 12329: boost::detail::is_character< Char >::value, 12329: Char, 12329: boost::detail::deduce_character_type_later< boost::array< Char, N > > 12329: > {}; 12329: 12329: template < typename Char, std::size_t N > 12329: struct stream_char_common< boost::array< const Char, N > >: public boost::conditional< 12329: boost::detail::is_character< Char >::value, 12329: Char, 12329: boost::detail::deduce_character_type_later< boost::array< const Char, N > > 12329: > {}; 12329: 12329: 12329: template < typename Char, std::size_t N > 12329: struct stream_char_common< std::array >: public boost::conditional< 12329: boost::detail::is_character< Char >::value, 12329: Char, 12329: boost::detail::deduce_character_type_later< std::array< Char, N > > 12329: > {}; 12329: 12329: template < typename Char, std::size_t N > 12329: struct stream_char_common< std::array< const Char, N > >: public boost::conditional< 12329: boost::detail::is_character< Char >::value, 12329: Char, 12329: boost::detail::deduce_character_type_later< std::array< const Char, N > > 12329: > {}; 12329: 12329: 12329: 12329: template <> struct stream_char_common< boost::int128_type >: public boost::type_identity< char > {}; 12329: template <> struct stream_char_common< boost::uint128_type >: public boost::type_identity< char > {}; 12329: # 181 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 3 4 12329: } 12329: 12329: namespace detail 12329: { 12329: 12329: 12329: 12329: 12329: 12329: template < class Char > 12329: struct deduce_source_char_impl 12329: { 12329: typedef typename boost::detail::normalize_single_byte_char< Char >::type type; 12329: }; 12329: 12329: template < class T > 12329: struct deduce_source_char_impl< deduce_character_type_later< T > > 12329: { 12329: typedef boost::has_left_shift< std::basic_ostream< char >, T > result_t; 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef typename boost::conditional< 12329: result_t::value, char, wchar_t 12329: >::type type; 12329: 12329: static_assert((result_t::value || boost::has_left_shift< std::basic_ostream< type >, T >::value), "Source type is neither std::ostream`able nor std::wostream`able") 12329: ; 12329: 12329: }; 12329: } 12329: 12329: namespace detail 12329: { 12329: 12329: 12329: 12329: 12329: 12329: template < class Char > 12329: struct deduce_target_char_impl 12329: { 12329: typedef typename normalize_single_byte_char< Char >::type type; 12329: }; 12329: 12329: template < class T > 12329: struct deduce_target_char_impl< deduce_character_type_later > 12329: { 12329: typedef boost::has_right_shift, T > result_t; 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef typename boost::conditional< 12329: result_t::value, char, wchar_t 12329: >::type type; 12329: 12329: static_assert((result_t::value || boost::has_right_shift, T >::value), "Target type is neither std::istream`able nor std::wistream`able") 12329: ; 12329: 12329: }; 12329: } 12329: 12329: namespace detail 12329: { 12329: # 266 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 3 4 12329: template < class T > 12329: struct deduce_target_char 12329: { 12329: typedef typename stream_char_common< T >::type stage1_type; 12329: typedef typename deduce_target_char_impl< stage1_type >::type stage2_type; 12329: 12329: typedef stage2_type type; 12329: }; 12329: 12329: template < class T > 12329: struct deduce_source_char 12329: { 12329: typedef typename stream_char_common< T >::type stage1_type; 12329: typedef typename deduce_source_char_impl< stage1_type >::type stage2_type; 12329: 12329: typedef stage2_type type; 12329: }; 12329: } 12329: 12329: namespace detail 12329: { 12329: 12329: 12329: template < class Char, class T > 12329: struct extract_char_traits 12329: : boost::false_type 12329: { 12329: typedef std::char_traits< Char > trait_t; 12329: }; 12329: 12329: template < class Char, class Traits, class Alloc > 12329: struct extract_char_traits< Char, std::basic_string< Char, Traits, Alloc > > 12329: : boost::true_type 12329: { 12329: typedef Traits trait_t; 12329: }; 12329: 12329: template < class Char, class Traits, class Alloc> 12329: struct extract_char_traits< Char, boost::container::basic_string< Char, Traits, Alloc > > 12329: : boost::true_type 12329: { 12329: typedef Traits trait_t; 12329: }; 12329: } 12329: 12329: namespace detail 12329: { 12329: template 12329: struct array_to_pointer_decay 12329: { 12329: typedef T type; 12329: }; 12329: 12329: template 12329: struct array_to_pointer_decay 12329: { 12329: typedef const T * type; 12329: }; 12329: } 12329: 12329: namespace detail 12329: { 12329: 12329: template< class Source, 12329: class Enable = void 12329: > 12329: struct lcast_src_length 12329: { 12329: static const std::size_t value = 1; 12329: }; 12329: # 350 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 3 4 12329: template 12329: struct lcast_src_length< 12329: Source, typename boost::enable_if >::type 12329: > 12329: { 12329: 12329: static const std::size_t value = std::numeric_limits::is_signed + std::numeric_limits::is_specialized + std::numeric_limits::digits10 * 2 12329: 12329: 12329: 12329: ; 12329: 12329: 12329: 12329: 12329: }; 12329: # 377 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 3 4 12329: template 12329: struct lcast_src_length< 12329: Source, typename boost::enable_if >::type 12329: > 12329: { 12329: 12329: 12329: static_assert(std::numeric_limits::max_exponent10 <= 999999L && std::numeric_limits::min_exponent10 >= -999999L, "std::numeric_limits::max_exponent10 <= 999999L && std::numeric_limits::min_exponent10 >= -999999L") 12329: 12329: 12329: ; 12329: 12329: static const std::size_t value = 5 + lcast_precision::value + 6 12329: 12329: ; 12329: 12329: 12329: 12329: }; 12329: } 12329: 12329: namespace detail 12329: { 12329: template 12329: struct lexical_cast_stream_traits { 12329: typedef typename boost::detail::array_to_pointer_decay::type src; 12329: typedef typename boost::remove_cv::type no_cv_src; 12329: 12329: typedef boost::detail::deduce_source_char deduce_src_char_metafunc; 12329: typedef typename deduce_src_char_metafunc::type src_char_t; 12329: typedef typename boost::detail::deduce_target_char::type target_char_t; 12329: 12329: typedef typename boost::detail::widest_char< 12329: target_char_t, src_char_t 12329: >::type char_type; 12329: # 424 "/usr/include/boost/lexical_cast/detail/converter_lexical.hpp" 3 4 12329: typedef typename boost::conditional< 12329: boost::detail::extract_char_traits::value, 12329: typename boost::detail::extract_char_traits, 12329: typename boost::detail::extract_char_traits 12329: >::type::trait_t traits; 12329: 12329: typedef boost::integral_constant< 12329: bool, 12329: boost::is_same::value && 12329: (sizeof(char) != sizeof(target_char_t)) && 12329: (!(boost::detail::is_character::value)) 12329: > is_string_widening_required_t; 12329: 12329: typedef boost::integral_constant< 12329: bool, 12329: !(boost::is_integral::value || 12329: boost::detail::is_character< 12329: typename deduce_src_char_metafunc::stage1_type 12329: >::value 12329: ) 12329: > is_source_input_not_optimized_t; 12329: 12329: 12329: 12329: static const bool requires_stringbuf = (is_string_widening_required_t::value || is_source_input_not_optimized_t::value) 12329: 12329: ; 12329: 12329: typedef boost::detail::lcast_src_length len_t; 12329: }; 12329: } 12329: 12329: namespace detail 12329: { 12329: template 12329: struct lexical_converter_impl 12329: { 12329: typedef lexical_cast_stream_traits stream_trait; 12329: 12329: typedef detail::lexical_istream_limited_src< 12329: typename stream_trait::char_type, 12329: typename stream_trait::traits, 12329: stream_trait::requires_stringbuf, 12329: stream_trait::len_t::value + 1 12329: > i_interpreter_type; 12329: 12329: typedef detail::lexical_ostream_limited_src< 12329: typename stream_trait::char_type, 12329: typename stream_trait::traits 12329: > o_interpreter_type; 12329: 12329: static inline bool try_convert(const Source& arg, Target& result) { 12329: i_interpreter_type i_interpreter; 12329: 12329: 12329: if (!(i_interpreter.operator <<(arg))) 12329: return false; 12329: 12329: o_interpreter_type out(i_interpreter.cbegin(), i_interpreter.cend()); 12329: 12329: 12329: if(!(out.operator >>(result))) 12329: return false; 12329: 12329: return true; 12329: } 12329: }; 12329: } 12329: 12329: } 12329: # 45 "/usr/include/boost/lexical_cast/try_lexical_convert.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: namespace boost { 12329: namespace detail 12329: { 12329: template 12329: struct is_stdstring 12329: : boost::false_type 12329: {}; 12329: 12329: template 12329: struct is_stdstring< std::basic_string > 12329: : boost::true_type 12329: {}; 12329: 12329: 12329: 12329: template 12329: struct is_booststring 12329: : boost::false_type 12329: {}; 12329: 12329: template 12329: struct is_booststring< boost::container::basic_string > 12329: : boost::true_type 12329: {}; 12329: 12329: template 12329: struct is_arithmetic_and_not_xchars 12329: { 12329: typedef boost::integral_constant< 12329: bool, 12329: !(boost::detail::is_character::value) && 12329: !(boost::detail::is_character::value) && 12329: boost::is_arithmetic::value && 12329: boost::is_arithmetic::value 12329: > type; 12329: 12329: static const bool value = ( type::value ) 12329: 12329: ; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template 12329: struct is_xchar_to_xchar 12329: { 12329: typedef boost::integral_constant< 12329: bool, 12329: sizeof(Source) == sizeof(Target) && 12329: sizeof(Source) == sizeof(char) && 12329: boost::detail::is_character::value && 12329: boost::detail::is_character::value 12329: > type; 12329: 12329: static const bool value = ( type::value ) 12329: 12329: ; 12329: }; 12329: 12329: template 12329: struct is_char_array_to_stdstring 12329: : boost::false_type 12329: {}; 12329: 12329: template 12329: struct is_char_array_to_stdstring< std::basic_string, CharT* > 12329: : boost::true_type 12329: {}; 12329: 12329: template 12329: struct is_char_array_to_stdstring< std::basic_string, const CharT* > 12329: : boost::true_type 12329: {}; 12329: 12329: 12329: 12329: template 12329: struct is_char_array_to_booststring 12329: : boost::false_type 12329: {}; 12329: 12329: template 12329: struct is_char_array_to_booststring< boost::container::basic_string, CharT* > 12329: : boost::true_type 12329: {}; 12329: 12329: template 12329: struct is_char_array_to_booststring< boost::container::basic_string, const CharT* > 12329: : boost::true_type 12329: {}; 12329: 12329: template 12329: struct copy_converter_impl 12329: { 12329: 12329: 12329: 12329: template 12329: static inline bool try_convert(T&& arg, Target& result) { 12329: result = static_cast(arg); 12329: return true; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: }; 12329: } 12329: 12329: namespace conversion { namespace detail { 12329: 12329: template 12329: inline bool try_lexical_convert(const Source& arg, Target& result) 12329: { 12329: typedef typename boost::detail::array_to_pointer_decay::type src; 12329: 12329: typedef boost::integral_constant< 12329: bool, 12329: boost::detail::is_xchar_to_xchar::value || 12329: boost::detail::is_char_array_to_stdstring::value || 12329: boost::detail::is_char_array_to_booststring::value || 12329: ( 12329: boost::is_same::value && 12329: (boost::detail::is_stdstring::value || boost::detail::is_booststring::value) 12329: ) || 12329: ( 12329: boost::is_same::value && 12329: boost::detail::is_character::value 12329: ) 12329: > shall_we_copy_t; 12329: 12329: typedef boost::detail::is_arithmetic_and_not_xchars 12329: shall_we_copy_with_dynamic_check_t; 12329: 12329: 12329: 12329: typedef typename boost::conditional< 12329: shall_we_copy_t::value, 12329: boost::type_identity >, 12329: boost::conditional< 12329: shall_we_copy_with_dynamic_check_t::value, 12329: boost::detail::dynamic_num_converter_impl, 12329: boost::detail::lexical_converter_impl 12329: > 12329: >::type caster_type_lazy; 12329: 12329: typedef typename caster_type_lazy::type caster_type; 12329: 12329: return caster_type::try_convert(arg, result); 12329: } 12329: 12329: template 12329: inline bool try_lexical_convert(const CharacterT* chars, std::size_t count, Target& result) 12329: { 12329: static_assert(boost::detail::is_character::value, "This overload of try_lexical_convert is meant to be used only with arrays of characters.") 12329: 12329: 12329: ; 12329: return ::boost::conversion::detail::try_lexical_convert( 12329: ::boost::iterator_range(chars, chars + count), result 12329: ); 12329: } 12329: 12329: }} 12329: 12329: namespace conversion { 12329: 12329: using ::boost::conversion::detail::try_lexical_convert; 12329: } 12329: 12329: } 12329: 12329: 12329: 12329: 12329: #pragma GCC diagnostic pop 12329: # 33 "/usr/include/boost/lexical_cast.hpp" 2 3 4 12329: 12329: namespace boost 12329: { 12329: template 12329: inline Target lexical_cast(const Source &arg) 12329: { 12329: Target result = Target(); 12329: 12329: if (!boost::conversion::detail::try_lexical_convert(arg, result)) { 12329: boost::conversion::detail::throw_bad_cast(); 12329: } 12329: 12329: return result; 12329: } 12329: 12329: template 12329: inline Target lexical_cast(const char* chars, std::size_t count) 12329: { 12329: return ::boost::lexical_cast( 12329: ::boost::iterator_range(chars, chars + count) 12329: ); 12329: } 12329: 12329: template 12329: inline Target lexical_cast(const unsigned char* chars, std::size_t count) 12329: { 12329: return ::boost::lexical_cast( 12329: ::boost::iterator_range(chars, chars + count) 12329: ); 12329: } 12329: 12329: template 12329: inline Target lexical_cast(const signed char* chars, std::size_t count) 12329: { 12329: return ::boost::lexical_cast( 12329: ::boost::iterator_range(chars, chars + count) 12329: ); 12329: } 12329: 12329: 12329: template 12329: inline Target lexical_cast(const wchar_t* chars, std::size_t count) 12329: { 12329: return ::boost::lexical_cast( 12329: ::boost::iterator_range(chars, chars + count) 12329: ); 12329: } 12329: 12329: 12329: template 12329: inline Target lexical_cast(const char16_t* chars, std::size_t count) 12329: { 12329: return ::boost::lexical_cast( 12329: ::boost::iterator_range(chars, chars + count) 12329: ); 12329: } 12329: 12329: 12329: template 12329: inline Target lexical_cast(const char32_t* chars, std::size_t count) 12329: { 12329: return ::boost::lexical_cast( 12329: ::boost::iterator_range(chars, chars + count) 12329: ); 12329: } 12329: 12329: 12329: } 12329: # 15 "/usr/include/boost/program_options/value_semantic.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: namespace boost { namespace program_options { 12329: 12329: 12329: 12329: 12329: class value_semantic { 12329: public: 12329: 12329: 12329: 12329: virtual std::string name() const = 0; 12329: 12329: 12329: 12329: virtual unsigned min_tokens() const = 0; 12329: 12329: 12329: 12329: virtual unsigned max_tokens() const = 0; 12329: 12329: 12329: 12329: 12329: 12329: virtual bool is_composing() const = 0; 12329: 12329: 12329: 12329: 12329: virtual bool is_required() const = 0; 12329: 12329: 12329: 12329: 12329: 12329: 12329: virtual void parse(boost::any& value_store, 12329: const std::vector& new_tokens, 12329: bool utf8) const 12329: = 0; 12329: 12329: 12329: 12329: 12329: virtual bool apply_default(boost::any& value_store) const = 0; 12329: 12329: 12329: 12329: virtual void notify(const boost::any& value_store) const = 0; 12329: 12329: virtual ~value_semantic() {} 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: class value_semantic_codecvt_helper { 12329: 12329: }; 12329: # 89 "/usr/include/boost/program_options/value_semantic.hpp" 3 4 12329: template<> 12329: class 12329: value_semantic_codecvt_helper : public value_semantic { 12329: private: 12329: void parse(boost::any& value_store, 12329: const std::vector& new_tokens, 12329: bool utf8) const; 12329: protected: 12329: virtual void xparse(boost::any& value_store, 12329: const std::vector& new_tokens) 12329: const = 0; 12329: }; 12329: # 109 "/usr/include/boost/program_options/value_semantic.hpp" 3 4 12329: template<> 12329: class 12329: value_semantic_codecvt_helper : public value_semantic { 12329: private: 12329: void parse(boost::any& value_store, 12329: const std::vector& new_tokens, 12329: bool utf8) const; 12329: protected: 12329: 12329: virtual void xparse(boost::any& value_store, 12329: const std::vector& new_tokens) 12329: const = 0; 12329: 12329: }; 12329: 12329: 12329: 12329: class 12329: untyped_value : public value_semantic_codecvt_helper { 12329: public: 12329: untyped_value(bool zero_tokens = false) 12329: : m_zero_tokens(zero_tokens) 12329: {} 12329: 12329: std::string name() const; 12329: 12329: unsigned min_tokens() const; 12329: unsigned max_tokens() const; 12329: 12329: bool is_composing() const { return false; } 12329: 12329: bool is_required() const { return false; } 12329: 12329: 12329: 12329: 12329: 12329: 12329: void xparse(boost::any& value_store, 12329: const std::vector& new_tokens) const; 12329: 12329: 12329: bool apply_default(boost::any&) const { return false; } 12329: 12329: 12329: void notify(const boost::any&) const {} 12329: private: 12329: bool m_zero_tokens; 12329: }; 12329: # 166 "/usr/include/boost/program_options/value_semantic.hpp" 3 4 12329: class typed_value_base 12329: { 12329: public: 12329: 12329: 12329: virtual const std::type_info& value_type() const = 0; 12329: 12329: 12329: virtual ~typed_value_base() {} 12329: }; 12329: 12329: 12329: 12329: 12329: template 12329: class typed_value : public value_semantic_codecvt_helper 12329: 12329: , public typed_value_base 12329: 12329: { 12329: public: 12329: 12329: 12329: typed_value(T* store_to) 12329: : m_store_to(store_to), m_composing(false), 12329: m_implicit(false), m_multitoken(false), 12329: m_zero_tokens(false), m_required(false) 12329: {} 12329: 12329: 12329: 12329: 12329: 12329: typed_value* default_value(const T& v) 12329: { 12329: m_default_value = boost::any(v); 12329: m_default_value_as_text = boost::lexical_cast(v); 12329: return this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: typed_value* default_value(const T& v, const std::string& textual) 12329: { 12329: m_default_value = boost::any(v); 12329: m_default_value_as_text = textual; 12329: return this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: typed_value* implicit_value(const T &v) 12329: { 12329: m_implicit_value = boost::any(v); 12329: m_implicit_value_as_text = 12329: boost::lexical_cast(v); 12329: return this; 12329: } 12329: 12329: 12329: typed_value* value_name(const std::string& name) 12329: { 12329: m_value_name = name; 12329: return this; 12329: } 12329: # 248 "/usr/include/boost/program_options/value_semantic.hpp" 3 4 12329: typed_value* implicit_value(const T &v, const std::string& textual) 12329: { 12329: m_implicit_value = boost::any(v); 12329: m_implicit_value_as_text = textual; 12329: return this; 12329: } 12329: 12329: 12329: 12329: typed_value* notifier(function1 f) 12329: { 12329: m_notifier = f; 12329: return this; 12329: } 12329: 12329: 12329: 12329: 12329: typed_value* composing() 12329: { 12329: m_composing = true; 12329: return this; 12329: } 12329: 12329: 12329: 12329: typed_value* multitoken() 12329: { 12329: m_multitoken = true; 12329: return this; 12329: } 12329: # 287 "/usr/include/boost/program_options/value_semantic.hpp" 3 4 12329: typed_value* zero_tokens() 12329: { 12329: m_zero_tokens = true; 12329: return this; 12329: } 12329: 12329: 12329: typed_value* required() 12329: { 12329: m_required = true; 12329: return this; 12329: } 12329: 12329: public: 12329: 12329: std::string name() const; 12329: 12329: bool is_composing() const { return m_composing; } 12329: 12329: unsigned min_tokens() const 12329: { 12329: if (m_zero_tokens || !m_implicit_value.empty()) { 12329: return 0; 12329: } else { 12329: return 1; 12329: } 12329: } 12329: 12329: unsigned max_tokens() const { 12329: if (m_multitoken) { 12329: return std::numeric_limits::max (); 12329: } else if (m_zero_tokens) { 12329: return 0; 12329: } else { 12329: return 1; 12329: } 12329: } 12329: 12329: bool is_required() const { return m_required; } 12329: 12329: 12329: 12329: void xparse(boost::any& value_store, 12329: const std::vector< std::basic_string >& new_tokens) 12329: const; 12329: 12329: 12329: 12329: 12329: 12329: virtual bool apply_default(boost::any& value_store) const 12329: { 12329: if (m_default_value.empty()) { 12329: return false; 12329: } else { 12329: value_store = m_default_value; 12329: return true; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: void notify(const boost::any& value_store) const; 12329: 12329: public: 12329: 12329: 12329: const std::type_info& value_type() const 12329: { 12329: return typeid(T); 12329: } 12329: 12329: 12329: 12329: private: 12329: T* m_store_to; 12329: 12329: 12329: 12329: std::string m_value_name; 12329: boost::any m_default_value; 12329: std::string m_default_value_as_text; 12329: boost::any m_implicit_value; 12329: std::string m_implicit_value_as_text; 12329: bool m_composing, m_implicit, m_multitoken, m_zero_tokens, m_required; 12329: boost::function1 m_notifier; 12329: }; 12329: # 383 "/usr/include/boost/program_options/value_semantic.hpp" 3 4 12329: template 12329: typed_value* 12329: value(); 12329: 12329: 12329: 12329: template 12329: typed_value* 12329: value(T* v); 12329: 12329: 12329: 12329: 12329: 12329: template 12329: typed_value* 12329: wvalue(); 12329: 12329: 12329: 12329: template 12329: typed_value* 12329: wvalue(T* v); 12329: 12329: 12329: 12329: 12329: 12329: typed_value* 12329: bool_switch(); 12329: 12329: 12329: 12329: typed_value* 12329: bool_switch(bool* v); 12329: 12329: }} 12329: 12329: # 1 "/usr/include/boost/program_options/detail/value_semantic.hpp" 1 3 4 12329: # 12 "/usr/include/boost/program_options/detail/value_semantic.hpp" 3 4 12329: namespace boost { template class optional; } 12329: 12329: namespace boost { namespace program_options { 12329: 12329: extern std::string arg; 12329: 12329: template 12329: std::string 12329: typed_value::name() const 12329: { 12329: std::string const& var = (m_value_name.empty() ? arg : m_value_name); 12329: if (!m_implicit_value.empty() && !m_implicit_value_as_text.empty()) { 12329: std::string msg = "[=" + var + "(=" + m_implicit_value_as_text + ")]"; 12329: if (!m_default_value.empty() && !m_default_value_as_text.empty()) 12329: msg += " (=" + m_default_value_as_text + ")"; 12329: return msg; 12329: } 12329: else if (!m_default_value.empty() && !m_default_value_as_text.empty()) { 12329: return var + " (=" + m_default_value_as_text + ")"; 12329: } else { 12329: return var; 12329: } 12329: } 12329: 12329: template 12329: void 12329: typed_value::notify(const boost::any& value_store) const 12329: { 12329: const T* value = boost::any_cast(&value_store); 12329: if (m_store_to) { 12329: *m_store_to = *value; 12329: } 12329: if (m_notifier) { 12329: m_notifier(*value); 12329: } 12329: } 12329: 12329: namespace validators { 12329: 12329: 12329: 12329: 12329: 12329: template 12329: const std::basic_string& get_single_string( 12329: const std::vector >& v, 12329: bool allow_empty = false) 12329: { 12329: static std::basic_string empty; 12329: if (v.size() > 1) 12329: boost::throw_exception(validation_error(validation_error::multiple_values_not_allowed)); 12329: else if (v.size() == 1) 12329: return v.front(); 12329: else if (!allow_empty) 12329: boost::throw_exception(validation_error(validation_error::at_least_one_value_required)); 12329: return empty; 12329: } 12329: 12329: 12329: void 12329: check_first_occurrence(const boost::any& value); 12329: } 12329: 12329: using namespace validators; 12329: # 84 "/usr/include/boost/program_options/detail/value_semantic.hpp" 3 4 12329: template 12329: void validate(boost::any& v, 12329: const std::vector< std::basic_string >& xs, 12329: T*, long) 12329: { 12329: validators::check_first_occurrence(v); 12329: std::basic_string s(validators::get_single_string(xs)); 12329: try { 12329: v = any(lexical_cast(s)); 12329: } 12329: catch(const bad_lexical_cast&) { 12329: boost::throw_exception(invalid_option_value(s)); 12329: } 12329: } 12329: 12329: void validate(boost::any& v, 12329: const std::vector& xs, 12329: bool*, 12329: int); 12329: 12329: 12329: void validate(boost::any& v, 12329: const std::vector& xs, 12329: bool*, 12329: int); 12329: 12329: 12329: 12329: 12329: 12329: void validate(boost::any& v, 12329: const std::vector& xs, 12329: std::string*, 12329: int); 12329: 12329: 12329: void validate(boost::any& v, 12329: const std::vector& xs, 12329: std::string*, 12329: int); 12329: 12329: 12329: 12329: 12329: 12329: template 12329: void validate(boost::any& v, 12329: const std::vector >& s, 12329: std::vector*, 12329: int) 12329: { 12329: if (v.empty()) { 12329: v = boost::any(std::vector()); 12329: } 12329: std::vector* tv = boost::any_cast< std::vector >(&v); 12329: (static_cast (0)); 12329: for (unsigned i = 0; i < s.size(); ++i) 12329: { 12329: try { 12329: 12329: 12329: 12329: boost::any a; 12329: std::vector > cv; 12329: cv.push_back(s[i]); 12329: validate(a, cv, (T*)0, 0); 12329: tv->push_back(boost::any_cast(a)); 12329: } 12329: catch(const bad_lexical_cast& ) { 12329: boost::throw_exception(invalid_option_value(s[i])); 12329: } 12329: } 12329: } 12329: 12329: 12329: template 12329: void validate(boost::any& v, 12329: const std::vector >& s, 12329: boost::optional*, 12329: int) 12329: { 12329: validators::check_first_occurrence(v); 12329: validators::get_single_string(s); 12329: boost::any a; 12329: validate(a, s, (T*)0, 0); 12329: v = boost::any(boost::optional(boost::any_cast(a))); 12329: } 12329: 12329: template 12329: void 12329: typed_value:: 12329: xparse(boost::any& value_store, 12329: const std::vector >& new_tokens) const 12329: { 12329: 12329: 12329: 12329: if (new_tokens.empty() && !m_implicit_value.empty()) 12329: value_store = m_implicit_value; 12329: else 12329: validate(value_store, new_tokens, (T*)0, 0); 12329: } 12329: 12329: template 12329: typed_value* 12329: value() 12329: { 12329: 12329: return boost::program_options::value(0); 12329: } 12329: 12329: template 12329: typed_value* 12329: value(T* v) 12329: { 12329: typed_value* r = new typed_value(v); 12329: 12329: return r; 12329: } 12329: 12329: template 12329: typed_value* 12329: wvalue() 12329: { 12329: return wvalue(0); 12329: } 12329: 12329: template 12329: typed_value* 12329: wvalue(T* v) 12329: { 12329: typed_value* r = new typed_value(v); 12329: 12329: return r; 12329: } 12329: 12329: 12329: 12329: }} 12329: # 422 "/usr/include/boost/program_options/value_semantic.hpp" 2 3 4 12329: # 14 "/usr/include/boost/program_options/options_description.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/function.hpp" 1 3 4 12329: # 25 "/usr/include/boost/function.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/iterate.hpp" 1 3 4 12329: # 15 "/usr/include/boost/preprocessor/iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/iteration/iterate.hpp" 1 3 4 12329: # 20 "/usr/include/boost/preprocessor/iteration/iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/slot/slot.hpp" 1 3 4 12329: # 16 "/usr/include/boost/preprocessor/slot/slot.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/slot/detail/def.hpp" 1 3 4 12329: # 17 "/usr/include/boost/preprocessor/slot/slot.hpp" 2 3 4 12329: # 21 "/usr/include/boost/preprocessor/iteration/iterate.hpp" 2 3 4 12329: # 16 "/usr/include/boost/preprocessor/iterate.hpp" 2 3 4 12329: # 26 "/usr/include/boost/function.hpp" 2 3 4 12329: # 70 "/usr/include/boost/function.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 1 3 4 12329: # 24 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp" 1 3 4 12329: # 12 "/usr/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/slot/detail/shared.hpp" 1 3 4 12329: # 13 "/usr/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp" 2 3 4 12329: # 25 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp" 1 3 4 12329: # 12 "/usr/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp" 3 4 12329: # 1 "/usr/include/boost/preprocessor/slot/detail/shared.hpp" 1 3 4 12329: # 13 "/usr/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp" 2 3 4 12329: # 27 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: # 47 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4 12329: # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4 12329: # 15 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4 12329: # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4 12329: # 86 "/usr/include/boost/function/function_template.hpp" 3 4 12329: namespace boost { 12329: namespace detail { 12329: namespace function { 12329: template< 12329: typename FunctionPtr, 12329: typename R 12329: 12329: > 12329: struct function_invoker0 12329: { 12329: static R invoke(function_buffer& function_ptr 12329: ) 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: return f(); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R 12329: 12329: > 12329: struct void_function_invoker0 12329: { 12329: static void 12329: invoke(function_buffer& function_ptr 12329: ) 12329: 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: f(); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R 12329: 12329: > 12329: struct function_obj_invoker0 12329: { 12329: static R invoke(function_buffer& function_obj_ptr 12329: ) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)(); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R 12329: 12329: > 12329: struct void_function_obj_invoker0 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr 12329: ) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)(); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R 12329: 12329: > 12329: struct function_ref_invoker0 12329: { 12329: static R invoke(function_buffer& function_obj_ptr 12329: ) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)(); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R 12329: 12329: > 12329: struct void_function_ref_invoker0 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr 12329: ) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)(); 12329: } 12329: }; 12329: # 235 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template< 12329: typename FunctionPtr, 12329: typename R 12329: 12329: > 12329: struct get_function_invoker0 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_invoker0< 12329: FunctionPtr, 12329: R 12329: 12329: >, 12329: function_invoker0< 12329: FunctionPtr, 12329: R 12329: 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R 12329: 12329: > 12329: struct get_function_obj_invoker0 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_obj_invoker0< 12329: FunctionObj, 12329: R 12329: 12329: >, 12329: function_obj_invoker0< 12329: FunctionObj, 12329: R 12329: 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R 12329: 12329: > 12329: struct get_function_ref_invoker0 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_ref_invoker0< 12329: FunctionObj, 12329: R 12329: 12329: >, 12329: function_ref_invoker0< 12329: FunctionObj, 12329: R 12329: 12329: > 12329: >::type type; 12329: }; 12329: # 331 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct get_invoker0 { }; 12329: 12329: 12329: template<> 12329: struct get_invoker0 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_invoker0< 12329: FunctionPtr, 12329: R 12329: 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_invoker0< 12329: FunctionPtr, 12329: R 12329: 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: # 403 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template<> 12329: struct get_invoker0 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_obj_invoker0< 12329: FunctionObj, 12329: R 12329: 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_obj_invoker0< 12329: FunctionObj, 12329: R 12329: 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager_a manager_type; 12329: }; 12329: }; 12329: 12329: 12329: template<> 12329: struct get_invoker0 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_ref_invoker0< 12329: typename RefWrapper::type, 12329: R 12329: 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_ref_invoker0< 12329: typename RefWrapper::type, 12329: R 12329: 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: }; 12329: # 476 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct basic_vtable0 12329: { 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: typedef result_type (*invoker_type)(function_buffer& 12329: 12329: ); 12329: 12329: template 12329: bool assign_to(F f, function_buffer& functor) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to(f, functor, tag()); 12329: } 12329: template 12329: bool assign_to_a(F f, function_buffer& functor, Allocator a) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to_a(f, functor, a, tag()); 12329: } 12329: 12329: void clear(function_buffer& functor) const 12329: { 12329: if (base.manager) 12329: base.manager(functor, functor, destroy_functor_tag); 12329: } 12329: 12329: private: 12329: 12329: template 12329: bool 12329: assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const 12329: { 12329: this->clear(functor); 12329: if (f) { 12329: 12329: 12329: functor.members.func_ptr = reinterpret_cast(f); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const 12329: { 12329: return assign_to(f,functor,function_ptr_tag()); 12329: } 12329: # 563 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, true_type) const 12329: { 12329: new (reinterpret_cast(functor.data)) FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const 12329: { 12329: assign_functor(f,functor,true_type()); 12329: } 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, false_type) const 12329: { 12329: functor.members.obj_ptr = new FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const 12329: { 12329: typedef functor_wrapper functor_wrapper_type; 12329: 12329: 12329: 12329: 12329: 12329: using wrapper_allocator_type = typename std::allocator_traits::template rebind_alloc; 12329: using wrapper_allocator_pointer_type = typename std::allocator_traits::pointer; 12329: 12329: wrapper_allocator_type wrapper_allocator(a); 12329: wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); 12329: 12329: 12329: 12329: std::allocator_traits::construct(wrapper_allocator, copy, functor_wrapper_type(f,a)); 12329: 12329: functor_wrapper_type* new_f = static_cast(copy); 12329: functor.members.obj_ptr = new_f; 12329: } 12329: 12329: template 12329: bool 12329: assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor(f, functor, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor_a(f, functor, a, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: template 12329: bool 12329: assign_to(const reference_wrapper& f, 12329: function_buffer& functor, function_obj_ref_tag) const 12329: { 12329: functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer()); 12329: functor.members.obj_ref.is_const_qualified = is_const::value; 12329: functor.members.obj_ref.is_volatile_qualified = is_volatile::value; 12329: return true; 12329: } 12329: template 12329: bool 12329: assign_to_a(const reference_wrapper& f, 12329: function_buffer& functor, Allocator, function_obj_ref_tag) const 12329: { 12329: return assign_to(f,functor,function_obj_ref_tag()); 12329: } 12329: 12329: public: 12329: vtable_base base; 12329: invoker_type invoker; 12329: }; 12329: } 12329: } 12329: 12329: template< 12329: typename R 12329: 12329: > 12329: class function0 : public function_base 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: typedef boost::detail::function::basic_vtable0< 12329: R > 12329: vtable_type; 12329: 12329: vtable_type* get_vtable() const { 12329: return reinterpret_cast( 12329: reinterpret_cast(vtable) & ~static_cast(0x01)); 12329: } 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: static const int args = 0; 12329: 12329: 12329: template 12329: struct sig 12329: { 12329: typedef result_type type; 12329: }; 12329: # 701 "/usr/include/boost/function/function_template.hpp" 3 4 12329: static const int arity = 0; 12329: 12329: 12329: typedef function0 self_type; 12329: 12329: function0() = default; 12329: 12329: 12329: 12329: template 12329: function0(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to(f); 12329: } 12329: template 12329: function0(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to_a(f,a); 12329: } 12329: 12329: 12329: function0(clear_type*) : function_base() { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: function0(const function0& f) : function_base() 12329: { 12329: this->assign_to_own(f); 12329: } 12329: 12329: 12329: function0(function0&& f) : function_base() 12329: { 12329: this->move_assign(f); 12329: } 12329: 12329: 12329: ~function0() { clear(); } 12329: 12329: result_type operator()() const 12329: { 12329: if (this->empty()) 12329: boost::throw_exception(bad_function_call()); 12329: 12329: return get_vtable()->invoker 12329: (this->functor ); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: function0&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: this->clear(); 12329: { try { 12329: this->assign_to(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: template 12329: void assign(Functor f, Allocator a) 12329: { 12329: this->clear(); 12329: { try{ 12329: this->assign_to_a(f,a); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: 12329: 12329: function0& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: # 821 "/usr/include/boost/function/function_template.hpp" 3 4 12329: function0& operator=(const function0& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->assign_to_own(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: 12329: function0& operator=(function0&& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->move_assign(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: void swap(function0& other) 12329: { 12329: if (&other == this) 12329: return; 12329: 12329: function0 tmp; 12329: tmp.move_assign(*this); 12329: this->move_assign(other); 12329: other.move_assign(tmp); 12329: } 12329: 12329: 12329: void clear() 12329: { 12329: if (vtable) { 12329: if (!this->has_trivial_copy_and_destroy()) 12329: get_vtable()->clear(this->functor); 12329: vtable = 0; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: struct dummy { 12329: void nonnull() {} 12329: }; 12329: 12329: typedef void (dummy::*safe_bool)(); 12329: 12329: public: 12329: operator safe_bool () const 12329: { return (this->empty())? 0 : &dummy::nonnull; } 12329: 12329: bool operator!() const 12329: { return this->empty(); } 12329: 12329: 12329: private: 12329: void assign_to_own(const function0& f) 12329: { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::clone_functor_tag); 12329: } 12329: } 12329: 12329: template 12329: void assign_to(Functor f) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker0 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to(f, functor)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: template 12329: void assign_to_a(Functor f,Allocator a) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker0 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply_a 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to_a(f, functor, a)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: 12329: 12329: 12329: void move_assign(function0& f) 12329: { 12329: if (&f == this) 12329: return; 12329: 12329: { try { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::move_functor_tag); 12329: f.vtable = 0; 12329: } else { 12329: clear(); 12329: } 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: }; 12329: 12329: template 12329: inline void swap(function0< 12329: R 12329: 12329: >& f1, 12329: function0< 12329: R 12329: 12329: >& f2) 12329: { 12329: f1.swap(f2); 12329: } 12329: 12329: 12329: template 12329: void operator==(const function0< 12329: R 12329: >&, 12329: const function0< 12329: R 12329: >&); 12329: template 12329: void operator!=(const function0< 12329: R 12329: >&, 12329: const function0< 12329: R 12329: >& ); 12329: # 1064 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: class function 12329: : public function0 12329: { 12329: typedef function0 base_type; 12329: typedef function self_type; 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: 12329: function() = default; 12329: 12329: template 12329: function(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f) 12329: { 12329: } 12329: template 12329: function(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f,a) 12329: { 12329: } 12329: 12329: 12329: function(clear_type*) : base_type() {} 12329: 12329: 12329: function(const self_type& f) : base_type(static_cast(f)){} 12329: 12329: function(const base_type& f) : base_type(static_cast(f)){} 12329: 12329: 12329: 12329: function(self_type&& f): base_type(static_cast(f)){} 12329: function(base_type&& f): base_type(static_cast(f)){} 12329: 12329: 12329: self_type& operator=(const self_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(self_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: self_type&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(const base_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(base_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 16 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4 12329: # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4 12329: # 48 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4 12329: # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4 12329: # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4 12329: # 53 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4 12329: # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4 12329: # 29 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4 12329: # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4 12329: # 86 "/usr/include/boost/function/function_template.hpp" 3 4 12329: namespace boost { 12329: namespace detail { 12329: namespace function { 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: struct function_invoker2 12329: { 12329: static R invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1) 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: return f( static_cast(a0) , static_cast(a1)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: struct void_function_invoker2 12329: { 12329: static void 12329: invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1) 12329: 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: f( static_cast(a0) , static_cast(a1)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: struct function_obj_invoker2 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: struct void_function_obj_invoker2 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: struct function_ref_invoker2 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: struct void_function_ref_invoker2 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1)); 12329: } 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: struct function_mem_invoker2 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: return boost::mem_fn(*f)( static_cast(a0) , static_cast(a1)); 12329: } 12329: }; 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: struct function_void_mem_invoker2 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: boost::mem_fn(*f)( static_cast(a0) , static_cast(a1)); 12329: } 12329: }; 12329: 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: struct get_function_invoker2 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_invoker2< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 12329: >, 12329: function_invoker2< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: struct get_function_obj_invoker2 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_obj_invoker2< 12329: FunctionObj, 12329: R , 12329: T0 , T1 12329: >, 12329: function_obj_invoker2< 12329: FunctionObj, 12329: R , 12329: T0 , T1 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: struct get_function_ref_invoker2 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_ref_invoker2< 12329: FunctionObj, 12329: R , 12329: T0 , T1 12329: >, 12329: function_ref_invoker2< 12329: FunctionObj, 12329: R , 12329: T0 , T1 12329: > 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: struct get_member_invoker2 12329: { 12329: typedef typename conditional<(is_void::value), 12329: function_void_mem_invoker2< 12329: MemberPtr, 12329: R , 12329: T0 , T1 12329: >, 12329: function_mem_invoker2< 12329: MemberPtr, 12329: R , 12329: T0 , T1 12329: > 12329: >::type type; 12329: }; 12329: # 331 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct get_invoker2 { }; 12329: 12329: 12329: template<> 12329: struct get_invoker2 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_invoker2< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_invoker2< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker2 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_member_invoker2< 12329: MemberPtr, 12329: R , 12329: T0 , T1 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_member_invoker2< 12329: MemberPtr, 12329: R , 12329: T0 , T1 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker2 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_obj_invoker2< 12329: FunctionObj, 12329: R , 12329: T0 , T1 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_obj_invoker2< 12329: FunctionObj, 12329: R , 12329: T0 , T1 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager_a manager_type; 12329: }; 12329: }; 12329: 12329: 12329: template<> 12329: struct get_invoker2 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_ref_invoker2< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_ref_invoker2< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: }; 12329: # 476 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct basic_vtable2 12329: { 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: typedef result_type (*invoker_type)(function_buffer& 12329: , 12329: T0 , T1); 12329: 12329: template 12329: bool assign_to(F f, function_buffer& functor) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to(f, functor, tag()); 12329: } 12329: template 12329: bool assign_to_a(F f, function_buffer& functor, Allocator a) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to_a(f, functor, a, tag()); 12329: } 12329: 12329: void clear(function_buffer& functor) const 12329: { 12329: if (base.manager) 12329: base.manager(functor, functor, destroy_functor_tag); 12329: } 12329: 12329: private: 12329: 12329: template 12329: bool 12329: assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const 12329: { 12329: this->clear(functor); 12329: if (f) { 12329: 12329: 12329: functor.members.func_ptr = reinterpret_cast(f); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const 12329: { 12329: return assign_to(f,functor,function_ptr_tag()); 12329: } 12329: 12329: 12329: 12329: template 12329: bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to(boost::mem_fn(f), functor); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to_a(boost::mem_fn(f), functor, a); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, true_type) const 12329: { 12329: new (reinterpret_cast(functor.data)) FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const 12329: { 12329: assign_functor(f,functor,true_type()); 12329: } 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, false_type) const 12329: { 12329: functor.members.obj_ptr = new FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const 12329: { 12329: typedef functor_wrapper functor_wrapper_type; 12329: 12329: 12329: 12329: 12329: 12329: using wrapper_allocator_type = typename std::allocator_traits::template rebind_alloc; 12329: using wrapper_allocator_pointer_type = typename std::allocator_traits::pointer; 12329: 12329: wrapper_allocator_type wrapper_allocator(a); 12329: wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); 12329: 12329: 12329: 12329: std::allocator_traits::construct(wrapper_allocator, copy, functor_wrapper_type(f,a)); 12329: 12329: functor_wrapper_type* new_f = static_cast(copy); 12329: functor.members.obj_ptr = new_f; 12329: } 12329: 12329: template 12329: bool 12329: assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor(f, functor, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor_a(f, functor, a, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: template 12329: bool 12329: assign_to(const reference_wrapper& f, 12329: function_buffer& functor, function_obj_ref_tag) const 12329: { 12329: functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer()); 12329: functor.members.obj_ref.is_const_qualified = is_const::value; 12329: functor.members.obj_ref.is_volatile_qualified = is_volatile::value; 12329: return true; 12329: } 12329: template 12329: bool 12329: assign_to_a(const reference_wrapper& f, 12329: function_buffer& functor, Allocator, function_obj_ref_tag) const 12329: { 12329: return assign_to(f,functor,function_obj_ref_tag()); 12329: } 12329: 12329: public: 12329: vtable_base base; 12329: invoker_type invoker; 12329: }; 12329: } 12329: } 12329: 12329: template< 12329: typename R , 12329: typename T0 , typename T1 12329: > 12329: class function2 : public function_base 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: typedef boost::detail::function::basic_vtable2< 12329: R , T0 , T1> 12329: vtable_type; 12329: 12329: vtable_type* get_vtable() const { 12329: return reinterpret_cast( 12329: reinterpret_cast(vtable) & ~static_cast(0x01)); 12329: } 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: static const int args = 2; 12329: 12329: 12329: template 12329: struct sig 12329: { 12329: typedef result_type type; 12329: }; 12329: 12329: 12329: 12329: 12329: typedef T0 first_argument_type; 12329: typedef T1 second_argument_type; 12329: 12329: 12329: static const int arity = 2; 12329: typedef T0 arg1_type; typedef T1 arg2_type; 12329: 12329: typedef function2 self_type; 12329: 12329: function2() = default; 12329: 12329: 12329: 12329: template 12329: function2(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to(f); 12329: } 12329: template 12329: function2(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to_a(f,a); 12329: } 12329: 12329: 12329: function2(clear_type*) : function_base() { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: function2(const function2& f) : function_base() 12329: { 12329: this->assign_to_own(f); 12329: } 12329: 12329: 12329: function2(function2&& f) : function_base() 12329: { 12329: this->move_assign(f); 12329: } 12329: 12329: 12329: ~function2() { clear(); } 12329: 12329: result_type operator()( T0 a0 , T1 a1) const 12329: { 12329: if (this->empty()) 12329: boost::throw_exception(bad_function_call()); 12329: 12329: return get_vtable()->invoker 12329: (this->functor , static_cast(a0) , static_cast(a1)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: function2&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: this->clear(); 12329: { try { 12329: this->assign_to(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: template 12329: void assign(Functor f, Allocator a) 12329: { 12329: this->clear(); 12329: { try{ 12329: this->assign_to_a(f,a); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: 12329: 12329: function2& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: # 821 "/usr/include/boost/function/function_template.hpp" 3 4 12329: function2& operator=(const function2& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->assign_to_own(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: 12329: function2& operator=(function2&& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->move_assign(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: void swap(function2& other) 12329: { 12329: if (&other == this) 12329: return; 12329: 12329: function2 tmp; 12329: tmp.move_assign(*this); 12329: this->move_assign(other); 12329: other.move_assign(tmp); 12329: } 12329: 12329: 12329: void clear() 12329: { 12329: if (vtable) { 12329: if (!this->has_trivial_copy_and_destroy()) 12329: get_vtable()->clear(this->functor); 12329: vtable = 0; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: struct dummy { 12329: void nonnull() {} 12329: }; 12329: 12329: typedef void (dummy::*safe_bool)(); 12329: 12329: public: 12329: operator safe_bool () const 12329: { return (this->empty())? 0 : &dummy::nonnull; } 12329: 12329: bool operator!() const 12329: { return this->empty(); } 12329: 12329: 12329: private: 12329: void assign_to_own(const function2& f) 12329: { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::clone_functor_tag); 12329: } 12329: } 12329: 12329: template 12329: void assign_to(Functor f) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker2 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to(f, functor)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: template 12329: void assign_to_a(Functor f,Allocator a) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker2 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply_a 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to_a(f, functor, a)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: 12329: 12329: 12329: void move_assign(function2& f) 12329: { 12329: if (&f == this) 12329: return; 12329: 12329: { try { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::move_functor_tag); 12329: f.vtable = 0; 12329: } else { 12329: clear(); 12329: } 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: }; 12329: 12329: template 12329: inline void swap(function2< 12329: R , 12329: T0 , T1 12329: >& f1, 12329: function2< 12329: R , 12329: T0 , T1 12329: >& f2) 12329: { 12329: f1.swap(f2); 12329: } 12329: 12329: 12329: template 12329: void operator==(const function2< 12329: R , 12329: T0 , T1>&, 12329: const function2< 12329: R , 12329: T0 , T1>&); 12329: template 12329: void operator!=(const function2< 12329: R , 12329: T0 , T1>&, 12329: const function2< 12329: R , 12329: T0 , T1>& ); 12329: # 1064 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: class function 12329: : public function2 12329: { 12329: typedef function2 base_type; 12329: typedef function self_type; 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: 12329: function() = default; 12329: 12329: template 12329: function(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f) 12329: { 12329: } 12329: template 12329: function(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f,a) 12329: { 12329: } 12329: 12329: 12329: function(clear_type*) : base_type() {} 12329: 12329: 12329: function(const self_type& f) : base_type(static_cast(f)){} 12329: 12329: function(const base_type& f) : base_type(static_cast(f)){} 12329: 12329: 12329: 12329: function(self_type&& f): base_type(static_cast(f)){} 12329: function(base_type&& f): base_type(static_cast(f)){} 12329: 12329: 12329: self_type& operator=(const self_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(self_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: self_type&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(const base_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(base_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 30 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4 12329: # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4 12329: # 58 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4 12329: # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4 12329: # 36 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4 12329: # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4 12329: # 86 "/usr/include/boost/function/function_template.hpp" 3 4 12329: namespace boost { 12329: namespace detail { 12329: namespace function { 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: struct function_invoker3 12329: { 12329: static R invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2) 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: return f( static_cast(a0) , static_cast(a1) , static_cast(a2)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: struct void_function_invoker3 12329: { 12329: static void 12329: invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2) 12329: 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: f( static_cast(a0) , static_cast(a1) , static_cast(a2)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: struct function_obj_invoker3 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: struct void_function_obj_invoker3 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: struct function_ref_invoker3 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: struct void_function_ref_invoker3 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2)); 12329: } 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: struct function_mem_invoker3 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: return boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2)); 12329: } 12329: }; 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: struct function_void_mem_invoker3 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2)); 12329: } 12329: }; 12329: 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: struct get_function_invoker3 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_invoker3< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 12329: >, 12329: function_invoker3< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: struct get_function_obj_invoker3 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_obj_invoker3< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 12329: >, 12329: function_obj_invoker3< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: struct get_function_ref_invoker3 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_ref_invoker3< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 12329: >, 12329: function_ref_invoker3< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 12329: > 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: struct get_member_invoker3 12329: { 12329: typedef typename conditional<(is_void::value), 12329: function_void_mem_invoker3< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 12329: >, 12329: function_mem_invoker3< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 12329: > 12329: >::type type; 12329: }; 12329: # 331 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct get_invoker3 { }; 12329: 12329: 12329: template<> 12329: struct get_invoker3 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_invoker3< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_invoker3< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker3 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_member_invoker3< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_member_invoker3< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker3 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_obj_invoker3< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_obj_invoker3< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager_a manager_type; 12329: }; 12329: }; 12329: 12329: 12329: template<> 12329: struct get_invoker3 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_ref_invoker3< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_ref_invoker3< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: }; 12329: # 476 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct basic_vtable3 12329: { 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: typedef result_type (*invoker_type)(function_buffer& 12329: , 12329: T0 , T1 , T2); 12329: 12329: template 12329: bool assign_to(F f, function_buffer& functor) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to(f, functor, tag()); 12329: } 12329: template 12329: bool assign_to_a(F f, function_buffer& functor, Allocator a) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to_a(f, functor, a, tag()); 12329: } 12329: 12329: void clear(function_buffer& functor) const 12329: { 12329: if (base.manager) 12329: base.manager(functor, functor, destroy_functor_tag); 12329: } 12329: 12329: private: 12329: 12329: template 12329: bool 12329: assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const 12329: { 12329: this->clear(functor); 12329: if (f) { 12329: 12329: 12329: functor.members.func_ptr = reinterpret_cast(f); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const 12329: { 12329: return assign_to(f,functor,function_ptr_tag()); 12329: } 12329: 12329: 12329: 12329: template 12329: bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to(boost::mem_fn(f), functor); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to_a(boost::mem_fn(f), functor, a); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, true_type) const 12329: { 12329: new (reinterpret_cast(functor.data)) FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const 12329: { 12329: assign_functor(f,functor,true_type()); 12329: } 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, false_type) const 12329: { 12329: functor.members.obj_ptr = new FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const 12329: { 12329: typedef functor_wrapper functor_wrapper_type; 12329: 12329: 12329: 12329: 12329: 12329: using wrapper_allocator_type = typename std::allocator_traits::template rebind_alloc; 12329: using wrapper_allocator_pointer_type = typename std::allocator_traits::pointer; 12329: 12329: wrapper_allocator_type wrapper_allocator(a); 12329: wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); 12329: 12329: 12329: 12329: std::allocator_traits::construct(wrapper_allocator, copy, functor_wrapper_type(f,a)); 12329: 12329: functor_wrapper_type* new_f = static_cast(copy); 12329: functor.members.obj_ptr = new_f; 12329: } 12329: 12329: template 12329: bool 12329: assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor(f, functor, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor_a(f, functor, a, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: template 12329: bool 12329: assign_to(const reference_wrapper& f, 12329: function_buffer& functor, function_obj_ref_tag) const 12329: { 12329: functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer()); 12329: functor.members.obj_ref.is_const_qualified = is_const::value; 12329: functor.members.obj_ref.is_volatile_qualified = is_volatile::value; 12329: return true; 12329: } 12329: template 12329: bool 12329: assign_to_a(const reference_wrapper& f, 12329: function_buffer& functor, Allocator, function_obj_ref_tag) const 12329: { 12329: return assign_to(f,functor,function_obj_ref_tag()); 12329: } 12329: 12329: public: 12329: vtable_base base; 12329: invoker_type invoker; 12329: }; 12329: } 12329: } 12329: 12329: template< 12329: typename R , 12329: typename T0 , typename T1 , typename T2 12329: > 12329: class function3 : public function_base 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: typedef boost::detail::function::basic_vtable3< 12329: R , T0 , T1 , T2> 12329: vtable_type; 12329: 12329: vtable_type* get_vtable() const { 12329: return reinterpret_cast( 12329: reinterpret_cast(vtable) & ~static_cast(0x01)); 12329: } 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: static const int args = 3; 12329: 12329: 12329: template 12329: struct sig 12329: { 12329: typedef result_type type; 12329: }; 12329: # 701 "/usr/include/boost/function/function_template.hpp" 3 4 12329: static const int arity = 3; 12329: typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; 12329: 12329: typedef function3 self_type; 12329: 12329: function3() = default; 12329: 12329: 12329: 12329: template 12329: function3(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to(f); 12329: } 12329: template 12329: function3(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to_a(f,a); 12329: } 12329: 12329: 12329: function3(clear_type*) : function_base() { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: function3(const function3& f) : function_base() 12329: { 12329: this->assign_to_own(f); 12329: } 12329: 12329: 12329: function3(function3&& f) : function_base() 12329: { 12329: this->move_assign(f); 12329: } 12329: 12329: 12329: ~function3() { clear(); } 12329: 12329: result_type operator()( T0 a0 , T1 a1 , T2 a2) const 12329: { 12329: if (this->empty()) 12329: boost::throw_exception(bad_function_call()); 12329: 12329: return get_vtable()->invoker 12329: (this->functor , static_cast(a0) , static_cast(a1) , static_cast(a2)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: function3&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: this->clear(); 12329: { try { 12329: this->assign_to(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: template 12329: void assign(Functor f, Allocator a) 12329: { 12329: this->clear(); 12329: { try{ 12329: this->assign_to_a(f,a); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: 12329: 12329: function3& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: # 821 "/usr/include/boost/function/function_template.hpp" 3 4 12329: function3& operator=(const function3& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->assign_to_own(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: 12329: function3& operator=(function3&& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->move_assign(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: void swap(function3& other) 12329: { 12329: if (&other == this) 12329: return; 12329: 12329: function3 tmp; 12329: tmp.move_assign(*this); 12329: this->move_assign(other); 12329: other.move_assign(tmp); 12329: } 12329: 12329: 12329: void clear() 12329: { 12329: if (vtable) { 12329: if (!this->has_trivial_copy_and_destroy()) 12329: get_vtable()->clear(this->functor); 12329: vtable = 0; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: struct dummy { 12329: void nonnull() {} 12329: }; 12329: 12329: typedef void (dummy::*safe_bool)(); 12329: 12329: public: 12329: operator safe_bool () const 12329: { return (this->empty())? 0 : &dummy::nonnull; } 12329: 12329: bool operator!() const 12329: { return this->empty(); } 12329: 12329: 12329: private: 12329: void assign_to_own(const function3& f) 12329: { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::clone_functor_tag); 12329: } 12329: } 12329: 12329: template 12329: void assign_to(Functor f) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker3 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to(f, functor)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: template 12329: void assign_to_a(Functor f,Allocator a) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker3 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply_a 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to_a(f, functor, a)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: 12329: 12329: 12329: void move_assign(function3& f) 12329: { 12329: if (&f == this) 12329: return; 12329: 12329: { try { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::move_functor_tag); 12329: f.vtable = 0; 12329: } else { 12329: clear(); 12329: } 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: }; 12329: 12329: template 12329: inline void swap(function3< 12329: R , 12329: T0 , T1 , T2 12329: >& f1, 12329: function3< 12329: R , 12329: T0 , T1 , T2 12329: >& f2) 12329: { 12329: f1.swap(f2); 12329: } 12329: 12329: 12329: template 12329: void operator==(const function3< 12329: R , 12329: T0 , T1 , T2>&, 12329: const function3< 12329: R , 12329: T0 , T1 , T2>&); 12329: template 12329: void operator!=(const function3< 12329: R , 12329: T0 , T1 , T2>&, 12329: const function3< 12329: R , 12329: T0 , T1 , T2>& ); 12329: # 1064 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: class function 12329: : public function3 12329: { 12329: typedef function3 base_type; 12329: typedef function self_type; 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: 12329: function() = default; 12329: 12329: template 12329: function(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f) 12329: { 12329: } 12329: template 12329: function(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f,a) 12329: { 12329: } 12329: 12329: 12329: function(clear_type*) : base_type() {} 12329: 12329: 12329: function(const self_type& f) : base_type(static_cast(f)){} 12329: 12329: function(const base_type& f) : base_type(static_cast(f)){} 12329: 12329: 12329: 12329: function(self_type&& f): base_type(static_cast(f)){} 12329: function(base_type&& f): base_type(static_cast(f)){} 12329: 12329: 12329: self_type& operator=(const self_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(self_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: self_type&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(const base_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(base_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 37 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4 12329: # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4 12329: # 63 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4 12329: # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4 12329: # 43 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4 12329: # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4 12329: # 86 "/usr/include/boost/function/function_template.hpp" 3 4 12329: namespace boost { 12329: namespace detail { 12329: namespace function { 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: struct function_invoker4 12329: { 12329: static R invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3) 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: return f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: struct void_function_invoker4 12329: { 12329: static void 12329: invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3) 12329: 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: struct function_obj_invoker4 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: struct void_function_obj_invoker4 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: struct function_ref_invoker4 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: struct void_function_ref_invoker4 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3)); 12329: } 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: struct function_mem_invoker4 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: return boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3)); 12329: } 12329: }; 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: struct function_void_mem_invoker4 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3)); 12329: } 12329: }; 12329: 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: struct get_function_invoker4 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_invoker4< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 12329: >, 12329: function_invoker4< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: struct get_function_obj_invoker4 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_obj_invoker4< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 12329: >, 12329: function_obj_invoker4< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: struct get_function_ref_invoker4 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_ref_invoker4< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 12329: >, 12329: function_ref_invoker4< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 12329: > 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: struct get_member_invoker4 12329: { 12329: typedef typename conditional<(is_void::value), 12329: function_void_mem_invoker4< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 12329: >, 12329: function_mem_invoker4< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 12329: > 12329: >::type type; 12329: }; 12329: # 331 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct get_invoker4 { }; 12329: 12329: 12329: template<> 12329: struct get_invoker4 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_invoker4< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_invoker4< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker4 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_member_invoker4< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_member_invoker4< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker4 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_obj_invoker4< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_obj_invoker4< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager_a manager_type; 12329: }; 12329: }; 12329: 12329: 12329: template<> 12329: struct get_invoker4 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_ref_invoker4< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_ref_invoker4< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: }; 12329: # 476 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct basic_vtable4 12329: { 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: typedef result_type (*invoker_type)(function_buffer& 12329: , 12329: T0 , T1 , T2 , T3); 12329: 12329: template 12329: bool assign_to(F f, function_buffer& functor) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to(f, functor, tag()); 12329: } 12329: template 12329: bool assign_to_a(F f, function_buffer& functor, Allocator a) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to_a(f, functor, a, tag()); 12329: } 12329: 12329: void clear(function_buffer& functor) const 12329: { 12329: if (base.manager) 12329: base.manager(functor, functor, destroy_functor_tag); 12329: } 12329: 12329: private: 12329: 12329: template 12329: bool 12329: assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const 12329: { 12329: this->clear(functor); 12329: if (f) { 12329: 12329: 12329: functor.members.func_ptr = reinterpret_cast(f); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const 12329: { 12329: return assign_to(f,functor,function_ptr_tag()); 12329: } 12329: 12329: 12329: 12329: template 12329: bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to(boost::mem_fn(f), functor); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to_a(boost::mem_fn(f), functor, a); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, true_type) const 12329: { 12329: new (reinterpret_cast(functor.data)) FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const 12329: { 12329: assign_functor(f,functor,true_type()); 12329: } 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, false_type) const 12329: { 12329: functor.members.obj_ptr = new FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const 12329: { 12329: typedef functor_wrapper functor_wrapper_type; 12329: 12329: 12329: 12329: 12329: 12329: using wrapper_allocator_type = typename std::allocator_traits::template rebind_alloc; 12329: using wrapper_allocator_pointer_type = typename std::allocator_traits::pointer; 12329: 12329: wrapper_allocator_type wrapper_allocator(a); 12329: wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); 12329: 12329: 12329: 12329: std::allocator_traits::construct(wrapper_allocator, copy, functor_wrapper_type(f,a)); 12329: 12329: functor_wrapper_type* new_f = static_cast(copy); 12329: functor.members.obj_ptr = new_f; 12329: } 12329: 12329: template 12329: bool 12329: assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor(f, functor, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor_a(f, functor, a, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: template 12329: bool 12329: assign_to(const reference_wrapper& f, 12329: function_buffer& functor, function_obj_ref_tag) const 12329: { 12329: functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer()); 12329: functor.members.obj_ref.is_const_qualified = is_const::value; 12329: functor.members.obj_ref.is_volatile_qualified = is_volatile::value; 12329: return true; 12329: } 12329: template 12329: bool 12329: assign_to_a(const reference_wrapper& f, 12329: function_buffer& functor, Allocator, function_obj_ref_tag) const 12329: { 12329: return assign_to(f,functor,function_obj_ref_tag()); 12329: } 12329: 12329: public: 12329: vtable_base base; 12329: invoker_type invoker; 12329: }; 12329: } 12329: } 12329: 12329: template< 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 12329: > 12329: class function4 : public function_base 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: typedef boost::detail::function::basic_vtable4< 12329: R , T0 , T1 , T2 , T3> 12329: vtable_type; 12329: 12329: vtable_type* get_vtable() const { 12329: return reinterpret_cast( 12329: reinterpret_cast(vtable) & ~static_cast(0x01)); 12329: } 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: static const int args = 4; 12329: 12329: 12329: template 12329: struct sig 12329: { 12329: typedef result_type type; 12329: }; 12329: # 701 "/usr/include/boost/function/function_template.hpp" 3 4 12329: static const int arity = 4; 12329: typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; 12329: 12329: typedef function4 self_type; 12329: 12329: function4() = default; 12329: 12329: 12329: 12329: template 12329: function4(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to(f); 12329: } 12329: template 12329: function4(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to_a(f,a); 12329: } 12329: 12329: 12329: function4(clear_type*) : function_base() { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: function4(const function4& f) : function_base() 12329: { 12329: this->assign_to_own(f); 12329: } 12329: 12329: 12329: function4(function4&& f) : function_base() 12329: { 12329: this->move_assign(f); 12329: } 12329: 12329: 12329: ~function4() { clear(); } 12329: 12329: result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3) const 12329: { 12329: if (this->empty()) 12329: boost::throw_exception(bad_function_call()); 12329: 12329: return get_vtable()->invoker 12329: (this->functor , static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: function4&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: this->clear(); 12329: { try { 12329: this->assign_to(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: template 12329: void assign(Functor f, Allocator a) 12329: { 12329: this->clear(); 12329: { try{ 12329: this->assign_to_a(f,a); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: 12329: 12329: function4& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: # 821 "/usr/include/boost/function/function_template.hpp" 3 4 12329: function4& operator=(const function4& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->assign_to_own(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: 12329: function4& operator=(function4&& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->move_assign(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: void swap(function4& other) 12329: { 12329: if (&other == this) 12329: return; 12329: 12329: function4 tmp; 12329: tmp.move_assign(*this); 12329: this->move_assign(other); 12329: other.move_assign(tmp); 12329: } 12329: 12329: 12329: void clear() 12329: { 12329: if (vtable) { 12329: if (!this->has_trivial_copy_and_destroy()) 12329: get_vtable()->clear(this->functor); 12329: vtable = 0; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: struct dummy { 12329: void nonnull() {} 12329: }; 12329: 12329: typedef void (dummy::*safe_bool)(); 12329: 12329: public: 12329: operator safe_bool () const 12329: { return (this->empty())? 0 : &dummy::nonnull; } 12329: 12329: bool operator!() const 12329: { return this->empty(); } 12329: 12329: 12329: private: 12329: void assign_to_own(const function4& f) 12329: { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::clone_functor_tag); 12329: } 12329: } 12329: 12329: template 12329: void assign_to(Functor f) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker4 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to(f, functor)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: template 12329: void assign_to_a(Functor f,Allocator a) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker4 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply_a 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to_a(f, functor, a)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: 12329: 12329: 12329: void move_assign(function4& f) 12329: { 12329: if (&f == this) 12329: return; 12329: 12329: { try { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::move_functor_tag); 12329: f.vtable = 0; 12329: } else { 12329: clear(); 12329: } 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: }; 12329: 12329: template 12329: inline void swap(function4< 12329: R , 12329: T0 , T1 , T2 , T3 12329: >& f1, 12329: function4< 12329: R , 12329: T0 , T1 , T2 , T3 12329: >& f2) 12329: { 12329: f1.swap(f2); 12329: } 12329: 12329: 12329: template 12329: void operator==(const function4< 12329: R , 12329: T0 , T1 , T2 , T3>&, 12329: const function4< 12329: R , 12329: T0 , T1 , T2 , T3>&); 12329: template 12329: void operator!=(const function4< 12329: R , 12329: T0 , T1 , T2 , T3>&, 12329: const function4< 12329: R , 12329: T0 , T1 , T2 , T3>& ); 12329: # 1064 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: class function 12329: : public function4 12329: { 12329: typedef function4 base_type; 12329: typedef function self_type; 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: 12329: function() = default; 12329: 12329: template 12329: function(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f) 12329: { 12329: } 12329: template 12329: function(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f,a) 12329: { 12329: } 12329: 12329: 12329: function(clear_type*) : base_type() {} 12329: 12329: 12329: function(const self_type& f) : base_type(static_cast(f)){} 12329: 12329: function(const base_type& f) : base_type(static_cast(f)){} 12329: 12329: 12329: 12329: function(self_type&& f): base_type(static_cast(f)){} 12329: function(base_type&& f): base_type(static_cast(f)){} 12329: 12329: 12329: self_type& operator=(const self_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(self_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: self_type&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(const base_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(base_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 44 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4 12329: # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4 12329: # 68 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4 12329: # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4 12329: # 50 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4 12329: # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4 12329: # 86 "/usr/include/boost/function/function_template.hpp" 3 4 12329: namespace boost { 12329: namespace detail { 12329: namespace function { 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: struct function_invoker5 12329: { 12329: static R invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4) 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: return f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: struct void_function_invoker5 12329: { 12329: static void 12329: invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4) 12329: 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: struct function_obj_invoker5 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: struct void_function_obj_invoker5 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: struct function_ref_invoker5 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: struct void_function_ref_invoker5 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4)); 12329: } 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: struct function_mem_invoker5 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: return boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4)); 12329: } 12329: }; 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: struct function_void_mem_invoker5 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4)); 12329: } 12329: }; 12329: 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: struct get_function_invoker5 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_invoker5< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >, 12329: function_invoker5< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: struct get_function_obj_invoker5 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_obj_invoker5< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >, 12329: function_obj_invoker5< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: struct get_function_ref_invoker5 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_ref_invoker5< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >, 12329: function_ref_invoker5< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: > 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: struct get_member_invoker5 12329: { 12329: typedef typename conditional<(is_void::value), 12329: function_void_mem_invoker5< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >, 12329: function_mem_invoker5< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: > 12329: >::type type; 12329: }; 12329: # 331 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct get_invoker5 { }; 12329: 12329: 12329: template<> 12329: struct get_invoker5 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_invoker5< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_invoker5< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker5 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_member_invoker5< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_member_invoker5< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker5 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_obj_invoker5< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_obj_invoker5< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager_a manager_type; 12329: }; 12329: }; 12329: 12329: 12329: template<> 12329: struct get_invoker5 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_ref_invoker5< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_ref_invoker5< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: }; 12329: # 476 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct basic_vtable5 12329: { 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: typedef result_type (*invoker_type)(function_buffer& 12329: , 12329: T0 , T1 , T2 , T3 , T4); 12329: 12329: template 12329: bool assign_to(F f, function_buffer& functor) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to(f, functor, tag()); 12329: } 12329: template 12329: bool assign_to_a(F f, function_buffer& functor, Allocator a) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to_a(f, functor, a, tag()); 12329: } 12329: 12329: void clear(function_buffer& functor) const 12329: { 12329: if (base.manager) 12329: base.manager(functor, functor, destroy_functor_tag); 12329: } 12329: 12329: private: 12329: 12329: template 12329: bool 12329: assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const 12329: { 12329: this->clear(functor); 12329: if (f) { 12329: 12329: 12329: functor.members.func_ptr = reinterpret_cast(f); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const 12329: { 12329: return assign_to(f,functor,function_ptr_tag()); 12329: } 12329: 12329: 12329: 12329: template 12329: bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to(boost::mem_fn(f), functor); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to_a(boost::mem_fn(f), functor, a); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, true_type) const 12329: { 12329: new (reinterpret_cast(functor.data)) FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const 12329: { 12329: assign_functor(f,functor,true_type()); 12329: } 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, false_type) const 12329: { 12329: functor.members.obj_ptr = new FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const 12329: { 12329: typedef functor_wrapper functor_wrapper_type; 12329: 12329: 12329: 12329: 12329: 12329: using wrapper_allocator_type = typename std::allocator_traits::template rebind_alloc; 12329: using wrapper_allocator_pointer_type = typename std::allocator_traits::pointer; 12329: 12329: wrapper_allocator_type wrapper_allocator(a); 12329: wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); 12329: 12329: 12329: 12329: std::allocator_traits::construct(wrapper_allocator, copy, functor_wrapper_type(f,a)); 12329: 12329: functor_wrapper_type* new_f = static_cast(copy); 12329: functor.members.obj_ptr = new_f; 12329: } 12329: 12329: template 12329: bool 12329: assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor(f, functor, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor_a(f, functor, a, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: template 12329: bool 12329: assign_to(const reference_wrapper& f, 12329: function_buffer& functor, function_obj_ref_tag) const 12329: { 12329: functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer()); 12329: functor.members.obj_ref.is_const_qualified = is_const::value; 12329: functor.members.obj_ref.is_volatile_qualified = is_volatile::value; 12329: return true; 12329: } 12329: template 12329: bool 12329: assign_to_a(const reference_wrapper& f, 12329: function_buffer& functor, Allocator, function_obj_ref_tag) const 12329: { 12329: return assign_to(f,functor,function_obj_ref_tag()); 12329: } 12329: 12329: public: 12329: vtable_base base; 12329: invoker_type invoker; 12329: }; 12329: } 12329: } 12329: 12329: template< 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 12329: > 12329: class function5 : public function_base 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: typedef boost::detail::function::basic_vtable5< 12329: R , T0 , T1 , T2 , T3 , T4> 12329: vtable_type; 12329: 12329: vtable_type* get_vtable() const { 12329: return reinterpret_cast( 12329: reinterpret_cast(vtable) & ~static_cast(0x01)); 12329: } 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: static const int args = 5; 12329: 12329: 12329: template 12329: struct sig 12329: { 12329: typedef result_type type; 12329: }; 12329: # 701 "/usr/include/boost/function/function_template.hpp" 3 4 12329: static const int arity = 5; 12329: typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; 12329: 12329: typedef function5 self_type; 12329: 12329: function5() = default; 12329: 12329: 12329: 12329: template 12329: function5(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to(f); 12329: } 12329: template 12329: function5(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to_a(f,a); 12329: } 12329: 12329: 12329: function5(clear_type*) : function_base() { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: function5(const function5& f) : function_base() 12329: { 12329: this->assign_to_own(f); 12329: } 12329: 12329: 12329: function5(function5&& f) : function_base() 12329: { 12329: this->move_assign(f); 12329: } 12329: 12329: 12329: ~function5() { clear(); } 12329: 12329: result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4) const 12329: { 12329: if (this->empty()) 12329: boost::throw_exception(bad_function_call()); 12329: 12329: return get_vtable()->invoker 12329: (this->functor , static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: function5&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: this->clear(); 12329: { try { 12329: this->assign_to(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: template 12329: void assign(Functor f, Allocator a) 12329: { 12329: this->clear(); 12329: { try{ 12329: this->assign_to_a(f,a); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: 12329: 12329: function5& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: # 821 "/usr/include/boost/function/function_template.hpp" 3 4 12329: function5& operator=(const function5& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->assign_to_own(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: 12329: function5& operator=(function5&& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->move_assign(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: void swap(function5& other) 12329: { 12329: if (&other == this) 12329: return; 12329: 12329: function5 tmp; 12329: tmp.move_assign(*this); 12329: this->move_assign(other); 12329: other.move_assign(tmp); 12329: } 12329: 12329: 12329: void clear() 12329: { 12329: if (vtable) { 12329: if (!this->has_trivial_copy_and_destroy()) 12329: get_vtable()->clear(this->functor); 12329: vtable = 0; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: struct dummy { 12329: void nonnull() {} 12329: }; 12329: 12329: typedef void (dummy::*safe_bool)(); 12329: 12329: public: 12329: operator safe_bool () const 12329: { return (this->empty())? 0 : &dummy::nonnull; } 12329: 12329: bool operator!() const 12329: { return this->empty(); } 12329: 12329: 12329: private: 12329: void assign_to_own(const function5& f) 12329: { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::clone_functor_tag); 12329: } 12329: } 12329: 12329: template 12329: void assign_to(Functor f) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker5 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to(f, functor)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: template 12329: void assign_to_a(Functor f,Allocator a) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker5 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply_a 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to_a(f, functor, a)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: 12329: 12329: 12329: void move_assign(function5& f) 12329: { 12329: if (&f == this) 12329: return; 12329: 12329: { try { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::move_functor_tag); 12329: f.vtable = 0; 12329: } else { 12329: clear(); 12329: } 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: }; 12329: 12329: template 12329: inline void swap(function5< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >& f1, 12329: function5< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 12329: >& f2) 12329: { 12329: f1.swap(f2); 12329: } 12329: 12329: 12329: template 12329: void operator==(const function5< 12329: R , 12329: T0 , T1 , T2 , T3 , T4>&, 12329: const function5< 12329: R , 12329: T0 , T1 , T2 , T3 , T4>&); 12329: template 12329: void operator!=(const function5< 12329: R , 12329: T0 , T1 , T2 , T3 , T4>&, 12329: const function5< 12329: R , 12329: T0 , T1 , T2 , T3 , T4>& ); 12329: # 1064 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: class function 12329: : public function5 12329: { 12329: typedef function5 base_type; 12329: typedef function self_type; 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: 12329: function() = default; 12329: 12329: template 12329: function(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f) 12329: { 12329: } 12329: template 12329: function(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f,a) 12329: { 12329: } 12329: 12329: 12329: function(clear_type*) : base_type() {} 12329: 12329: 12329: function(const self_type& f) : base_type(static_cast(f)){} 12329: 12329: function(const base_type& f) : base_type(static_cast(f)){} 12329: 12329: 12329: 12329: function(self_type&& f): base_type(static_cast(f)){} 12329: function(base_type&& f): base_type(static_cast(f)){} 12329: 12329: 12329: self_type& operator=(const self_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(self_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: self_type&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(const base_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(base_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 51 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4 12329: # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4 12329: # 73 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4 12329: # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4 12329: # 57 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4 12329: # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4 12329: # 86 "/usr/include/boost/function/function_template.hpp" 3 4 12329: namespace boost { 12329: namespace detail { 12329: namespace function { 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: struct function_invoker6 12329: { 12329: static R invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5) 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: return f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: struct void_function_invoker6 12329: { 12329: static void 12329: invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5) 12329: 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: struct function_obj_invoker6 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: struct void_function_obj_invoker6 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: struct function_ref_invoker6 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: struct void_function_ref_invoker6 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5)); 12329: } 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: struct function_mem_invoker6 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: return boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5)); 12329: } 12329: }; 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: struct function_void_mem_invoker6 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5)); 12329: } 12329: }; 12329: 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: struct get_function_invoker6 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_invoker6< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >, 12329: function_invoker6< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: struct get_function_obj_invoker6 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_obj_invoker6< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >, 12329: function_obj_invoker6< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: struct get_function_ref_invoker6 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_ref_invoker6< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >, 12329: function_ref_invoker6< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: > 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: struct get_member_invoker6 12329: { 12329: typedef typename conditional<(is_void::value), 12329: function_void_mem_invoker6< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >, 12329: function_mem_invoker6< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: > 12329: >::type type; 12329: }; 12329: # 331 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct get_invoker6 { }; 12329: 12329: 12329: template<> 12329: struct get_invoker6 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_invoker6< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_invoker6< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker6 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_member_invoker6< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_member_invoker6< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker6 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_obj_invoker6< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_obj_invoker6< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager_a manager_type; 12329: }; 12329: }; 12329: 12329: 12329: template<> 12329: struct get_invoker6 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_ref_invoker6< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_ref_invoker6< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: }; 12329: # 476 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct basic_vtable6 12329: { 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: typedef result_type (*invoker_type)(function_buffer& 12329: , 12329: T0 , T1 , T2 , T3 , T4 , T5); 12329: 12329: template 12329: bool assign_to(F f, function_buffer& functor) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to(f, functor, tag()); 12329: } 12329: template 12329: bool assign_to_a(F f, function_buffer& functor, Allocator a) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to_a(f, functor, a, tag()); 12329: } 12329: 12329: void clear(function_buffer& functor) const 12329: { 12329: if (base.manager) 12329: base.manager(functor, functor, destroy_functor_tag); 12329: } 12329: 12329: private: 12329: 12329: template 12329: bool 12329: assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const 12329: { 12329: this->clear(functor); 12329: if (f) { 12329: 12329: 12329: functor.members.func_ptr = reinterpret_cast(f); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const 12329: { 12329: return assign_to(f,functor,function_ptr_tag()); 12329: } 12329: 12329: 12329: 12329: template 12329: bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to(boost::mem_fn(f), functor); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to_a(boost::mem_fn(f), functor, a); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, true_type) const 12329: { 12329: new (reinterpret_cast(functor.data)) FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const 12329: { 12329: assign_functor(f,functor,true_type()); 12329: } 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, false_type) const 12329: { 12329: functor.members.obj_ptr = new FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const 12329: { 12329: typedef functor_wrapper functor_wrapper_type; 12329: 12329: 12329: 12329: 12329: 12329: using wrapper_allocator_type = typename std::allocator_traits::template rebind_alloc; 12329: using wrapper_allocator_pointer_type = typename std::allocator_traits::pointer; 12329: 12329: wrapper_allocator_type wrapper_allocator(a); 12329: wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); 12329: 12329: 12329: 12329: std::allocator_traits::construct(wrapper_allocator, copy, functor_wrapper_type(f,a)); 12329: 12329: functor_wrapper_type* new_f = static_cast(copy); 12329: functor.members.obj_ptr = new_f; 12329: } 12329: 12329: template 12329: bool 12329: assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor(f, functor, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor_a(f, functor, a, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: template 12329: bool 12329: assign_to(const reference_wrapper& f, 12329: function_buffer& functor, function_obj_ref_tag) const 12329: { 12329: functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer()); 12329: functor.members.obj_ref.is_const_qualified = is_const::value; 12329: functor.members.obj_ref.is_volatile_qualified = is_volatile::value; 12329: return true; 12329: } 12329: template 12329: bool 12329: assign_to_a(const reference_wrapper& f, 12329: function_buffer& functor, Allocator, function_obj_ref_tag) const 12329: { 12329: return assign_to(f,functor,function_obj_ref_tag()); 12329: } 12329: 12329: public: 12329: vtable_base base; 12329: invoker_type invoker; 12329: }; 12329: } 12329: } 12329: 12329: template< 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 12329: > 12329: class function6 : public function_base 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: typedef boost::detail::function::basic_vtable6< 12329: R , T0 , T1 , T2 , T3 , T4 , T5> 12329: vtable_type; 12329: 12329: vtable_type* get_vtable() const { 12329: return reinterpret_cast( 12329: reinterpret_cast(vtable) & ~static_cast(0x01)); 12329: } 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: static const int args = 6; 12329: 12329: 12329: template 12329: struct sig 12329: { 12329: typedef result_type type; 12329: }; 12329: # 701 "/usr/include/boost/function/function_template.hpp" 3 4 12329: static const int arity = 6; 12329: typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; 12329: 12329: typedef function6 self_type; 12329: 12329: function6() = default; 12329: 12329: 12329: 12329: template 12329: function6(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to(f); 12329: } 12329: template 12329: function6(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to_a(f,a); 12329: } 12329: 12329: 12329: function6(clear_type*) : function_base() { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: function6(const function6& f) : function_base() 12329: { 12329: this->assign_to_own(f); 12329: } 12329: 12329: 12329: function6(function6&& f) : function_base() 12329: { 12329: this->move_assign(f); 12329: } 12329: 12329: 12329: ~function6() { clear(); } 12329: 12329: result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5) const 12329: { 12329: if (this->empty()) 12329: boost::throw_exception(bad_function_call()); 12329: 12329: return get_vtable()->invoker 12329: (this->functor , static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: function6&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: this->clear(); 12329: { try { 12329: this->assign_to(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: template 12329: void assign(Functor f, Allocator a) 12329: { 12329: this->clear(); 12329: { try{ 12329: this->assign_to_a(f,a); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: 12329: 12329: function6& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: # 821 "/usr/include/boost/function/function_template.hpp" 3 4 12329: function6& operator=(const function6& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->assign_to_own(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: 12329: function6& operator=(function6&& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->move_assign(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: void swap(function6& other) 12329: { 12329: if (&other == this) 12329: return; 12329: 12329: function6 tmp; 12329: tmp.move_assign(*this); 12329: this->move_assign(other); 12329: other.move_assign(tmp); 12329: } 12329: 12329: 12329: void clear() 12329: { 12329: if (vtable) { 12329: if (!this->has_trivial_copy_and_destroy()) 12329: get_vtable()->clear(this->functor); 12329: vtable = 0; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: struct dummy { 12329: void nonnull() {} 12329: }; 12329: 12329: typedef void (dummy::*safe_bool)(); 12329: 12329: public: 12329: operator safe_bool () const 12329: { return (this->empty())? 0 : &dummy::nonnull; } 12329: 12329: bool operator!() const 12329: { return this->empty(); } 12329: 12329: 12329: private: 12329: void assign_to_own(const function6& f) 12329: { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::clone_functor_tag); 12329: } 12329: } 12329: 12329: template 12329: void assign_to(Functor f) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker6 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to(f, functor)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: template 12329: void assign_to_a(Functor f,Allocator a) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker6 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply_a 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to_a(f, functor, a)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: 12329: 12329: 12329: void move_assign(function6& f) 12329: { 12329: if (&f == this) 12329: return; 12329: 12329: { try { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::move_functor_tag); 12329: f.vtable = 0; 12329: } else { 12329: clear(); 12329: } 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: }; 12329: 12329: template 12329: inline void swap(function6< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >& f1, 12329: function6< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 12329: >& f2) 12329: { 12329: f1.swap(f2); 12329: } 12329: 12329: 12329: template 12329: void operator==(const function6< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5>&, 12329: const function6< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5>&); 12329: template 12329: void operator!=(const function6< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5>&, 12329: const function6< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5>& ); 12329: # 1064 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: class function 12329: : public function6 12329: { 12329: typedef function6 base_type; 12329: typedef function self_type; 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: 12329: function() = default; 12329: 12329: template 12329: function(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f) 12329: { 12329: } 12329: template 12329: function(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f,a) 12329: { 12329: } 12329: 12329: 12329: function(clear_type*) : base_type() {} 12329: 12329: 12329: function(const self_type& f) : base_type(static_cast(f)){} 12329: 12329: function(const base_type& f) : base_type(static_cast(f)){} 12329: 12329: 12329: 12329: function(self_type&& f): base_type(static_cast(f)){} 12329: function(base_type&& f): base_type(static_cast(f)){} 12329: 12329: 12329: self_type& operator=(const self_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(self_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: self_type&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(const base_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(base_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 58 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4 12329: # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4 12329: # 78 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4 12329: # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4 12329: # 64 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4 12329: # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4 12329: # 86 "/usr/include/boost/function/function_template.hpp" 3 4 12329: namespace boost { 12329: namespace detail { 12329: namespace function { 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: struct function_invoker7 12329: { 12329: static R invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6) 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: return f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: struct void_function_invoker7 12329: { 12329: static void 12329: invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6) 12329: 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: struct function_obj_invoker7 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: struct void_function_obj_invoker7 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: struct function_ref_invoker7 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: struct void_function_ref_invoker7 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6)); 12329: } 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: struct function_mem_invoker7 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: return boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6)); 12329: } 12329: }; 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: struct function_void_mem_invoker7 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6)); 12329: } 12329: }; 12329: 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: struct get_function_invoker7 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_invoker7< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >, 12329: function_invoker7< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: struct get_function_obj_invoker7 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_obj_invoker7< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >, 12329: function_obj_invoker7< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: struct get_function_ref_invoker7 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_ref_invoker7< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >, 12329: function_ref_invoker7< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: > 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: struct get_member_invoker7 12329: { 12329: typedef typename conditional<(is_void::value), 12329: function_void_mem_invoker7< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >, 12329: function_mem_invoker7< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: > 12329: >::type type; 12329: }; 12329: # 331 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct get_invoker7 { }; 12329: 12329: 12329: template<> 12329: struct get_invoker7 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_invoker7< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_invoker7< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker7 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_member_invoker7< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_member_invoker7< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker7 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_obj_invoker7< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_obj_invoker7< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager_a manager_type; 12329: }; 12329: }; 12329: 12329: 12329: template<> 12329: struct get_invoker7 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_ref_invoker7< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_ref_invoker7< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: }; 12329: # 476 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct basic_vtable7 12329: { 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: typedef result_type (*invoker_type)(function_buffer& 12329: , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6); 12329: 12329: template 12329: bool assign_to(F f, function_buffer& functor) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to(f, functor, tag()); 12329: } 12329: template 12329: bool assign_to_a(F f, function_buffer& functor, Allocator a) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to_a(f, functor, a, tag()); 12329: } 12329: 12329: void clear(function_buffer& functor) const 12329: { 12329: if (base.manager) 12329: base.manager(functor, functor, destroy_functor_tag); 12329: } 12329: 12329: private: 12329: 12329: template 12329: bool 12329: assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const 12329: { 12329: this->clear(functor); 12329: if (f) { 12329: 12329: 12329: functor.members.func_ptr = reinterpret_cast(f); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const 12329: { 12329: return assign_to(f,functor,function_ptr_tag()); 12329: } 12329: 12329: 12329: 12329: template 12329: bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to(boost::mem_fn(f), functor); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to_a(boost::mem_fn(f), functor, a); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, true_type) const 12329: { 12329: new (reinterpret_cast(functor.data)) FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const 12329: { 12329: assign_functor(f,functor,true_type()); 12329: } 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, false_type) const 12329: { 12329: functor.members.obj_ptr = new FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const 12329: { 12329: typedef functor_wrapper functor_wrapper_type; 12329: 12329: 12329: 12329: 12329: 12329: using wrapper_allocator_type = typename std::allocator_traits::template rebind_alloc; 12329: using wrapper_allocator_pointer_type = typename std::allocator_traits::pointer; 12329: 12329: wrapper_allocator_type wrapper_allocator(a); 12329: wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); 12329: 12329: 12329: 12329: std::allocator_traits::construct(wrapper_allocator, copy, functor_wrapper_type(f,a)); 12329: 12329: functor_wrapper_type* new_f = static_cast(copy); 12329: functor.members.obj_ptr = new_f; 12329: } 12329: 12329: template 12329: bool 12329: assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor(f, functor, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor_a(f, functor, a, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: template 12329: bool 12329: assign_to(const reference_wrapper& f, 12329: function_buffer& functor, function_obj_ref_tag) const 12329: { 12329: functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer()); 12329: functor.members.obj_ref.is_const_qualified = is_const::value; 12329: functor.members.obj_ref.is_volatile_qualified = is_volatile::value; 12329: return true; 12329: } 12329: template 12329: bool 12329: assign_to_a(const reference_wrapper& f, 12329: function_buffer& functor, Allocator, function_obj_ref_tag) const 12329: { 12329: return assign_to(f,functor,function_obj_ref_tag()); 12329: } 12329: 12329: public: 12329: vtable_base base; 12329: invoker_type invoker; 12329: }; 12329: } 12329: } 12329: 12329: template< 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 12329: > 12329: class function7 : public function_base 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: typedef boost::detail::function::basic_vtable7< 12329: R , T0 , T1 , T2 , T3 , T4 , T5 , T6> 12329: vtable_type; 12329: 12329: vtable_type* get_vtable() const { 12329: return reinterpret_cast( 12329: reinterpret_cast(vtable) & ~static_cast(0x01)); 12329: } 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: static const int args = 7; 12329: 12329: 12329: template 12329: struct sig 12329: { 12329: typedef result_type type; 12329: }; 12329: # 701 "/usr/include/boost/function/function_template.hpp" 3 4 12329: static const int arity = 7; 12329: typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; typedef T6 arg7_type; 12329: 12329: typedef function7 self_type; 12329: 12329: function7() = default; 12329: 12329: 12329: 12329: template 12329: function7(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to(f); 12329: } 12329: template 12329: function7(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to_a(f,a); 12329: } 12329: 12329: 12329: function7(clear_type*) : function_base() { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: function7(const function7& f) : function_base() 12329: { 12329: this->assign_to_own(f); 12329: } 12329: 12329: 12329: function7(function7&& f) : function_base() 12329: { 12329: this->move_assign(f); 12329: } 12329: 12329: 12329: ~function7() { clear(); } 12329: 12329: result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6) const 12329: { 12329: if (this->empty()) 12329: boost::throw_exception(bad_function_call()); 12329: 12329: return get_vtable()->invoker 12329: (this->functor , static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: function7&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: this->clear(); 12329: { try { 12329: this->assign_to(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: template 12329: void assign(Functor f, Allocator a) 12329: { 12329: this->clear(); 12329: { try{ 12329: this->assign_to_a(f,a); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: 12329: 12329: function7& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: # 821 "/usr/include/boost/function/function_template.hpp" 3 4 12329: function7& operator=(const function7& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->assign_to_own(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: 12329: function7& operator=(function7&& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->move_assign(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: void swap(function7& other) 12329: { 12329: if (&other == this) 12329: return; 12329: 12329: function7 tmp; 12329: tmp.move_assign(*this); 12329: this->move_assign(other); 12329: other.move_assign(tmp); 12329: } 12329: 12329: 12329: void clear() 12329: { 12329: if (vtable) { 12329: if (!this->has_trivial_copy_and_destroy()) 12329: get_vtable()->clear(this->functor); 12329: vtable = 0; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: struct dummy { 12329: void nonnull() {} 12329: }; 12329: 12329: typedef void (dummy::*safe_bool)(); 12329: 12329: public: 12329: operator safe_bool () const 12329: { return (this->empty())? 0 : &dummy::nonnull; } 12329: 12329: bool operator!() const 12329: { return this->empty(); } 12329: 12329: 12329: private: 12329: void assign_to_own(const function7& f) 12329: { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::clone_functor_tag); 12329: } 12329: } 12329: 12329: template 12329: void assign_to(Functor f) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker7 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to(f, functor)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: template 12329: void assign_to_a(Functor f,Allocator a) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker7 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply_a 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to_a(f, functor, a)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: 12329: 12329: 12329: void move_assign(function7& f) 12329: { 12329: if (&f == this) 12329: return; 12329: 12329: { try { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::move_functor_tag); 12329: f.vtable = 0; 12329: } else { 12329: clear(); 12329: } 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: }; 12329: 12329: template 12329: inline void swap(function7< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >& f1, 12329: function7< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 12329: >& f2) 12329: { 12329: f1.swap(f2); 12329: } 12329: 12329: 12329: template 12329: void operator==(const function7< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6>&, 12329: const function7< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6>&); 12329: template 12329: void operator!=(const function7< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6>&, 12329: const function7< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6>& ); 12329: # 1064 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: class function 12329: : public function7 12329: { 12329: typedef function7 base_type; 12329: typedef function self_type; 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: 12329: function() = default; 12329: 12329: template 12329: function(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f) 12329: { 12329: } 12329: template 12329: function(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f,a) 12329: { 12329: } 12329: 12329: 12329: function(clear_type*) : base_type() {} 12329: 12329: 12329: function(const self_type& f) : base_type(static_cast(f)){} 12329: 12329: function(const base_type& f) : base_type(static_cast(f)){} 12329: 12329: 12329: 12329: function(self_type&& f): base_type(static_cast(f)){} 12329: function(base_type&& f): base_type(static_cast(f)){} 12329: 12329: 12329: self_type& operator=(const self_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(self_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: self_type&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(const base_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(base_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 65 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4 12329: # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4 12329: # 83 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4 12329: # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4 12329: # 71 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4 12329: # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4 12329: # 86 "/usr/include/boost/function/function_template.hpp" 3 4 12329: namespace boost { 12329: namespace detail { 12329: namespace function { 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: struct function_invoker8 12329: { 12329: static R invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7) 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: return f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: struct void_function_invoker8 12329: { 12329: static void 12329: invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7) 12329: 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: struct function_obj_invoker8 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: struct void_function_obj_invoker8 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: struct function_ref_invoker8 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: struct void_function_ref_invoker8 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7)); 12329: } 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: struct function_mem_invoker8 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: return boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7)); 12329: } 12329: }; 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: struct function_void_mem_invoker8 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7)); 12329: } 12329: }; 12329: 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: struct get_function_invoker8 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_invoker8< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >, 12329: function_invoker8< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: struct get_function_obj_invoker8 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_obj_invoker8< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >, 12329: function_obj_invoker8< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: struct get_function_ref_invoker8 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_ref_invoker8< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >, 12329: function_ref_invoker8< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: > 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: struct get_member_invoker8 12329: { 12329: typedef typename conditional<(is_void::value), 12329: function_void_mem_invoker8< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >, 12329: function_mem_invoker8< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: > 12329: >::type type; 12329: }; 12329: # 331 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct get_invoker8 { }; 12329: 12329: 12329: template<> 12329: struct get_invoker8 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_invoker8< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_invoker8< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker8 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_member_invoker8< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_member_invoker8< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker8 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_obj_invoker8< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_obj_invoker8< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager_a manager_type; 12329: }; 12329: }; 12329: 12329: 12329: template<> 12329: struct get_invoker8 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_ref_invoker8< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_ref_invoker8< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: }; 12329: # 476 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct basic_vtable8 12329: { 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: typedef result_type (*invoker_type)(function_buffer& 12329: , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); 12329: 12329: template 12329: bool assign_to(F f, function_buffer& functor) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to(f, functor, tag()); 12329: } 12329: template 12329: bool assign_to_a(F f, function_buffer& functor, Allocator a) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to_a(f, functor, a, tag()); 12329: } 12329: 12329: void clear(function_buffer& functor) const 12329: { 12329: if (base.manager) 12329: base.manager(functor, functor, destroy_functor_tag); 12329: } 12329: 12329: private: 12329: 12329: template 12329: bool 12329: assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const 12329: { 12329: this->clear(functor); 12329: if (f) { 12329: 12329: 12329: functor.members.func_ptr = reinterpret_cast(f); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const 12329: { 12329: return assign_to(f,functor,function_ptr_tag()); 12329: } 12329: 12329: 12329: 12329: template 12329: bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to(boost::mem_fn(f), functor); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to_a(boost::mem_fn(f), functor, a); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, true_type) const 12329: { 12329: new (reinterpret_cast(functor.data)) FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const 12329: { 12329: assign_functor(f,functor,true_type()); 12329: } 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, false_type) const 12329: { 12329: functor.members.obj_ptr = new FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const 12329: { 12329: typedef functor_wrapper functor_wrapper_type; 12329: 12329: 12329: 12329: 12329: 12329: using wrapper_allocator_type = typename std::allocator_traits::template rebind_alloc; 12329: using wrapper_allocator_pointer_type = typename std::allocator_traits::pointer; 12329: 12329: wrapper_allocator_type wrapper_allocator(a); 12329: wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); 12329: 12329: 12329: 12329: std::allocator_traits::construct(wrapper_allocator, copy, functor_wrapper_type(f,a)); 12329: 12329: functor_wrapper_type* new_f = static_cast(copy); 12329: functor.members.obj_ptr = new_f; 12329: } 12329: 12329: template 12329: bool 12329: assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor(f, functor, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor_a(f, functor, a, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: template 12329: bool 12329: assign_to(const reference_wrapper& f, 12329: function_buffer& functor, function_obj_ref_tag) const 12329: { 12329: functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer()); 12329: functor.members.obj_ref.is_const_qualified = is_const::value; 12329: functor.members.obj_ref.is_volatile_qualified = is_volatile::value; 12329: return true; 12329: } 12329: template 12329: bool 12329: assign_to_a(const reference_wrapper& f, 12329: function_buffer& functor, Allocator, function_obj_ref_tag) const 12329: { 12329: return assign_to(f,functor,function_obj_ref_tag()); 12329: } 12329: 12329: public: 12329: vtable_base base; 12329: invoker_type invoker; 12329: }; 12329: } 12329: } 12329: 12329: template< 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 12329: > 12329: class function8 : public function_base 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: typedef boost::detail::function::basic_vtable8< 12329: R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> 12329: vtable_type; 12329: 12329: vtable_type* get_vtable() const { 12329: return reinterpret_cast( 12329: reinterpret_cast(vtable) & ~static_cast(0x01)); 12329: } 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: static const int args = 8; 12329: 12329: 12329: template 12329: struct sig 12329: { 12329: typedef result_type type; 12329: }; 12329: # 701 "/usr/include/boost/function/function_template.hpp" 3 4 12329: static const int arity = 8; 12329: typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; typedef T6 arg7_type; typedef T7 arg8_type; 12329: 12329: typedef function8 self_type; 12329: 12329: function8() = default; 12329: 12329: 12329: 12329: template 12329: function8(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to(f); 12329: } 12329: template 12329: function8(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to_a(f,a); 12329: } 12329: 12329: 12329: function8(clear_type*) : function_base() { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: function8(const function8& f) : function_base() 12329: { 12329: this->assign_to_own(f); 12329: } 12329: 12329: 12329: function8(function8&& f) : function_base() 12329: { 12329: this->move_assign(f); 12329: } 12329: 12329: 12329: ~function8() { clear(); } 12329: 12329: result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7) const 12329: { 12329: if (this->empty()) 12329: boost::throw_exception(bad_function_call()); 12329: 12329: return get_vtable()->invoker 12329: (this->functor , static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: function8&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: this->clear(); 12329: { try { 12329: this->assign_to(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: template 12329: void assign(Functor f, Allocator a) 12329: { 12329: this->clear(); 12329: { try{ 12329: this->assign_to_a(f,a); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: 12329: 12329: function8& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: # 821 "/usr/include/boost/function/function_template.hpp" 3 4 12329: function8& operator=(const function8& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->assign_to_own(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: 12329: function8& operator=(function8&& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->move_assign(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: void swap(function8& other) 12329: { 12329: if (&other == this) 12329: return; 12329: 12329: function8 tmp; 12329: tmp.move_assign(*this); 12329: this->move_assign(other); 12329: other.move_assign(tmp); 12329: } 12329: 12329: 12329: void clear() 12329: { 12329: if (vtable) { 12329: if (!this->has_trivial_copy_and_destroy()) 12329: get_vtable()->clear(this->functor); 12329: vtable = 0; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: struct dummy { 12329: void nonnull() {} 12329: }; 12329: 12329: typedef void (dummy::*safe_bool)(); 12329: 12329: public: 12329: operator safe_bool () const 12329: { return (this->empty())? 0 : &dummy::nonnull; } 12329: 12329: bool operator!() const 12329: { return this->empty(); } 12329: 12329: 12329: private: 12329: void assign_to_own(const function8& f) 12329: { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::clone_functor_tag); 12329: } 12329: } 12329: 12329: template 12329: void assign_to(Functor f) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker8 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to(f, functor)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: template 12329: void assign_to_a(Functor f,Allocator a) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker8 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply_a 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to_a(f, functor, a)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: 12329: 12329: 12329: void move_assign(function8& f) 12329: { 12329: if (&f == this) 12329: return; 12329: 12329: { try { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::move_functor_tag); 12329: f.vtable = 0; 12329: } else { 12329: clear(); 12329: } 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: }; 12329: 12329: template 12329: inline void swap(function8< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >& f1, 12329: function8< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 12329: >& f2) 12329: { 12329: f1.swap(f2); 12329: } 12329: 12329: 12329: template 12329: void operator==(const function8< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>&, 12329: const function8< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>&); 12329: template 12329: void operator!=(const function8< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>&, 12329: const function8< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>& ); 12329: # 1064 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: class function 12329: : public function8 12329: { 12329: typedef function8 base_type; 12329: typedef function self_type; 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: 12329: function() = default; 12329: 12329: template 12329: function(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f) 12329: { 12329: } 12329: template 12329: function(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f,a) 12329: { 12329: } 12329: 12329: 12329: function(clear_type*) : base_type() {} 12329: 12329: 12329: function(const self_type& f) : base_type(static_cast(f)){} 12329: 12329: function(const base_type& f) : base_type(static_cast(f)){} 12329: 12329: 12329: 12329: function(self_type&& f): base_type(static_cast(f)){} 12329: function(base_type&& f): base_type(static_cast(f)){} 12329: 12329: 12329: self_type& operator=(const self_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(self_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: self_type&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(const base_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(base_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 72 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4 12329: # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4 12329: # 88 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4 12329: # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4 12329: # 78 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4 12329: # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4 12329: # 86 "/usr/include/boost/function/function_template.hpp" 3 4 12329: namespace boost { 12329: namespace detail { 12329: namespace function { 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: struct function_invoker9 12329: { 12329: static R invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8) 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: return f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: struct void_function_invoker9 12329: { 12329: static void 12329: invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8) 12329: 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: struct function_obj_invoker9 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: struct void_function_obj_invoker9 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: struct function_ref_invoker9 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: struct void_function_ref_invoker9 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8)); 12329: } 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: struct function_mem_invoker9 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: return boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8)); 12329: } 12329: }; 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: struct function_void_mem_invoker9 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8)); 12329: } 12329: }; 12329: 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: struct get_function_invoker9 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_invoker9< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >, 12329: function_invoker9< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: struct get_function_obj_invoker9 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_obj_invoker9< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >, 12329: function_obj_invoker9< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: struct get_function_ref_invoker9 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_ref_invoker9< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >, 12329: function_ref_invoker9< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: > 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: struct get_member_invoker9 12329: { 12329: typedef typename conditional<(is_void::value), 12329: function_void_mem_invoker9< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >, 12329: function_mem_invoker9< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: > 12329: >::type type; 12329: }; 12329: # 331 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct get_invoker9 { }; 12329: 12329: 12329: template<> 12329: struct get_invoker9 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_invoker9< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_invoker9< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker9 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_member_invoker9< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_member_invoker9< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker9 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_obj_invoker9< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_obj_invoker9< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager_a manager_type; 12329: }; 12329: }; 12329: 12329: 12329: template<> 12329: struct get_invoker9 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_ref_invoker9< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_ref_invoker9< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: }; 12329: # 476 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct basic_vtable9 12329: { 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: typedef result_type (*invoker_type)(function_buffer& 12329: , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); 12329: 12329: template 12329: bool assign_to(F f, function_buffer& functor) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to(f, functor, tag()); 12329: } 12329: template 12329: bool assign_to_a(F f, function_buffer& functor, Allocator a) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to_a(f, functor, a, tag()); 12329: } 12329: 12329: void clear(function_buffer& functor) const 12329: { 12329: if (base.manager) 12329: base.manager(functor, functor, destroy_functor_tag); 12329: } 12329: 12329: private: 12329: 12329: template 12329: bool 12329: assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const 12329: { 12329: this->clear(functor); 12329: if (f) { 12329: 12329: 12329: functor.members.func_ptr = reinterpret_cast(f); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const 12329: { 12329: return assign_to(f,functor,function_ptr_tag()); 12329: } 12329: 12329: 12329: 12329: template 12329: bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to(boost::mem_fn(f), functor); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to_a(boost::mem_fn(f), functor, a); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, true_type) const 12329: { 12329: new (reinterpret_cast(functor.data)) FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const 12329: { 12329: assign_functor(f,functor,true_type()); 12329: } 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, false_type) const 12329: { 12329: functor.members.obj_ptr = new FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const 12329: { 12329: typedef functor_wrapper functor_wrapper_type; 12329: 12329: 12329: 12329: 12329: 12329: using wrapper_allocator_type = typename std::allocator_traits::template rebind_alloc; 12329: using wrapper_allocator_pointer_type = typename std::allocator_traits::pointer; 12329: 12329: wrapper_allocator_type wrapper_allocator(a); 12329: wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); 12329: 12329: 12329: 12329: std::allocator_traits::construct(wrapper_allocator, copy, functor_wrapper_type(f,a)); 12329: 12329: functor_wrapper_type* new_f = static_cast(copy); 12329: functor.members.obj_ptr = new_f; 12329: } 12329: 12329: template 12329: bool 12329: assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor(f, functor, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor_a(f, functor, a, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: template 12329: bool 12329: assign_to(const reference_wrapper& f, 12329: function_buffer& functor, function_obj_ref_tag) const 12329: { 12329: functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer()); 12329: functor.members.obj_ref.is_const_qualified = is_const::value; 12329: functor.members.obj_ref.is_volatile_qualified = is_volatile::value; 12329: return true; 12329: } 12329: template 12329: bool 12329: assign_to_a(const reference_wrapper& f, 12329: function_buffer& functor, Allocator, function_obj_ref_tag) const 12329: { 12329: return assign_to(f,functor,function_obj_ref_tag()); 12329: } 12329: 12329: public: 12329: vtable_base base; 12329: invoker_type invoker; 12329: }; 12329: } 12329: } 12329: 12329: template< 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 12329: > 12329: class function9 : public function_base 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: typedef boost::detail::function::basic_vtable9< 12329: R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> 12329: vtable_type; 12329: 12329: vtable_type* get_vtable() const { 12329: return reinterpret_cast( 12329: reinterpret_cast(vtable) & ~static_cast(0x01)); 12329: } 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: static const int args = 9; 12329: 12329: 12329: template 12329: struct sig 12329: { 12329: typedef result_type type; 12329: }; 12329: # 701 "/usr/include/boost/function/function_template.hpp" 3 4 12329: static const int arity = 9; 12329: typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; typedef T6 arg7_type; typedef T7 arg8_type; typedef T8 arg9_type; 12329: 12329: typedef function9 self_type; 12329: 12329: function9() = default; 12329: 12329: 12329: 12329: template 12329: function9(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to(f); 12329: } 12329: template 12329: function9(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to_a(f,a); 12329: } 12329: 12329: 12329: function9(clear_type*) : function_base() { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: function9(const function9& f) : function_base() 12329: { 12329: this->assign_to_own(f); 12329: } 12329: 12329: 12329: function9(function9&& f) : function_base() 12329: { 12329: this->move_assign(f); 12329: } 12329: 12329: 12329: ~function9() { clear(); } 12329: 12329: result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8) const 12329: { 12329: if (this->empty()) 12329: boost::throw_exception(bad_function_call()); 12329: 12329: return get_vtable()->invoker 12329: (this->functor , static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: function9&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: this->clear(); 12329: { try { 12329: this->assign_to(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: template 12329: void assign(Functor f, Allocator a) 12329: { 12329: this->clear(); 12329: { try{ 12329: this->assign_to_a(f,a); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: 12329: 12329: function9& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: # 821 "/usr/include/boost/function/function_template.hpp" 3 4 12329: function9& operator=(const function9& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->assign_to_own(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: 12329: function9& operator=(function9&& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->move_assign(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: void swap(function9& other) 12329: { 12329: if (&other == this) 12329: return; 12329: 12329: function9 tmp; 12329: tmp.move_assign(*this); 12329: this->move_assign(other); 12329: other.move_assign(tmp); 12329: } 12329: 12329: 12329: void clear() 12329: { 12329: if (vtable) { 12329: if (!this->has_trivial_copy_and_destroy()) 12329: get_vtable()->clear(this->functor); 12329: vtable = 0; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: struct dummy { 12329: void nonnull() {} 12329: }; 12329: 12329: typedef void (dummy::*safe_bool)(); 12329: 12329: public: 12329: operator safe_bool () const 12329: { return (this->empty())? 0 : &dummy::nonnull; } 12329: 12329: bool operator!() const 12329: { return this->empty(); } 12329: 12329: 12329: private: 12329: void assign_to_own(const function9& f) 12329: { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::clone_functor_tag); 12329: } 12329: } 12329: 12329: template 12329: void assign_to(Functor f) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker9 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to(f, functor)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: template 12329: void assign_to_a(Functor f,Allocator a) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker9 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply_a 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to_a(f, functor, a)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: 12329: 12329: 12329: void move_assign(function9& f) 12329: { 12329: if (&f == this) 12329: return; 12329: 12329: { try { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::move_functor_tag); 12329: f.vtable = 0; 12329: } else { 12329: clear(); 12329: } 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: }; 12329: 12329: template 12329: inline void swap(function9< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >& f1, 12329: function9< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 12329: >& f2) 12329: { 12329: f1.swap(f2); 12329: } 12329: 12329: 12329: template 12329: void operator==(const function9< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>&, 12329: const function9< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>&); 12329: template 12329: void operator!=(const function9< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>&, 12329: const function9< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>& ); 12329: # 1064 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: class function 12329: : public function9 12329: { 12329: typedef function9 base_type; 12329: typedef function self_type; 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: 12329: function() = default; 12329: 12329: template 12329: function(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f) 12329: { 12329: } 12329: template 12329: function(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f,a) 12329: { 12329: } 12329: 12329: 12329: function(clear_type*) : base_type() {} 12329: 12329: 12329: function(const self_type& f) : base_type(static_cast(f)){} 12329: 12329: function(const base_type& f) : base_type(static_cast(f)){} 12329: 12329: 12329: 12329: function(self_type&& f): base_type(static_cast(f)){} 12329: function(base_type&& f): base_type(static_cast(f)){} 12329: 12329: 12329: self_type& operator=(const self_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(self_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: self_type&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(const base_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(base_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 79 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4 12329: # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4 12329: # 93 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4 12329: # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4 12329: # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4 12329: # 85 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4 12329: # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4 12329: # 86 "/usr/include/boost/function/function_template.hpp" 3 4 12329: namespace boost { 12329: namespace detail { 12329: namespace function { 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: struct function_invoker10 12329: { 12329: static R invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9) 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: return f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8) , static_cast(a9)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: struct void_function_invoker10 12329: { 12329: static void 12329: invoke(function_buffer& function_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9) 12329: 12329: { 12329: FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); 12329: f( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8) , static_cast(a9)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: struct function_obj_invoker10 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8) , static_cast(a9)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: struct void_function_obj_invoker10 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9) 12329: 12329: { 12329: FunctionObj* f; 12329: if (function_allows_small_object_optimization::value) 12329: f = reinterpret_cast(function_obj_ptr.data); 12329: else 12329: f = reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8) , static_cast(a9)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: struct function_ref_invoker10 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: return (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8) , static_cast(a9)); 12329: } 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: struct void_function_ref_invoker10 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9) 12329: 12329: { 12329: FunctionObj* f = 12329: reinterpret_cast(function_obj_ptr.members.obj_ptr); 12329: (*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8) , static_cast(a9)); 12329: } 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: struct function_mem_invoker10 12329: { 12329: static R invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: return boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8) , static_cast(a9)); 12329: } 12329: }; 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: struct function_void_mem_invoker10 12329: { 12329: static void 12329: invoke(function_buffer& function_obj_ptr , 12329: T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9) 12329: 12329: { 12329: MemberPtr* f = 12329: reinterpret_cast(function_obj_ptr.data); 12329: boost::mem_fn(*f)( static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8) , static_cast(a9)); 12329: } 12329: }; 12329: 12329: 12329: template< 12329: typename FunctionPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: struct get_function_invoker10 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_invoker10< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >, 12329: function_invoker10< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: struct get_function_obj_invoker10 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_obj_invoker10< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >, 12329: function_obj_invoker10< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: > 12329: >::type type; 12329: }; 12329: 12329: template< 12329: typename FunctionObj, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: struct get_function_ref_invoker10 12329: { 12329: typedef typename conditional<(is_void::value), 12329: void_function_ref_invoker10< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >, 12329: function_ref_invoker10< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: > 12329: >::type type; 12329: }; 12329: 12329: 12329: 12329: template< 12329: typename MemberPtr, 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: struct get_member_invoker10 12329: { 12329: typedef typename conditional<(is_void::value), 12329: function_void_mem_invoker10< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >, 12329: function_mem_invoker10< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: > 12329: >::type type; 12329: }; 12329: # 331 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct get_invoker10 { }; 12329: 12329: 12329: template<> 12329: struct get_invoker10 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_invoker10< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_invoker10< 12329: FunctionPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker10 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_member_invoker10< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_member_invoker10< 12329: MemberPtr, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: }; 12329: 12329: 12329: 12329: template<> 12329: struct get_invoker10 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_obj_invoker10< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_obj_invoker10< 12329: FunctionObj, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >::type 12329: invoker_type; 12329: 12329: typedef functor_manager_a manager_type; 12329: }; 12329: }; 12329: 12329: 12329: template<> 12329: struct get_invoker10 12329: { 12329: template 12329: struct apply 12329: { 12329: typedef typename get_function_ref_invoker10< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: 12329: template 12329: struct apply_a 12329: { 12329: typedef typename get_function_ref_invoker10< 12329: typename RefWrapper::type, 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >::type 12329: invoker_type; 12329: 12329: typedef reference_manager manager_type; 12329: }; 12329: }; 12329: # 476 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: struct basic_vtable10 12329: { 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: typedef result_type (*invoker_type)(function_buffer& 12329: , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); 12329: 12329: template 12329: bool assign_to(F f, function_buffer& functor) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to(f, functor, tag()); 12329: } 12329: template 12329: bool assign_to_a(F f, function_buffer& functor, Allocator a) const 12329: { 12329: typedef typename get_function_tag::type tag; 12329: return assign_to_a(f, functor, a, tag()); 12329: } 12329: 12329: void clear(function_buffer& functor) const 12329: { 12329: if (base.manager) 12329: base.manager(functor, functor, destroy_functor_tag); 12329: } 12329: 12329: private: 12329: 12329: template 12329: bool 12329: assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const 12329: { 12329: this->clear(functor); 12329: if (f) { 12329: 12329: 12329: functor.members.func_ptr = reinterpret_cast(f); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const 12329: { 12329: return assign_to(f,functor,function_ptr_tag()); 12329: } 12329: 12329: 12329: 12329: template 12329: bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to(boost::mem_fn(f), functor); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const 12329: { 12329: 12329: 12329: 12329: if (f) { 12329: this->assign_to_a(boost::mem_fn(f), functor, a); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, true_type) const 12329: { 12329: new (reinterpret_cast(functor.data)) FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const 12329: { 12329: assign_functor(f,functor,true_type()); 12329: } 12329: 12329: 12329: template 12329: void 12329: assign_functor(FunctionObj f, function_buffer& functor, false_type) const 12329: { 12329: functor.members.obj_ptr = new FunctionObj(f); 12329: } 12329: template 12329: void 12329: assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const 12329: { 12329: typedef functor_wrapper functor_wrapper_type; 12329: 12329: 12329: 12329: 12329: 12329: using wrapper_allocator_type = typename std::allocator_traits::template rebind_alloc; 12329: using wrapper_allocator_pointer_type = typename std::allocator_traits::pointer; 12329: 12329: wrapper_allocator_type wrapper_allocator(a); 12329: wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); 12329: 12329: 12329: 12329: std::allocator_traits::construct(wrapper_allocator, copy, functor_wrapper_type(f,a)); 12329: 12329: functor_wrapper_type* new_f = static_cast(copy); 12329: functor.members.obj_ptr = new_f; 12329: } 12329: 12329: template 12329: bool 12329: assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor(f, functor, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: template 12329: bool 12329: assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const 12329: { 12329: if (!boost::detail::function::has_empty_target(boost::addressof(f))) { 12329: assign_functor_a(f, functor, a, 12329: integral_constant::value)>()); 12329: return true; 12329: } else { 12329: return false; 12329: } 12329: } 12329: 12329: 12329: template 12329: bool 12329: assign_to(const reference_wrapper& f, 12329: function_buffer& functor, function_obj_ref_tag) const 12329: { 12329: functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer()); 12329: functor.members.obj_ref.is_const_qualified = is_const::value; 12329: functor.members.obj_ref.is_volatile_qualified = is_volatile::value; 12329: return true; 12329: } 12329: template 12329: bool 12329: assign_to_a(const reference_wrapper& f, 12329: function_buffer& functor, Allocator, function_obj_ref_tag) const 12329: { 12329: return assign_to(f,functor,function_obj_ref_tag()); 12329: } 12329: 12329: public: 12329: vtable_base base; 12329: invoker_type invoker; 12329: }; 12329: } 12329: } 12329: 12329: template< 12329: typename R , 12329: typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 12329: > 12329: class function10 : public function_base 12329: { 12329: public: 12329: 12329: typedef R result_type; 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: typedef boost::detail::function::basic_vtable10< 12329: R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> 12329: vtable_type; 12329: 12329: vtable_type* get_vtable() const { 12329: return reinterpret_cast( 12329: reinterpret_cast(vtable) & ~static_cast(0x01)); 12329: } 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: static const int args = 10; 12329: 12329: 12329: template 12329: struct sig 12329: { 12329: typedef result_type type; 12329: }; 12329: # 701 "/usr/include/boost/function/function_template.hpp" 3 4 12329: static const int arity = 10; 12329: typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; typedef T6 arg7_type; typedef T7 arg8_type; typedef T8 arg9_type; typedef T9 arg10_type; 12329: 12329: typedef function10 self_type; 12329: 12329: function10() = default; 12329: 12329: 12329: 12329: template 12329: function10(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to(f); 12329: } 12329: template 12329: function10(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: function_base() 12329: { 12329: this->assign_to_a(f,a); 12329: } 12329: 12329: 12329: function10(clear_type*) : function_base() { } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: function10(const function10& f) : function_base() 12329: { 12329: this->assign_to_own(f); 12329: } 12329: 12329: 12329: function10(function10&& f) : function_base() 12329: { 12329: this->move_assign(f); 12329: } 12329: 12329: 12329: ~function10() { clear(); } 12329: 12329: result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9) const 12329: { 12329: if (this->empty()) 12329: boost::throw_exception(bad_function_call()); 12329: 12329: return get_vtable()->invoker 12329: (this->functor , static_cast(a0) , static_cast(a1) , static_cast(a2) , static_cast(a3) , static_cast(a4) , static_cast(a5) , static_cast(a6) , static_cast(a7) , static_cast(a8) , static_cast(a9)); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: function10&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: this->clear(); 12329: { try { 12329: this->assign_to(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: template 12329: void assign(Functor f, Allocator a) 12329: { 12329: this->clear(); 12329: { try{ 12329: this->assign_to_a(f,a); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: 12329: 12329: function10& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: # 821 "/usr/include/boost/function/function_template.hpp" 3 4 12329: function10& operator=(const function10& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->assign_to_own(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: 12329: function10& operator=(function10&& f) 12329: { 12329: if (&f == this) 12329: return *this; 12329: 12329: this->clear(); 12329: { try { 12329: this->move_assign(f); 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: return *this; 12329: } 12329: 12329: 12329: void swap(function10& other) 12329: { 12329: if (&other == this) 12329: return; 12329: 12329: function10 tmp; 12329: tmp.move_assign(*this); 12329: this->move_assign(other); 12329: other.move_assign(tmp); 12329: } 12329: 12329: 12329: void clear() 12329: { 12329: if (vtable) { 12329: if (!this->has_trivial_copy_and_destroy()) 12329: get_vtable()->clear(this->functor); 12329: vtable = 0; 12329: } 12329: } 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: struct dummy { 12329: void nonnull() {} 12329: }; 12329: 12329: typedef void (dummy::*safe_bool)(); 12329: 12329: public: 12329: operator safe_bool () const 12329: { return (this->empty())? 0 : &dummy::nonnull; } 12329: 12329: bool operator!() const 12329: { return this->empty(); } 12329: 12329: 12329: private: 12329: void assign_to_own(const function10& f) 12329: { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::clone_functor_tag); 12329: } 12329: } 12329: 12329: template 12329: void assign_to(Functor f) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker10 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to(f, functor)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: template 12329: void assign_to_a(Functor f,Allocator a) 12329: { 12329: using boost::detail::function::vtable_base; 12329: 12329: typedef typename boost::detail::function::get_function_tag::type tag; 12329: typedef boost::detail::function::get_invoker10 get_invoker; 12329: typedef typename get_invoker:: 12329: template apply_a 12329: handler_type; 12329: 12329: typedef typename handler_type::invoker_type invoker_type; 12329: typedef typename handler_type::manager_type manager_type; 12329: 12329: 12329: 12329: 12329: 12329: static const vtable_type stored_vtable = 12329: { { &manager_type::manage }, &invoker_type::invoke }; 12329: 12329: if (stored_vtable.assign_to_a(f, functor, a)) { 12329: std::size_t value = reinterpret_cast(&stored_vtable.base); 12329: 12329: if (boost::has_trivial_copy_constructor::value && 12329: boost::has_trivial_destructor::value && 12329: boost::detail::function::function_allows_small_object_optimization::value) 12329: value |= static_cast(0x01); 12329: vtable = reinterpret_cast(value); 12329: } else 12329: vtable = 0; 12329: } 12329: 12329: 12329: 12329: 12329: void move_assign(function10& f) 12329: { 12329: if (&f == this) 12329: return; 12329: 12329: { try { 12329: if (!f.empty()) { 12329: this->vtable = f.vtable; 12329: if (this->has_trivial_copy_and_destroy()) { 12329: 12329: 12329: 12329: #pragma GCC diagnostic push 12329: 12329: 12329: #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" 12329: 12329: std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data)); 12329: 12329: #pragma GCC diagnostic pop 12329: 12329: } else 12329: get_vtable()->base.manager(f.functor, this->functor, 12329: boost::detail::function::move_functor_tag); 12329: f.vtable = 0; 12329: } else { 12329: clear(); 12329: } 12329: } catch(...) { 12329: vtable = 0; 12329: throw;; 12329: } 12329: } 12329: } 12329: }; 12329: 12329: template 12329: inline void swap(function10< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >& f1, 12329: function10< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 12329: >& f2) 12329: { 12329: f1.swap(f2); 12329: } 12329: 12329: 12329: template 12329: void operator==(const function10< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>&, 12329: const function10< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>&); 12329: template 12329: void operator!=(const function10< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>&, 12329: const function10< 12329: R , 12329: T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>& ); 12329: # 1064 "/usr/include/boost/function/function_template.hpp" 3 4 12329: template 12329: class function 12329: : public function10 12329: { 12329: typedef function10 base_type; 12329: typedef function self_type; 12329: 12329: struct clear_type {}; 12329: 12329: public: 12329: 12329: function() = default; 12329: 12329: template 12329: function(Functor f 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f) 12329: { 12329: } 12329: template 12329: function(Functor f, Allocator a 12329: 12329: ,typename boost::enable_if_< 12329: !(is_integral::value), 12329: int>::type = 0 12329: 12329: ) : 12329: base_type(f,a) 12329: { 12329: } 12329: 12329: 12329: function(clear_type*) : base_type() {} 12329: 12329: 12329: function(const self_type& f) : base_type(static_cast(f)){} 12329: 12329: function(const base_type& f) : base_type(static_cast(f)){} 12329: 12329: 12329: 12329: function(self_type&& f): base_type(static_cast(f)){} 12329: function(base_type&& f): base_type(static_cast(f)){} 12329: 12329: 12329: self_type& operator=(const self_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(self_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: 12329: typename boost::enable_if_< 12329: !(is_integral::value), 12329: self_type&>::type 12329: 12329: 12329: 12329: operator=(Functor f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(clear_type*) 12329: { 12329: this->clear(); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(const base_type& f) 12329: { 12329: self_type(f).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: self_type& operator=(base_type&& f) 12329: { 12329: self_type(static_cast(f)).swap(*this); 12329: return *this; 12329: } 12329: 12329: }; 12329: 12329: 12329: 12329: 12329: } 12329: # 86 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4 12329: # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4 12329: # 98 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4 12329: # 71 "/usr/include/boost/function.hpp" 2 3 4 12329: # 16 "/usr/include/boost/program_options/options_description.hpp" 2 3 4 12329: # 1 "/usr/include/boost/shared_ptr.hpp" 1 3 4 12329: # 17 "/usr/include/boost/shared_ptr.hpp" 3 4 12329: # 1 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 1 3 4 12329: # 17 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 1 3 4 12329: # 25 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 3 4 12329: # 1 "/usr/include/boost/smart_ptr/bad_weak_ptr.hpp" 1 3 4 12329: # 27 "/usr/include/boost/smart_ptr/bad_weak_ptr.hpp" 3 4 12329: namespace boost 12329: { 12329: # 46 "/usr/include/boost/smart_ptr/bad_weak_ptr.hpp" 3 4 12329: class bad_weak_ptr: public std::exception 12329: { 12329: public: 12329: 12329: char const * what() const noexcept override 12329: { 12329: return "tr1::bad_weak_ptr"; 12329: } 12329: }; 12329: # 64 "/usr/include/boost/smart_ptr/bad_weak_ptr.hpp" 3 4 12329: } 12329: # 26 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 2 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp" 1 3 4 12329: # 20 "/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp" 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp" 1 3 4 12329: # 21 "/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp" 2 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp" 1 3 4 12329: # 22 "/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp" 2 3 4 12329: # 40 "/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp" 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp" 1 3 4 12329: # 16 "/usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp" 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/sp_typeinfo_.hpp" 1 3 4 12329: # 42 "/usr/include/boost/smart_ptr/detail/sp_typeinfo_.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: typedef std::type_info sp_typeinfo_; 12329: 12329: } 12329: 12329: } 12329: # 17 "/usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp" 2 3 4 12329: 12329: # 1 "/usr/include/boost/cstdint.hpp" 1 3 4 12329: # 19 "/usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp" 2 3 4 12329: # 27 "/usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: inline void atomic_increment( boost::uint_least32_t * pw ) 12329: { 12329: __atomic_fetch_add( pw, 1, 0 ); 12329: } 12329: 12329: inline boost::uint_least32_t atomic_decrement( boost::uint_least32_t * pw ) 12329: { 12329: return __atomic_fetch_sub( pw, 1, 4 ); 12329: } 12329: 12329: inline boost::uint_least32_t atomic_conditional_increment( boost::uint_least32_t * pw ) 12329: { 12329: 12329: 12329: 12329: 12329: boost::uint_least32_t r = __atomic_load_n( pw, 0 ); 12329: 12329: for( ;; ) 12329: { 12329: if( r == 0 ) 12329: { 12329: return r; 12329: } 12329: 12329: if( __atomic_compare_exchange_n( pw, &r, r + 1, true, 0, 0 ) ) 12329: { 12329: return r; 12329: } 12329: } 12329: } 12329: 12329: inline boost::uint_least32_t atomic_load( boost::uint_least32_t const * pw ) 12329: { 12329: return __atomic_load_n( pw, 2 ); 12329: } 12329: 12329: class __attribute__((__visibility__("default"))) sp_counted_base 12329: { 12329: private: 12329: 12329: sp_counted_base( sp_counted_base const & ); 12329: sp_counted_base & operator= ( sp_counted_base const & ); 12329: 12329: boost::uint_least32_t use_count_; 12329: boost::uint_least32_t weak_count_; 12329: 12329: public: 12329: 12329: sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) 12329: { 12329: } 12329: 12329: virtual ~sp_counted_base() 12329: { 12329: } 12329: 12329: 12329: 12329: 12329: virtual void dispose() = 0; 12329: 12329: 12329: 12329: virtual void destroy() 12329: { 12329: delete this; 12329: } 12329: 12329: virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; 12329: virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; 12329: virtual void * get_untyped_deleter() = 0; 12329: 12329: void add_ref_copy() 12329: { 12329: atomic_increment( &use_count_ ); 12329: } 12329: 12329: bool add_ref_lock() 12329: { 12329: return atomic_conditional_increment( &use_count_ ) != 0; 12329: } 12329: 12329: void release() 12329: { 12329: if( atomic_decrement( &use_count_ ) == 1 ) 12329: { 12329: dispose(); 12329: weak_release(); 12329: } 12329: } 12329: 12329: void weak_add_ref() 12329: { 12329: atomic_increment( &weak_count_ ); 12329: } 12329: 12329: void weak_release() 12329: { 12329: if( atomic_decrement( &weak_count_ ) == 1 ) 12329: { 12329: destroy(); 12329: } 12329: } 12329: 12329: long use_count() const 12329: { 12329: return atomic_load( &use_count_ ); 12329: } 12329: }; 12329: 12329: } 12329: 12329: } 12329: # 41 "/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp" 2 3 4 12329: # 27 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 2 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp" 1 3 4 12329: # 26 "/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp" 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/sp_noexcept.hpp" 1 3 4 12329: # 27 "/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp" 2 3 4 12329: # 1 "/usr/include/boost/checked_delete.hpp" 1 3 4 12329: # 28 "/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp" 2 3 4 12329: # 38 "/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp" 3 4 12329: namespace boost 12329: { 12329: # 48 "/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp" 3 4 12329: namespace detail 12329: { 12329: 12329: 12329: 12329: template class local_sp_deleter; 12329: 12329: template D * get_local_deleter( D * ) noexcept 12329: { 12329: return 0; 12329: } 12329: 12329: template D * get_local_deleter( local_sp_deleter * p ) noexcept; 12329: 12329: 12329: 12329: template class __attribute__((__visibility__("default"))) sp_counted_impl_p: public sp_counted_base 12329: { 12329: private: 12329: 12329: X * px_; 12329: 12329: sp_counted_impl_p( sp_counted_impl_p const & ); 12329: sp_counted_impl_p & operator= ( sp_counted_impl_p const & ); 12329: 12329: typedef sp_counted_impl_p this_type; 12329: 12329: public: 12329: 12329: explicit sp_counted_impl_p( X * px ): px_( px ) 12329: { 12329: 12329: 12329: 12329: } 12329: 12329: void dispose() noexcept override 12329: { 12329: 12329: 12329: 12329: boost::checked_delete( px_ ); 12329: } 12329: 12329: void * get_deleter( sp_typeinfo_ const & ) noexcept override 12329: { 12329: return 0; 12329: } 12329: 12329: void * get_local_deleter( sp_typeinfo_ const & ) noexcept override 12329: { 12329: return 0; 12329: } 12329: 12329: void * get_untyped_deleter() noexcept override 12329: { 12329: return 0; 12329: } 12329: # 134 "/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp" 3 4 12329: }; 12329: # 143 "/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp" 3 4 12329: template class __attribute__((__visibility__("default"))) sp_counted_impl_pd: public sp_counted_base 12329: { 12329: private: 12329: 12329: P ptr; 12329: D del; 12329: 12329: sp_counted_impl_pd( sp_counted_impl_pd const & ); 12329: sp_counted_impl_pd & operator= ( sp_counted_impl_pd const & ); 12329: 12329: typedef sp_counted_impl_pd this_type; 12329: 12329: public: 12329: 12329: 12329: 12329: sp_counted_impl_pd( P p, D & d ): ptr( p ), del( d ) 12329: { 12329: } 12329: 12329: sp_counted_impl_pd( P p ): ptr( p ), del() 12329: { 12329: } 12329: 12329: void dispose() noexcept override 12329: { 12329: del( ptr ); 12329: } 12329: 12329: void * get_deleter( sp_typeinfo_ const & ti ) noexcept override 12329: { 12329: return ti == typeid(D)? &reinterpret_cast( del ): 0; 12329: } 12329: 12329: void * get_local_deleter( sp_typeinfo_ const & ti ) noexcept override 12329: { 12329: return ti == typeid(D)? boost::detail::get_local_deleter( boost::addressof( del ) ): 0; 12329: } 12329: 12329: void * get_untyped_deleter() noexcept override 12329: { 12329: return &reinterpret_cast( del ); 12329: } 12329: # 214 "/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp" 3 4 12329: }; 12329: 12329: template class __attribute__((__visibility__("default"))) sp_counted_impl_pda: public sp_counted_base 12329: { 12329: private: 12329: 12329: P p_; 12329: D d_; 12329: A a_; 12329: 12329: sp_counted_impl_pda( sp_counted_impl_pda const & ); 12329: sp_counted_impl_pda & operator= ( sp_counted_impl_pda const & ); 12329: 12329: typedef sp_counted_impl_pda this_type; 12329: 12329: public: 12329: 12329: 12329: 12329: sp_counted_impl_pda( P p, D & d, A a ): p_( p ), d_( d ), a_( a ) 12329: { 12329: } 12329: 12329: sp_counted_impl_pda( P p, A a ): p_( p ), d_( a ), a_( a ) 12329: { 12329: } 12329: 12329: void dispose() noexcept override 12329: { 12329: d_( p_ ); 12329: } 12329: 12329: void destroy() noexcept override 12329: { 12329: 12329: 12329: typedef typename std::allocator_traits::template rebind_alloc< this_type > A2; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: A2 a2( a_ ); 12329: 12329: this->~this_type(); 12329: 12329: a2.deallocate( this, 1 ); 12329: } 12329: 12329: void * get_deleter( sp_typeinfo_ const & ti ) noexcept override 12329: { 12329: return ti == typeid(D)? &reinterpret_cast( d_ ): 0; 12329: } 12329: 12329: void * get_local_deleter( sp_typeinfo_ const & ti ) noexcept override 12329: { 12329: return ti == typeid(D)? boost::detail::get_local_deleter( boost::addressof( d_ ) ): 0; 12329: } 12329: 12329: void * get_untyped_deleter() noexcept override 12329: { 12329: return &reinterpret_cast( d_ ); 12329: } 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: } 12329: 12329: } 12329: # 28 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 2 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/sp_disable_deprecated.hpp" 1 3 4 12329: # 29 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/cstdint.hpp" 1 3 4 12329: # 36 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 2 3 4 12329: # 45 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 3 4 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: namespace movelib 12329: { 12329: 12329: template< class T, class D > class unique_ptr; 12329: 12329: } 12329: 12329: namespace detail 12329: { 12329: # 69 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 3 4 12329: struct sp_nothrow_tag {}; 12329: 12329: template< class D > struct sp_inplace_tag 12329: { 12329: }; 12329: 12329: template< class T > class sp_reference_wrapper 12329: { 12329: public: 12329: 12329: explicit sp_reference_wrapper( T & t): t_( boost::addressof( t ) ) 12329: { 12329: } 12329: 12329: template< class Y > void operator()( Y * p ) const 12329: { 12329: (*t_)( p ); 12329: } 12329: 12329: private: 12329: 12329: T * t_; 12329: }; 12329: 12329: template< class D > struct sp_convert_reference 12329: { 12329: typedef D type; 12329: }; 12329: 12329: template< class D > struct sp_convert_reference< D& > 12329: { 12329: typedef sp_reference_wrapper< D > type; 12329: }; 12329: 12329: template std::size_t sp_hash_pointer( T* p ) noexcept 12329: { 12329: boost::uintptr_t v = reinterpret_cast( p ); 12329: 12329: 12329: return static_cast( v + ( v >> 3 ) ); 12329: } 12329: 12329: class weak_count; 12329: 12329: class shared_count 12329: { 12329: private: 12329: 12329: sp_counted_base * pi_; 12329: 12329: 12329: 12329: 12329: 12329: friend class weak_count; 12329: 12329: public: 12329: 12329: constexpr shared_count() noexcept: pi_(0) 12329: 12329: 12329: 12329: { 12329: } 12329: 12329: constexpr explicit shared_count( sp_counted_base * pi ) noexcept: pi_( pi ) 12329: 12329: 12329: 12329: { 12329: } 12329: 12329: template explicit shared_count( Y * p ): pi_( 0 ) 12329: 12329: 12329: 12329: { 12329: 12329: 12329: try 12329: { 12329: pi_ = new sp_counted_impl_p( p ); 12329: } 12329: catch(...) 12329: { 12329: boost::checked_delete( p ); 12329: throw; 12329: } 12329: # 169 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 3 4 12329: } 12329: 12329: 12329: 12329: 12329: template shared_count( P p, D d ): pi_(0) 12329: 12329: 12329: 12329: 12329: { 12329: 12329: 12329: 12329: 12329: 12329: try 12329: { 12329: pi_ = new sp_counted_impl_pd(p, d); 12329: } 12329: catch(...) 12329: { 12329: d(p); 12329: throw; 12329: } 12329: # 206 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 3 4 12329: } 12329: 12329: 12329: 12329: template< class P, class D > shared_count( P p, sp_inplace_tag ): pi_( 0 ) 12329: 12329: 12329: 12329: { 12329: 12329: 12329: try 12329: { 12329: pi_ = new sp_counted_impl_pd< P, D >( p ); 12329: } 12329: catch( ... ) 12329: { 12329: D::operator_fn( p ); 12329: throw; 12329: } 12329: # 238 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 3 4 12329: } 12329: 12329: 12329: 12329: template shared_count( P p, D d, A a ): pi_( 0 ) 12329: 12329: 12329: 12329: { 12329: typedef sp_counted_impl_pda impl_type; 12329: 12329: 12329: 12329: typedef typename std::allocator_traits::template rebind_alloc< impl_type > A2; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: A2 a2( a ); 12329: 12329: 12329: 12329: try 12329: { 12329: pi_ = a2.allocate( 1 ); 12329: ::new( static_cast< void* >( pi_ ) ) impl_type( p, d, a ); 12329: } 12329: catch(...) 12329: { 12329: d( p ); 12329: 12329: if( pi_ != 0 ) 12329: { 12329: a2.deallocate( static_cast< impl_type* >( pi_ ), 1 ); 12329: } 12329: 12329: throw; 12329: } 12329: # 295 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 3 4 12329: } 12329: 12329: 12329: 12329: template< class P, class D, class A > shared_count( P p, sp_inplace_tag< D >, A a ): pi_( 0 ) 12329: 12329: 12329: 12329: { 12329: typedef sp_counted_impl_pda< P, D, A > impl_type; 12329: 12329: 12329: 12329: typedef typename std::allocator_traits::template rebind_alloc< impl_type > A2; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: A2 a2( a ); 12329: 12329: 12329: 12329: try 12329: { 12329: pi_ = a2.allocate( 1 ); 12329: ::new( static_cast< void* >( pi_ ) ) impl_type( p, a ); 12329: } 12329: catch(...) 12329: { 12329: D::operator_fn( p ); 12329: 12329: if( pi_ != 0 ) 12329: { 12329: a2.deallocate( static_cast< impl_type* >( pi_ ), 1 ); 12329: } 12329: 12329: throw; 12329: } 12329: # 352 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 3 4 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: explicit shared_count( std::auto_ptr & r ): pi_( new sp_counted_impl_p( r.get() ) ) 12329: 12329: 12329: 12329: { 12329: # 375 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 3 4 12329: r.release(); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: explicit shared_count( std::unique_ptr & r ): pi_( 0 ) 12329: 12329: 12329: 12329: { 12329: typedef typename sp_convert_reference::type D2; 12329: 12329: D2 d2( r.get_deleter() ); 12329: pi_ = new sp_counted_impl_pd< typename std::unique_ptr::pointer, D2 >( r.get(), d2 ); 12329: # 402 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 3 4 12329: r.release(); 12329: } 12329: 12329: 12329: 12329: template 12329: explicit shared_count( boost::movelib::unique_ptr & r ): pi_( 0 ) 12329: 12329: 12329: 12329: { 12329: typedef typename sp_convert_reference::type D2; 12329: 12329: D2 d2( r.get_deleter() ); 12329: pi_ = new sp_counted_impl_pd< typename boost::movelib::unique_ptr::pointer, D2 >( r.get(), d2 ); 12329: # 427 "/usr/include/boost/smart_ptr/detail/shared_count.hpp" 3 4 12329: r.release(); 12329: } 12329: 12329: ~shared_count() 12329: { 12329: if( pi_ != 0 ) pi_->release(); 12329: 12329: 12329: 12329: } 12329: 12329: shared_count(shared_count const & r) noexcept: pi_(r.pi_) 12329: 12329: 12329: 12329: { 12329: if( pi_ != 0 ) pi_->add_ref_copy(); 12329: } 12329: 12329: 12329: 12329: shared_count(shared_count && r) noexcept: pi_(r.pi_) 12329: 12329: 12329: 12329: { 12329: r.pi_ = 0; 12329: } 12329: 12329: 12329: 12329: explicit shared_count(weak_count const & r); 12329: shared_count( weak_count const & r, sp_nothrow_tag ) noexcept; 12329: 12329: shared_count & operator= (shared_count const & r) noexcept 12329: { 12329: sp_counted_base * tmp = r.pi_; 12329: 12329: if( tmp != pi_ ) 12329: { 12329: if( tmp != 0 ) tmp->add_ref_copy(); 12329: if( pi_ != 0 ) pi_->release(); 12329: pi_ = tmp; 12329: } 12329: 12329: return *this; 12329: } 12329: 12329: void swap(shared_count & r) noexcept 12329: { 12329: sp_counted_base * tmp = r.pi_; 12329: r.pi_ = pi_; 12329: pi_ = tmp; 12329: } 12329: 12329: long use_count() const noexcept 12329: { 12329: return pi_ != 0? pi_->use_count(): 0; 12329: } 12329: 12329: bool unique() const noexcept 12329: { 12329: return use_count() == 1; 12329: } 12329: 12329: bool empty() const noexcept 12329: { 12329: return pi_ == 0; 12329: } 12329: 12329: bool operator==( shared_count const & r ) const noexcept 12329: { 12329: return pi_ == r.pi_; 12329: } 12329: 12329: bool operator==( weak_count const & r ) const noexcept; 12329: 12329: bool operator<( shared_count const & r ) const noexcept 12329: { 12329: return std::less()( pi_, r.pi_ ); 12329: } 12329: 12329: bool operator<( weak_count const & r ) const noexcept; 12329: 12329: void * get_deleter( sp_typeinfo_ const & ti ) const noexcept 12329: { 12329: return pi_? pi_->get_deleter( ti ): 0; 12329: } 12329: 12329: void * get_local_deleter( sp_typeinfo_ const & ti ) const noexcept 12329: { 12329: return pi_? pi_->get_local_deleter( ti ): 0; 12329: } 12329: 12329: void * get_untyped_deleter() const noexcept 12329: { 12329: return pi_? pi_->get_untyped_deleter(): 0; 12329: } 12329: 12329: std::size_t hash_value() const noexcept 12329: { 12329: return sp_hash_pointer( pi_ ); 12329: } 12329: }; 12329: 12329: 12329: class weak_count 12329: { 12329: private: 12329: 12329: sp_counted_base * pi_; 12329: 12329: 12329: 12329: 12329: 12329: friend class shared_count; 12329: 12329: public: 12329: 12329: constexpr weak_count() noexcept: pi_(0) 12329: 12329: 12329: 12329: { 12329: } 12329: 12329: weak_count(shared_count const & r) noexcept: pi_(r.pi_) 12329: 12329: 12329: 12329: { 12329: if(pi_ != 0) pi_->weak_add_ref(); 12329: } 12329: 12329: weak_count(weak_count const & r) noexcept: pi_(r.pi_) 12329: 12329: 12329: 12329: { 12329: if(pi_ != 0) pi_->weak_add_ref(); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: weak_count(weak_count && r) noexcept: pi_(r.pi_) 12329: 12329: 12329: 12329: { 12329: r.pi_ = 0; 12329: } 12329: 12329: 12329: 12329: ~weak_count() 12329: { 12329: if(pi_ != 0) pi_->weak_release(); 12329: 12329: 12329: 12329: } 12329: 12329: weak_count & operator= (shared_count const & r) noexcept 12329: { 12329: sp_counted_base * tmp = r.pi_; 12329: 12329: if( tmp != pi_ ) 12329: { 12329: if(tmp != 0) tmp->weak_add_ref(); 12329: if(pi_ != 0) pi_->weak_release(); 12329: pi_ = tmp; 12329: } 12329: 12329: return *this; 12329: } 12329: 12329: weak_count & operator= (weak_count const & r) noexcept 12329: { 12329: sp_counted_base * tmp = r.pi_; 12329: 12329: if( tmp != pi_ ) 12329: { 12329: if(tmp != 0) tmp->weak_add_ref(); 12329: if(pi_ != 0) pi_->weak_release(); 12329: pi_ = tmp; 12329: } 12329: 12329: return *this; 12329: } 12329: 12329: void swap(weak_count & r) noexcept 12329: { 12329: sp_counted_base * tmp = r.pi_; 12329: r.pi_ = pi_; 12329: pi_ = tmp; 12329: } 12329: 12329: long use_count() const noexcept 12329: { 12329: return pi_ != 0? pi_->use_count(): 0; 12329: } 12329: 12329: bool empty() const noexcept 12329: { 12329: return pi_ == 0; 12329: } 12329: 12329: bool operator==( weak_count const & r ) const noexcept 12329: { 12329: return pi_ == r.pi_; 12329: } 12329: 12329: bool operator==( shared_count const & r ) const noexcept 12329: { 12329: return pi_ == r.pi_; 12329: } 12329: 12329: bool operator<( weak_count const & r ) const noexcept 12329: { 12329: return std::less()( pi_, r.pi_ ); 12329: } 12329: 12329: bool operator<( shared_count const & r ) const noexcept 12329: { 12329: return std::less()( pi_, r.pi_ ); 12329: } 12329: 12329: std::size_t hash_value() const noexcept 12329: { 12329: return sp_hash_pointer( pi_ ); 12329: } 12329: }; 12329: 12329: inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ ) 12329: 12329: 12329: 12329: { 12329: if( pi_ == 0 || !pi_->add_ref_lock() ) 12329: { 12329: boost::throw_exception( boost::bad_weak_ptr() ); 12329: } 12329: } 12329: 12329: inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ) noexcept: pi_( r.pi_ ) 12329: 12329: 12329: 12329: { 12329: if( pi_ != 0 && !pi_->add_ref_lock() ) 12329: { 12329: pi_ = 0; 12329: } 12329: } 12329: 12329: inline bool shared_count::operator==( weak_count const & r ) const noexcept 12329: { 12329: return pi_ == r.pi_; 12329: } 12329: 12329: inline bool shared_count::operator<( weak_count const & r ) const noexcept 12329: { 12329: return std::less()( pi_, r.pi_ ); 12329: } 12329: 12329: } 12329: 12329: } 12329: 12329: 12329: #pragma GCC diagnostic pop 12329: # 18 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 2 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/sp_convertible.hpp" 1 3 4 12329: # 35 "/usr/include/boost/smart_ptr/detail/sp_convertible.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: template< class Y, class T > struct sp_convertible 12329: { 12329: typedef char (&yes) [1]; 12329: typedef char (&no) [2]; 12329: 12329: static yes f( T* ); 12329: static no f( ... ); 12329: 12329: enum _vt { value = sizeof( (f)( static_cast(0) ) ) == sizeof(yes) }; 12329: }; 12329: 12329: template< class Y, class T > struct sp_convertible< Y, T[] > 12329: { 12329: enum _vt { value = false }; 12329: }; 12329: 12329: template< class Y, class T > struct sp_convertible< Y[], T[] > 12329: { 12329: enum _vt { value = sp_convertible< Y[1], T[1] >::value }; 12329: }; 12329: 12329: template< class Y, std::size_t N, class T > struct sp_convertible< Y[N], T[] > 12329: { 12329: enum _vt { value = sp_convertible< Y[1], T[1] >::value }; 12329: }; 12329: 12329: struct sp_empty 12329: { 12329: }; 12329: 12329: template< bool > struct sp_enable_if_convertible_impl; 12329: 12329: template<> struct sp_enable_if_convertible_impl 12329: { 12329: typedef sp_empty type; 12329: }; 12329: 12329: template<> struct sp_enable_if_convertible_impl 12329: { 12329: }; 12329: 12329: template< class Y, class T > struct sp_enable_if_convertible: public sp_enable_if_convertible_impl< sp_convertible< Y, T >::value > 12329: { 12329: }; 12329: 12329: } 12329: 12329: } 12329: # 19 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 2 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/sp_nullptr_t.hpp" 1 3 4 12329: # 23 "/usr/include/boost/smart_ptr/detail/sp_nullptr_t.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: typedef std::nullptr_t sp_nullptr_t; 12329: 12329: 12329: 12329: } 12329: 12329: } 12329: # 20 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/assert.hpp" 1 3 4 12329: # 58 "/usr/include/boost/assert.hpp" 3 4 12329: # 1 "/usr/include/assert.h" 1 3 4 12329: # 59 "/usr/include/boost/assert.hpp" 2 3 4 12329: # 25 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp" 1 3 4 12329: # 25 "/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp" 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/spinlock.hpp" 1 3 4 12329: # 42 "/usr/include/boost/smart_ptr/detail/spinlock.hpp" 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp" 1 3 4 12329: # 14 "/usr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp" 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/yield_k.hpp" 1 3 4 12329: # 22 "/usr/include/boost/smart_ptr/detail/yield_k.hpp" 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/sp_thread_pause.hpp" 1 3 4 12329: # 36 "/usr/include/boost/smart_ptr/detail/sp_thread_pause.hpp" 3 4 12329: namespace boost 12329: { 12329: namespace detail 12329: { 12329: 12329: inline void sp_thread_pause() 12329: { 12329: 12329: } 12329: 12329: } 12329: } 12329: # 23 "/usr/include/boost/smart_ptr/detail/yield_k.hpp" 2 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/sp_thread_sleep.hpp" 1 3 4 12329: # 22 "/usr/include/boost/smart_ptr/detail/sp_thread_sleep.hpp" 3 4 12329: # 1 "/usr/include/boost/config/pragma_message.hpp" 1 3 4 12329: # 23 "/usr/include/boost/smart_ptr/detail/sp_thread_sleep.hpp" 2 3 4 12329: # 55 "/usr/include/boost/smart_ptr/detail/sp_thread_sleep.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: inline void sp_thread_sleep() 12329: { 12329: 12329: struct timespec rqtp = { 0, 0 }; 12329: 12329: 12329: 12329: 12329: rqtp.tv_sec = 0; 12329: rqtp.tv_nsec = 1000; 12329: 12329: nanosleep( &rqtp, 0 ); 12329: } 12329: 12329: } 12329: 12329: } 12329: # 24 "/usr/include/boost/smart_ptr/detail/yield_k.hpp" 2 3 4 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: inline void yield( unsigned k ) 12329: { 12329: 12329: 12329: 12329: if( k == 0 ) 12329: { 12329: sp_thread_pause(); 12329: } 12329: else 12329: { 12329: sp_thread_sleep(); 12329: } 12329: } 12329: 12329: } 12329: 12329: } 12329: # 15 "/usr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp" 2 3 4 12329: # 23 "/usr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: class spinlock 12329: { 12329: public: 12329: 12329: unsigned char v_; 12329: 12329: public: 12329: 12329: bool try_lock() 12329: { 12329: return __atomic_test_and_set( &v_, 2 ) == 0; 12329: } 12329: 12329: void lock() 12329: { 12329: for( unsigned k = 0; !try_lock(); ++k ) 12329: { 12329: boost::detail::yield( k ); 12329: } 12329: } 12329: 12329: void unlock() 12329: { 12329: __atomic_clear( &v_, 3 ); 12329: } 12329: 12329: public: 12329: 12329: class scoped_lock 12329: { 12329: private: 12329: 12329: spinlock & sp_; 12329: 12329: scoped_lock( scoped_lock const & ); 12329: scoped_lock & operator=( scoped_lock const & ); 12329: 12329: public: 12329: 12329: explicit scoped_lock( spinlock & sp ): sp_( sp ) 12329: { 12329: sp.lock(); 12329: } 12329: 12329: ~scoped_lock() 12329: { 12329: sp_.unlock(); 12329: } 12329: }; 12329: }; 12329: 12329: } 12329: } 12329: # 43 "/usr/include/boost/smart_ptr/detail/spinlock.hpp" 2 3 4 12329: # 26 "/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp" 2 3 4 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: template< int M > class spinlock_pool 12329: { 12329: private: 12329: 12329: static spinlock pool_[ 41 ]; 12329: 12329: public: 12329: 12329: static spinlock & spinlock_for( void const * pv ) 12329: { 12329: 12329: 12329: 12329: std::size_t i = reinterpret_cast< std::size_t >( pv ) % 41; 12329: 12329: return pool_[ i ]; 12329: } 12329: 12329: class scoped_lock 12329: { 12329: private: 12329: 12329: spinlock & sp_; 12329: 12329: scoped_lock( scoped_lock const & ); 12329: scoped_lock & operator=( scoped_lock const & ); 12329: 12329: public: 12329: 12329: explicit scoped_lock( void const * pv ): sp_( spinlock_for( pv ) ) 12329: { 12329: sp_.lock(); 12329: } 12329: 12329: ~scoped_lock() 12329: { 12329: sp_.unlock(); 12329: } 12329: }; 12329: }; 12329: 12329: template< int M > spinlock spinlock_pool< M >::pool_[ 41 ] = 12329: { 12329: {0}, {0}, {0}, {0}, {0}, 12329: {0}, {0}, {0}, {0}, {0}, 12329: {0}, {0}, {0}, {0}, {0}, 12329: {0}, {0}, {0}, {0}, {0}, 12329: {0}, {0}, {0}, {0}, {0}, 12329: {0}, {0}, {0}, {0}, {0}, 12329: {0}, {0}, {0}, {0}, {0}, 12329: {0}, {0}, {0}, {0}, {0}, 12329: {0} 12329: }; 12329: 12329: } 12329: } 12329: # 30 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 2 3 4 12329: # 47 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 3 4 12329: #pragma GCC diagnostic push 12329: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: template class shared_ptr; 12329: template class weak_ptr; 12329: template class enable_shared_from_this; 12329: class enable_shared_from_raw; 12329: 12329: namespace movelib 12329: { 12329: 12329: template< class T, class D > class unique_ptr; 12329: 12329: } 12329: 12329: namespace detail 12329: { 12329: 12329: 12329: 12329: template< class T > struct sp_element 12329: { 12329: typedef T type; 12329: }; 12329: 12329: 12329: 12329: template< class T > struct sp_element< T[] > 12329: { 12329: typedef T type; 12329: }; 12329: 12329: 12329: 12329: template< class T, std::size_t N > struct sp_element< T[N] > 12329: { 12329: typedef T type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template< class T > struct sp_dereference 12329: { 12329: typedef T & type; 12329: }; 12329: 12329: template<> struct sp_dereference< void > 12329: { 12329: typedef void type; 12329: }; 12329: 12329: 12329: 12329: template<> struct sp_dereference< void const > 12329: { 12329: typedef void type; 12329: }; 12329: 12329: template<> struct sp_dereference< void volatile > 12329: { 12329: typedef void type; 12329: }; 12329: 12329: template<> struct sp_dereference< void const volatile > 12329: { 12329: typedef void type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template< class T > struct sp_dereference< T[] > 12329: { 12329: typedef void type; 12329: }; 12329: 12329: 12329: 12329: template< class T, std::size_t N > struct sp_dereference< T[N] > 12329: { 12329: typedef void type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template< class T > struct sp_member_access 12329: { 12329: typedef T * type; 12329: }; 12329: 12329: 12329: 12329: template< class T > struct sp_member_access< T[] > 12329: { 12329: typedef void type; 12329: }; 12329: 12329: 12329: 12329: template< class T, std::size_t N > struct sp_member_access< T[N] > 12329: { 12329: typedef void type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template< class T > struct sp_array_access 12329: { 12329: typedef void type; 12329: }; 12329: 12329: 12329: 12329: template< class T > struct sp_array_access< T[] > 12329: { 12329: typedef T & type; 12329: }; 12329: 12329: 12329: 12329: template< class T, std::size_t N > struct sp_array_access< T[N] > 12329: { 12329: typedef T & type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template< class T > struct sp_extent 12329: { 12329: enum _vt { value = 0 }; 12329: }; 12329: 12329: 12329: 12329: template< class T, std::size_t N > struct sp_extent< T[N] > 12329: { 12329: enum _vt { value = N }; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template< class X, class Y, class T > inline void sp_enable_shared_from_this( boost::shared_ptr const * ppx, Y const * py, boost::enable_shared_from_this< T > const * pe ) 12329: { 12329: if( pe != 0 ) 12329: { 12329: pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) ); 12329: } 12329: } 12329: 12329: template< class X, class Y > inline void sp_enable_shared_from_this( boost::shared_ptr * ppx, Y const * py, boost::enable_shared_from_raw const * pe ); 12329: # 236 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 3 4 12329: inline void sp_enable_shared_from_this( ... ) 12329: { 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template< class T, class R > struct sp_enable_if_auto_ptr 12329: { 12329: }; 12329: 12329: template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R > 12329: { 12329: typedef R type; 12329: }; 12329: 12329: 12329: 12329: 12329: 12329: template< class Y, class T > inline void sp_assert_convertible() noexcept 12329: { 12329: 12329: 12329: 12329: typedef char tmp[ sp_convertible< Y, T >::value? 1: -1 ]; 12329: (void)sizeof( tmp ); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: } 12329: 12329: 12329: 12329: template< class T, class Y > inline void sp_pointer_construct( boost::shared_ptr< T > * ppx, Y * p, boost::detail::shared_count & pn ) 12329: { 12329: boost::detail::shared_count( p ).swap( pn ); 12329: boost::detail::sp_enable_shared_from_this( ppx, p, p ); 12329: } 12329: 12329: 12329: 12329: template< class T, class Y > inline void sp_pointer_construct( boost::shared_ptr< T[] > * , Y * p, boost::detail::shared_count & pn ) 12329: { 12329: sp_assert_convertible< Y[], T[] >(); 12329: boost::detail::shared_count( p, boost::checked_array_deleter< T >() ).swap( pn ); 12329: } 12329: 12329: template< class T, std::size_t N, class Y > inline void sp_pointer_construct( boost::shared_ptr< T[N] > * , Y * p, boost::detail::shared_count & pn ) 12329: { 12329: sp_assert_convertible< Y[N], T[N] >(); 12329: boost::detail::shared_count( p, boost::checked_array_deleter< T >() ).swap( pn ); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template< class T, class Y > inline void sp_deleter_construct( boost::shared_ptr< T > * ppx, Y * p ) 12329: { 12329: boost::detail::sp_enable_shared_from_this( ppx, p, p ); 12329: } 12329: 12329: 12329: 12329: template< class T, class Y > inline void sp_deleter_construct( boost::shared_ptr< T[] > * , Y * ) 12329: { 12329: sp_assert_convertible< Y[], T[] >(); 12329: } 12329: 12329: template< class T, std::size_t N, class Y > inline void sp_deleter_construct( boost::shared_ptr< T[N] > * , Y * ) 12329: { 12329: sp_assert_convertible< Y[N], T[N] >(); 12329: } 12329: 12329: 12329: 12329: struct sp_internal_constructor_tag 12329: { 12329: }; 12329: 12329: } 12329: # 335 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 3 4 12329: template class shared_ptr 12329: { 12329: private: 12329: 12329: 12329: typedef shared_ptr this_type; 12329: 12329: public: 12329: 12329: typedef typename boost::detail::sp_element< T >::type element_type; 12329: 12329: constexpr shared_ptr() noexcept : px( 0 ), pn() 12329: { 12329: } 12329: 12329: 12329: 12329: constexpr shared_ptr( boost::detail::sp_nullptr_t ) noexcept : px( 0 ), pn() 12329: { 12329: } 12329: 12329: 12329: 12329: constexpr shared_ptr( boost::detail::sp_internal_constructor_tag, element_type * px_, boost::detail::shared_count const & pn_ ) noexcept : px( px_ ), pn( pn_ ) 12329: { 12329: } 12329: 12329: 12329: 12329: constexpr shared_ptr( boost::detail::sp_internal_constructor_tag, element_type * px_, boost::detail::shared_count && pn_ ) noexcept : px( px_ ), pn( std::move( pn_ ) ) 12329: { 12329: } 12329: 12329: 12329: 12329: template 12329: explicit shared_ptr( Y * p ): px( p ), pn() 12329: { 12329: boost::detail::sp_pointer_construct( this, p, pn ); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template shared_ptr( Y * p, D d ): px( p ), pn( p, d ) 12329: { 12329: boost::detail::sp_deleter_construct( this, p ); 12329: } 12329: 12329: 12329: 12329: template shared_ptr( boost::detail::sp_nullptr_t p, D d ): px( p ), pn( p, d ) 12329: { 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a ) 12329: { 12329: boost::detail::sp_deleter_construct( this, p ); 12329: } 12329: 12329: 12329: 12329: template shared_ptr( boost::detail::sp_nullptr_t p, D d, A a ): px( p ), pn( p, d, a ) 12329: { 12329: } 12329: # 416 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 3 4 12329: shared_ptr( shared_ptr const & r ) noexcept : px( r.px ), pn( r.pn ) 12329: { 12329: } 12329: 12329: 12329: 12329: template 12329: explicit shared_ptr( weak_ptr const & r ): pn( r.pn ) 12329: { 12329: boost::detail::sp_assert_convertible< Y, T >(); 12329: 12329: 12329: px = r.px; 12329: } 12329: 12329: template 12329: shared_ptr( weak_ptr const & r, boost::detail::sp_nothrow_tag ) 12329: noexcept : px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() ) 12329: { 12329: if( !pn.empty() ) 12329: { 12329: px = r.px; 12329: } 12329: } 12329: 12329: template 12329: 12329: 12329: shared_ptr( shared_ptr const & r, typename boost::detail::sp_enable_if_convertible::type = boost::detail::sp_empty() ) 12329: 12329: 12329: 12329: 12329: 12329: 12329: noexcept : px( r.px ), pn( r.pn ) 12329: { 12329: boost::detail::sp_assert_convertible< Y, T >(); 12329: } 12329: 12329: 12329: template< class Y > 12329: shared_ptr( shared_ptr const & r, element_type * p ) noexcept : px( p ), pn( r.pn ) 12329: { 12329: } 12329: 12329: 12329: 12329: template 12329: explicit shared_ptr( std::auto_ptr & r ): px(r.get()), pn() 12329: { 12329: boost::detail::sp_assert_convertible< Y, T >(); 12329: 12329: Y * tmp = r.get(); 12329: pn = boost::detail::shared_count( r ); 12329: 12329: boost::detail::sp_deleter_construct( this, tmp ); 12329: } 12329: 12329: 12329: 12329: template 12329: shared_ptr( std::auto_ptr && r ): px(r.get()), pn() 12329: { 12329: boost::detail::sp_assert_convertible< Y, T >(); 12329: 12329: Y * tmp = r.get(); 12329: pn = boost::detail::shared_count( r ); 12329: 12329: boost::detail::sp_deleter_construct( this, tmp ); 12329: } 12329: # 509 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 3 4 12329: template< class Y, class D > 12329: shared_ptr( std::unique_ptr< Y, D > && r ): px( r.get() ), pn() 12329: { 12329: boost::detail::sp_assert_convertible< Y, T >(); 12329: 12329: typename std::unique_ptr< Y, D >::pointer tmp = r.get(); 12329: 12329: if( tmp != 0 ) 12329: { 12329: pn = boost::detail::shared_count( r ); 12329: boost::detail::sp_deleter_construct( this, tmp ); 12329: } 12329: } 12329: 12329: 12329: 12329: template< class Y, class D > 12329: shared_ptr( boost::movelib::unique_ptr< Y, D > r ): px( r.get() ), pn() 12329: { 12329: boost::detail::sp_assert_convertible< Y, T >(); 12329: 12329: typename boost::movelib::unique_ptr< Y, D >::pointer tmp = r.get(); 12329: 12329: if( tmp != 0 ) 12329: { 12329: pn = boost::detail::shared_count( r ); 12329: boost::detail::sp_deleter_construct( this, tmp ); 12329: } 12329: } 12329: 12329: 12329: 12329: shared_ptr & operator=( shared_ptr const & r ) noexcept 12329: { 12329: this_type(r).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: template 12329: shared_ptr & operator=(shared_ptr const & r) noexcept 12329: { 12329: this_type(r).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template 12329: shared_ptr & operator=( std::auto_ptr & r ) 12329: { 12329: this_type( r ).swap( *this ); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: template 12329: shared_ptr & operator=( std::auto_ptr && r ) 12329: { 12329: this_type( static_cast< std::auto_ptr && >( r ) ).swap( *this ); 12329: return *this; 12329: } 12329: # 591 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 3 4 12329: template 12329: shared_ptr & operator=( std::unique_ptr && r ) 12329: { 12329: this_type( static_cast< std::unique_ptr && >( r ) ).swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: template 12329: shared_ptr & operator=( boost::movelib::unique_ptr r ) 12329: { 12329: 12329: 12329: boost::detail::sp_assert_convertible< Y, T >(); 12329: 12329: typename boost::movelib::unique_ptr< Y, D >::pointer p = r.get(); 12329: 12329: shared_ptr tmp; 12329: 12329: if( p != 0 ) 12329: { 12329: tmp.px = p; 12329: tmp.pn = boost::detail::shared_count( r ); 12329: 12329: boost::detail::sp_deleter_construct( &tmp, p ); 12329: } 12329: 12329: tmp.swap( *this ); 12329: 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: shared_ptr( shared_ptr && r ) noexcept : px( r.px ), pn() 12329: { 12329: pn.swap( r.pn ); 12329: r.px = 0; 12329: } 12329: 12329: template 12329: 12329: 12329: shared_ptr( shared_ptr && r, typename boost::detail::sp_enable_if_convertible::type = boost::detail::sp_empty() ) 12329: 12329: 12329: 12329: 12329: 12329: 12329: noexcept : px( r.px ), pn() 12329: { 12329: boost::detail::sp_assert_convertible< Y, T >(); 12329: 12329: pn.swap( r.pn ); 12329: r.px = 0; 12329: } 12329: 12329: shared_ptr & operator=( shared_ptr && r ) noexcept 12329: { 12329: this_type( static_cast< shared_ptr && >( r ) ).swap( *this ); 12329: return *this; 12329: } 12329: 12329: template 12329: shared_ptr & operator=( shared_ptr && r ) noexcept 12329: { 12329: this_type( static_cast< shared_ptr && >( r ) ).swap( *this ); 12329: return *this; 12329: } 12329: 12329: 12329: template 12329: shared_ptr( shared_ptr && r, element_type * p ) noexcept : px( p ), pn() 12329: { 12329: pn.swap( r.pn ); 12329: r.px = 0; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: shared_ptr & operator=( boost::detail::sp_nullptr_t ) noexcept 12329: { 12329: this_type().swap(*this); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: void reset() noexcept 12329: { 12329: this_type().swap(*this); 12329: } 12329: 12329: template void reset( Y * p ) 12329: { 12329: (static_cast (0)); 12329: this_type( p ).swap( *this ); 12329: } 12329: 12329: template void reset( Y * p, D d ) 12329: { 12329: this_type( p, d ).swap( *this ); 12329: } 12329: 12329: template void reset( Y * p, D d, A a ) 12329: { 12329: this_type( p, d, a ).swap( *this ); 12329: } 12329: 12329: template void reset( shared_ptr const & r, element_type * p ) noexcept 12329: { 12329: this_type( r, p ).swap( *this ); 12329: } 12329: 12329: 12329: 12329: template void reset( shared_ptr && r, element_type * p ) noexcept 12329: { 12329: this_type( static_cast< shared_ptr && >( r ), p ).swap( *this ); 12329: } 12329: 12329: 12329: 12329: typename boost::detail::sp_dereference< T >::type operator* () const noexcept 12329: { 12329: (static_cast (0)); 12329: return *px; 12329: } 12329: 12329: typename boost::detail::sp_member_access< T >::type operator-> () const noexcept 12329: { 12329: (static_cast (0)); 12329: return px; 12329: } 12329: 12329: typename boost::detail::sp_array_access< T >::type operator[] ( std::ptrdiff_t i ) const noexcept 12329: { 12329: (static_cast (0)); 12329: (static_cast (0)); 12329: 12329: return static_cast< typename boost::detail::sp_array_access< T >::type >( px[ i ] ); 12329: } 12329: 12329: element_type * get() const noexcept 12329: { 12329: return px; 12329: } 12329: 12329: 12329: # 1 "/usr/include/boost/smart_ptr/detail/operator_bool.hpp" 1 3 4 12329: # 12 "/usr/include/boost/smart_ptr/detail/operator_bool.hpp" 3 4 12329: explicit operator bool () const noexcept 12329: { 12329: return px != 0; 12329: } 12329: # 61 "/usr/include/boost/smart_ptr/detail/operator_bool.hpp" 3 4 12329: bool operator! () const noexcept 12329: { 12329: return px == 0; 12329: } 12329: # 747 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 2 3 4 12329: 12329: bool unique() const noexcept 12329: { 12329: return pn.unique(); 12329: } 12329: 12329: long use_count() const noexcept 12329: { 12329: return pn.use_count(); 12329: } 12329: 12329: void swap( shared_ptr & other ) noexcept 12329: { 12329: std::swap(px, other.px); 12329: pn.swap(other.pn); 12329: } 12329: 12329: template bool owner_before( shared_ptr const & rhs ) const noexcept 12329: { 12329: return pn < rhs.pn; 12329: } 12329: 12329: template bool owner_before( weak_ptr const & rhs ) const noexcept 12329: { 12329: return pn < rhs.pn; 12329: } 12329: 12329: template bool owner_equals( shared_ptr const & rhs ) const noexcept 12329: { 12329: return pn == rhs.pn; 12329: } 12329: 12329: template bool owner_equals( weak_ptr const & rhs ) const noexcept 12329: { 12329: return pn == rhs.pn; 12329: } 12329: 12329: std::size_t owner_hash_value() const noexcept 12329: { 12329: return pn.hash_value(); 12329: } 12329: 12329: void * _internal_get_deleter( boost::detail::sp_typeinfo_ const & ti ) const noexcept 12329: { 12329: return pn.get_deleter( ti ); 12329: } 12329: 12329: void * _internal_get_local_deleter( boost::detail::sp_typeinfo_ const & ti ) const noexcept 12329: { 12329: return pn.get_local_deleter( ti ); 12329: } 12329: 12329: void * _internal_get_untyped_deleter() const noexcept 12329: { 12329: return pn.get_untyped_deleter(); 12329: } 12329: 12329: bool _internal_equiv( shared_ptr const & r ) const noexcept 12329: { 12329: return px == r.px && pn == r.pn; 12329: } 12329: 12329: boost::detail::shared_count _internal_count() const noexcept 12329: { 12329: return pn; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: 12329: private: 12329: 12329: template friend class shared_ptr; 12329: template friend class weak_ptr; 12329: 12329: 12329: 12329: 12329: element_type * px; 12329: boost::detail::shared_count pn; 12329: 12329: }; 12329: 12329: template inline bool operator==(shared_ptr const & a, shared_ptr const & b) noexcept 12329: { 12329: return a.get() == b.get(); 12329: } 12329: 12329: template inline bool operator!=(shared_ptr const & a, shared_ptr const & b) noexcept 12329: { 12329: return a.get() != b.get(); 12329: } 12329: # 855 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 3 4 12329: template inline bool operator==( shared_ptr const & p, boost::detail::sp_nullptr_t ) noexcept 12329: { 12329: return p.get() == 0; 12329: } 12329: 12329: template inline bool operator==( boost::detail::sp_nullptr_t, shared_ptr const & p ) noexcept 12329: { 12329: return p.get() == 0; 12329: } 12329: 12329: template inline bool operator!=( shared_ptr const & p, boost::detail::sp_nullptr_t ) noexcept 12329: { 12329: return p.get() != 0; 12329: } 12329: 12329: template inline bool operator!=( boost::detail::sp_nullptr_t, shared_ptr const & p ) noexcept 12329: { 12329: return p.get() != 0; 12329: } 12329: 12329: 12329: 12329: template inline bool operator<(shared_ptr const & a, shared_ptr const & b) noexcept 12329: { 12329: return a.owner_before( b ); 12329: } 12329: 12329: template inline void swap(shared_ptr & a, shared_ptr & b) noexcept 12329: { 12329: a.swap(b); 12329: } 12329: 12329: template shared_ptr static_pointer_cast( shared_ptr const & r ) noexcept 12329: { 12329: (void) static_cast< T* >( static_cast< U* >( 0 ) ); 12329: 12329: typedef typename shared_ptr::element_type E; 12329: 12329: E * p = static_cast< E* >( r.get() ); 12329: return shared_ptr( r, p ); 12329: } 12329: 12329: template shared_ptr const_pointer_cast( shared_ptr const & r ) noexcept 12329: { 12329: (void) const_cast< T* >( static_cast< U* >( 0 ) ); 12329: 12329: typedef typename shared_ptr::element_type E; 12329: 12329: E * p = const_cast< E* >( r.get() ); 12329: return shared_ptr( r, p ); 12329: } 12329: 12329: template shared_ptr dynamic_pointer_cast( shared_ptr const & r ) noexcept 12329: { 12329: (void) dynamic_cast< T* >( static_cast< U* >( 0 ) ); 12329: 12329: typedef typename shared_ptr::element_type E; 12329: 12329: E * p = dynamic_cast< E* >( r.get() ); 12329: return p? shared_ptr( r, p ): shared_ptr(); 12329: } 12329: 12329: template shared_ptr reinterpret_pointer_cast( shared_ptr const & r ) noexcept 12329: { 12329: (void) reinterpret_cast< T* >( static_cast< U* >( 0 ) ); 12329: 12329: typedef typename shared_ptr::element_type E; 12329: 12329: E * p = reinterpret_cast< E* >( r.get() ); 12329: return shared_ptr( r, p ); 12329: } 12329: 12329: 12329: 12329: template shared_ptr static_pointer_cast( shared_ptr && r ) noexcept 12329: { 12329: (void) static_cast< T* >( static_cast< U* >( 0 ) ); 12329: 12329: typedef typename shared_ptr::element_type E; 12329: 12329: E * p = static_cast< E* >( r.get() ); 12329: return shared_ptr( std::move(r), p ); 12329: } 12329: 12329: template shared_ptr const_pointer_cast( shared_ptr && r ) noexcept 12329: { 12329: (void) const_cast< T* >( static_cast< U* >( 0 ) ); 12329: 12329: typedef typename shared_ptr::element_type E; 12329: 12329: E * p = const_cast< E* >( r.get() ); 12329: return shared_ptr( std::move(r), p ); 12329: } 12329: 12329: template shared_ptr dynamic_pointer_cast( shared_ptr && r ) noexcept 12329: { 12329: (void) dynamic_cast< T* >( static_cast< U* >( 0 ) ); 12329: 12329: typedef typename shared_ptr::element_type E; 12329: 12329: E * p = dynamic_cast< E* >( r.get() ); 12329: return p? shared_ptr( std::move(r), p ): shared_ptr(); 12329: } 12329: 12329: template shared_ptr reinterpret_pointer_cast( shared_ptr && r ) noexcept 12329: { 12329: (void) reinterpret_cast< T* >( static_cast< U* >( 0 ) ); 12329: 12329: typedef typename shared_ptr::element_type E; 12329: 12329: E * p = reinterpret_cast< E* >( r.get() ); 12329: return shared_ptr( std::move(r), p ); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template inline typename shared_ptr::element_type * get_pointer(shared_ptr const & p) noexcept 12329: { 12329: return p.get(); 12329: } 12329: # 1000 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 3 4 12329: template std::basic_ostream & operator<< (std::basic_ostream & os, shared_ptr const & p) 12329: 12329: { 12329: os << p.get(); 12329: return os; 12329: } 12329: # 1015 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 3 4 12329: namespace detail 12329: { 12329: 12329: template D * basic_get_deleter( shared_ptr const & p ) noexcept 12329: { 12329: return static_cast( p._internal_get_deleter(typeid(D)) ); 12329: } 12329: 12329: template D * basic_get_local_deleter( D *, shared_ptr const & p ) noexcept; 12329: template D const * basic_get_local_deleter( D const *, shared_ptr const & p ) noexcept; 12329: 12329: class esft2_deleter_wrapper 12329: { 12329: private: 12329: 12329: shared_ptr deleter_; 12329: 12329: public: 12329: 12329: esft2_deleter_wrapper() noexcept 12329: { 12329: } 12329: 12329: template< class T > void set_deleter( shared_ptr const & deleter ) noexcept 12329: { 12329: deleter_ = deleter; 12329: } 12329: 12329: template D* get_deleter() const noexcept 12329: { 12329: return boost::detail::basic_get_deleter( deleter_ ); 12329: } 12329: 12329: template< class T> void operator()( T* ) noexcept 12329: { 12329: (static_cast (0)); 12329: deleter_.reset(); 12329: } 12329: }; 12329: 12329: } 12329: 12329: template D * get_deleter( shared_ptr const & p ) noexcept 12329: { 12329: D * d = boost::detail::basic_get_deleter( p ); 12329: 12329: if( d == 0 ) 12329: { 12329: d = boost::detail::basic_get_local_deleter( d, p ); 12329: } 12329: 12329: if( d == 0 ) 12329: { 12329: boost::detail::esft2_deleter_wrapper *del_wrapper = boost::detail::basic_get_deleter(p); 12329: 12329: 12329: if(del_wrapper) d = del_wrapper->::boost::detail::esft2_deleter_wrapper::get_deleter(); 12329: } 12329: 12329: return d; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template inline bool atomic_is_lock_free( shared_ptr const * ) noexcept 12329: { 12329: return false; 12329: } 12329: 12329: template shared_ptr atomic_load( shared_ptr const * p ) noexcept 12329: { 12329: boost::detail::spinlock_pool<2>::scoped_lock lock( p ); 12329: return *p; 12329: } 12329: 12329: template inline shared_ptr atomic_load_explicit( shared_ptr const * p, M ) noexcept 12329: { 12329: return atomic_load( p ); 12329: } 12329: 12329: template void atomic_store( shared_ptr * p, shared_ptr r ) noexcept 12329: { 12329: boost::detail::spinlock_pool<2>::scoped_lock lock( p ); 12329: p->swap( r ); 12329: } 12329: 12329: template inline void atomic_store_explicit( shared_ptr * p, shared_ptr r, M ) noexcept 12329: { 12329: atomic_store( p, r ); 12329: } 12329: 12329: template shared_ptr atomic_exchange( shared_ptr * p, shared_ptr r ) noexcept 12329: { 12329: boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p ); 12329: 12329: sp.lock(); 12329: p->swap( r ); 12329: sp.unlock(); 12329: 12329: return r; 12329: } 12329: 12329: template shared_ptr inline atomic_exchange_explicit( shared_ptr * p, shared_ptr r, M ) noexcept 12329: { 12329: return atomic_exchange( p, r ); 12329: } 12329: 12329: template bool atomic_compare_exchange( shared_ptr * p, shared_ptr * v, shared_ptr w ) noexcept 12329: { 12329: boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p ); 12329: 12329: sp.lock(); 12329: 12329: if( p->_internal_equiv( *v ) ) 12329: { 12329: p->swap( w ); 12329: 12329: sp.unlock(); 12329: 12329: return true; 12329: } 12329: else 12329: { 12329: shared_ptr tmp( *p ); 12329: 12329: sp.unlock(); 12329: 12329: tmp.swap( *v ); 12329: return false; 12329: } 12329: } 12329: 12329: template inline bool atomic_compare_exchange_explicit( shared_ptr * p, shared_ptr * v, shared_ptr w, M, M ) noexcept 12329: { 12329: return atomic_compare_exchange( p, v, w ); 12329: } 12329: 12329: 12329: 12329: 12329: 12329: template< class T > struct hash; 12329: 12329: template< class T > std::size_t hash_value( boost::shared_ptr const & p ) noexcept 12329: { 12329: return boost::hash< typename boost::shared_ptr::element_type* >()( p.get() ); 12329: } 12329: 12329: } 12329: 12329: 12329: 12329: 12329: 12329: namespace std 12329: { 12329: 12329: template struct hash< ::boost::shared_ptr > 12329: { 12329: std::size_t operator()( ::boost::shared_ptr const & p ) const noexcept 12329: { 12329: return std::hash< typename ::boost::shared_ptr::element_type* >()( p.get() ); 12329: } 12329: }; 12329: 12329: } 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/smart_ptr/detail/local_sp_deleter.hpp" 1 3 4 12329: # 20 "/usr/include/boost/smart_ptr/detail/local_sp_deleter.hpp" 3 4 12329: # 1 "/usr/include/boost/smart_ptr/detail/local_counted_base.hpp" 1 3 4 12329: # 24 "/usr/include/boost/smart_ptr/detail/local_counted_base.hpp" 3 4 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: class __attribute__((__visibility__("default"))) local_counted_base 12329: { 12329: private: 12329: 12329: local_counted_base & operator= ( local_counted_base const & ); 12329: 12329: private: 12329: 12329: 12329: enum count_type { min_ = 0, initial_ = 1, max_ = 2147483647 }; 12329: 12329: count_type local_use_count_; 12329: 12329: public: 12329: 12329: constexpr local_counted_base() noexcept: local_use_count_( initial_ ) 12329: { 12329: } 12329: 12329: constexpr local_counted_base( local_counted_base const & ) noexcept: local_use_count_( initial_ ) 12329: { 12329: } 12329: 12329: virtual ~local_counted_base() 12329: { 12329: } 12329: 12329: virtual void local_cb_destroy() noexcept = 0; 12329: 12329: virtual boost::detail::shared_count local_cb_get_shared_count() const noexcept = 0; 12329: 12329: void add_ref() noexcept 12329: { 12329: # 73 "/usr/include/boost/smart_ptr/detail/local_counted_base.hpp" 3 4 12329: local_use_count_ = static_cast( local_use_count_ + 1 ); 12329: } 12329: 12329: void release() noexcept 12329: { 12329: local_use_count_ = static_cast( local_use_count_ - 1 ); 12329: 12329: if( local_use_count_ == 0 ) 12329: { 12329: local_cb_destroy(); 12329: } 12329: } 12329: 12329: long local_use_count() const noexcept 12329: { 12329: return local_use_count_; 12329: } 12329: }; 12329: 12329: class __attribute__((__visibility__("default"))) local_counted_impl: public local_counted_base 12329: { 12329: private: 12329: 12329: local_counted_impl( local_counted_impl const & ); 12329: 12329: private: 12329: 12329: shared_count pn_; 12329: 12329: public: 12329: 12329: explicit local_counted_impl( shared_count const& pn ) noexcept: pn_( pn ) 12329: { 12329: } 12329: 12329: 12329: 12329: explicit local_counted_impl( shared_count && pn ) noexcept: pn_( std::move(pn) ) 12329: { 12329: } 12329: 12329: 12329: 12329: void local_cb_destroy() noexcept override 12329: { 12329: delete this; 12329: } 12329: 12329: boost::detail::shared_count local_cb_get_shared_count() const noexcept override 12329: { 12329: return pn_; 12329: } 12329: }; 12329: 12329: class __attribute__((__visibility__("default"))) local_counted_impl_em: public local_counted_base 12329: { 12329: public: 12329: 12329: shared_count pn_; 12329: 12329: void local_cb_destroy() noexcept override 12329: { 12329: shared_count().swap( pn_ ); 12329: } 12329: 12329: boost::detail::shared_count local_cb_get_shared_count() const noexcept override 12329: { 12329: return pn_; 12329: } 12329: }; 12329: 12329: } 12329: 12329: } 12329: # 21 "/usr/include/boost/smart_ptr/detail/local_sp_deleter.hpp" 2 3 4 12329: 12329: 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: template class local_sp_deleter: public local_counted_impl_em 12329: { 12329: private: 12329: 12329: D d_; 12329: 12329: public: 12329: 12329: local_sp_deleter(): d_() 12329: { 12329: } 12329: 12329: explicit local_sp_deleter( D const& d ) noexcept: d_( d ) 12329: { 12329: } 12329: 12329: 12329: 12329: explicit local_sp_deleter( D&& d ) noexcept: d_( std::move(d) ) 12329: { 12329: } 12329: 12329: 12329: 12329: D& deleter() noexcept 12329: { 12329: return d_; 12329: } 12329: 12329: template void operator()( Y* p ) noexcept 12329: { 12329: d_( p ); 12329: } 12329: 12329: 12329: 12329: void operator()( boost::detail::sp_nullptr_t p ) noexcept 12329: { 12329: d_( p ); 12329: } 12329: 12329: 12329: }; 12329: 12329: template<> class local_sp_deleter 12329: { 12329: }; 12329: 12329: template D * get_local_deleter( local_sp_deleter * p ) noexcept 12329: { 12329: return &p->deleter(); 12329: } 12329: 12329: inline void * get_local_deleter( local_sp_deleter * ) noexcept 12329: { 12329: return 0; 12329: } 12329: 12329: } 12329: 12329: } 12329: # 1187 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 2 3 4 12329: 12329: namespace boost 12329: { 12329: 12329: namespace detail 12329: { 12329: 12329: template D * basic_get_local_deleter( D *, shared_ptr const & p ) noexcept 12329: { 12329: return static_cast( p._internal_get_local_deleter( typeid(local_sp_deleter) ) ); 12329: } 12329: 12329: template D const * basic_get_local_deleter( D const *, shared_ptr const & p ) noexcept 12329: { 12329: return static_cast( p._internal_get_local_deleter( typeid(local_sp_deleter) ) ); 12329: } 12329: 12329: } 12329: # 1213 "/usr/include/boost/smart_ptr/shared_ptr.hpp" 3 4 12329: } 12329: 12329: 12329: #pragma GCC diagnostic pop 12329: # 18 "/usr/include/boost/shared_ptr.hpp" 2 3 4 12329: # 17 "/usr/include/boost/program_options/options_description.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/c++/12/set" 1 3 4 12329: # 58 "/usr/include/c++/12/set" 3 4 12329: 12329: # 59 "/usr/include/c++/12/set" 3 12329: 12329: 12329: # 1 "/usr/include/c++/12/bits/stl_set.h" 1 3 12329: # 64 "/usr/include/c++/12/bits/stl_set.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: template 12329: class multiset; 12329: # 92 "/usr/include/c++/12/bits/stl_set.h" 3 12329: template, 12329: typename _Alloc = std::allocator<_Key> > 12329: class set 12329: { 12329: # 108 "/usr/include/c++/12/bits/stl_set.h" 3 12329: static_assert(is_same::type, _Key>::value, 12329: "std::set must have a non-const, non-volatile value_type"); 12329: 12329: static_assert(is_same::value, 12329: "std::set must have the same value_type as its allocator"); 12329: 12329: 12329: 12329: public: 12329: 12329: 12329: 12329: typedef _Key key_type; 12329: typedef _Key value_type; 12329: typedef _Compare key_compare; 12329: typedef _Compare value_compare; 12329: typedef _Alloc allocator_type; 12329: 12329: 12329: private: 12329: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 12329: rebind<_Key>::other _Key_alloc_type; 12329: 12329: typedef _Rb_tree, 12329: key_compare, _Key_alloc_type> _Rep_type; 12329: _Rep_type _M_t; 12329: 12329: typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; 12329: 12329: public: 12329: 12329: 12329: typedef typename _Alloc_traits::pointer pointer; 12329: typedef typename _Alloc_traits::const_pointer const_pointer; 12329: typedef typename _Alloc_traits::reference reference; 12329: typedef typename _Alloc_traits::const_reference const_reference; 12329: 12329: 12329: 12329: typedef typename _Rep_type::const_iterator iterator; 12329: typedef typename _Rep_type::const_iterator const_iterator; 12329: typedef typename _Rep_type::const_reverse_iterator reverse_iterator; 12329: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 12329: typedef typename _Rep_type::size_type size_type; 12329: typedef typename _Rep_type::difference_type difference_type; 12329: # 167 "/usr/include/c++/12/bits/stl_set.h" 3 12329: set() = default; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: set(const _Compare& __comp, 12329: const allocator_type& __a = allocator_type()) 12329: : _M_t(__comp, _Key_alloc_type(__a)) { } 12329: # 190 "/usr/include/c++/12/bits/stl_set.h" 3 12329: template 12329: set(_InputIterator __first, _InputIterator __last) 12329: : _M_t() 12329: { _M_t._M_insert_range_unique(__first, __last); } 12329: # 207 "/usr/include/c++/12/bits/stl_set.h" 3 12329: template 12329: set(_InputIterator __first, _InputIterator __last, 12329: const _Compare& __comp, 12329: const allocator_type& __a = allocator_type()) 12329: : _M_t(__comp, _Key_alloc_type(__a)) 12329: { _M_t._M_insert_range_unique(__first, __last); } 12329: # 223 "/usr/include/c++/12/bits/stl_set.h" 3 12329: set(const set&) = default; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: set(set&&) = default; 12329: # 243 "/usr/include/c++/12/bits/stl_set.h" 3 12329: set(initializer_list __l, 12329: const _Compare& __comp = _Compare(), 12329: const allocator_type& __a = allocator_type()) 12329: : _M_t(__comp, _Key_alloc_type(__a)) 12329: { _M_t._M_insert_range_unique(__l.begin(), __l.end()); } 12329: 12329: 12329: explicit 12329: set(const allocator_type& __a) 12329: : _M_t(_Key_alloc_type(__a)) { } 12329: 12329: 12329: set(const set& __x, const __type_identity_t& __a) 12329: : _M_t(__x._M_t, _Key_alloc_type(__a)) { } 12329: 12329: 12329: set(set&& __x, const __type_identity_t& __a) 12329: noexcept(is_nothrow_copy_constructible<_Compare>::value 12329: && _Alloc_traits::_S_always_equal()) 12329: : _M_t(std::move(__x._M_t), _Key_alloc_type(__a)) { } 12329: 12329: 12329: set(initializer_list __l, const allocator_type& __a) 12329: : _M_t(_Key_alloc_type(__a)) 12329: { _M_t._M_insert_range_unique(__l.begin(), __l.end()); } 12329: 12329: 12329: template 12329: set(_InputIterator __first, _InputIterator __last, 12329: const allocator_type& __a) 12329: : _M_t(_Key_alloc_type(__a)) 12329: { _M_t._M_insert_range_unique(__first, __last); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: ~set() = default; 12329: # 297 "/usr/include/c++/12/bits/stl_set.h" 3 12329: set& 12329: operator=(const set&) = default; 12329: 12329: 12329: set& 12329: operator=(set&&) = default; 12329: # 315 "/usr/include/c++/12/bits/stl_set.h" 3 12329: set& 12329: operator=(initializer_list __l) 12329: { 12329: _M_t._M_assign_unique(__l.begin(), __l.end()); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: key_compare 12329: key_comp() const 12329: { return _M_t.key_comp(); } 12329: 12329: value_compare 12329: value_comp() const 12329: { return _M_t.key_comp(); } 12329: 12329: allocator_type 12329: get_allocator() const noexcept 12329: { return allocator_type(_M_t.get_allocator()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: begin() const noexcept 12329: { return _M_t.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: end() const noexcept 12329: { return _M_t.end(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: rbegin() const noexcept 12329: { return _M_t.rbegin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: rend() const noexcept 12329: { return _M_t.rend(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: cbegin() const noexcept 12329: { return _M_t.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: cend() const noexcept 12329: { return _M_t.end(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: crbegin() const noexcept 12329: { return _M_t.rbegin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: crend() const noexcept 12329: { return _M_t.rend(); } 12329: 12329: 12329: 12329: bool 12329: empty() const noexcept 12329: { return _M_t.empty(); } 12329: 12329: 12329: size_type 12329: size() const noexcept 12329: { return _M_t.size(); } 12329: 12329: 12329: size_type 12329: max_size() const noexcept 12329: { return _M_t.max_size(); } 12329: # 440 "/usr/include/c++/12/bits/stl_set.h" 3 12329: void 12329: swap(set& __x) 12329: noexcept(__is_nothrow_swappable<_Compare>::value) 12329: { _M_t.swap(__x._M_t); } 12329: # 460 "/usr/include/c++/12/bits/stl_set.h" 3 12329: template 12329: std::pair 12329: emplace(_Args&&... __args) 12329: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 12329: # 486 "/usr/include/c++/12/bits/stl_set.h" 3 12329: template 12329: iterator 12329: emplace_hint(const_iterator __pos, _Args&&... __args) 12329: { 12329: return _M_t._M_emplace_hint_unique(__pos, 12329: std::forward<_Args>(__args)...); 12329: } 12329: # 508 "/usr/include/c++/12/bits/stl_set.h" 3 12329: std::pair 12329: insert(const value_type& __x) 12329: { 12329: std::pair __p = 12329: _M_t._M_insert_unique(__x); 12329: return std::pair(__p.first, __p.second); 12329: } 12329: 12329: 12329: std::pair 12329: insert(value_type&& __x) 12329: { 12329: std::pair __p = 12329: _M_t._M_insert_unique(std::move(__x)); 12329: return std::pair(__p.first, __p.second); 12329: } 12329: # 545 "/usr/include/c++/12/bits/stl_set.h" 3 12329: iterator 12329: insert(const_iterator __position, const value_type& __x) 12329: { return _M_t._M_insert_unique_(__position, __x); } 12329: 12329: 12329: iterator 12329: insert(const_iterator __position, value_type&& __x) 12329: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 12329: # 564 "/usr/include/c++/12/bits/stl_set.h" 3 12329: template 12329: void 12329: insert(_InputIterator __first, _InputIterator __last) 12329: { _M_t._M_insert_range_unique(__first, __last); } 12329: # 577 "/usr/include/c++/12/bits/stl_set.h" 3 12329: void 12329: insert(initializer_list __l) 12329: { this->insert(__l.begin(), __l.end()); } 12329: # 652 "/usr/include/c++/12/bits/stl_set.h" 3 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: iterator 12329: erase(const_iterator __position) 12329: { return _M_t.erase(__position); } 12329: # 683 "/usr/include/c++/12/bits/stl_set.h" 3 12329: size_type 12329: erase(const key_type& __x) 12329: { return _M_t.erase(__x); } 12329: # 704 "/usr/include/c++/12/bits/stl_set.h" 3 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: iterator 12329: erase(const_iterator __first, const_iterator __last) 12329: { return _M_t.erase(__first, __last); } 12329: # 732 "/usr/include/c++/12/bits/stl_set.h" 3 12329: void 12329: clear() noexcept 12329: { _M_t.clear(); } 12329: # 747 "/usr/include/c++/12/bits/stl_set.h" 3 12329: size_type 12329: count(const key_type& __x) const 12329: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 12329: 12329: 12329: template 12329: auto 12329: count(const _Kt& __x) const 12329: -> decltype(_M_t._M_count_tr(__x)) 12329: { return _M_t._M_count_tr(__x); } 12329: # 793 "/usr/include/c++/12/bits/stl_set.h" 3 12329: iterator 12329: find(const key_type& __x) 12329: { return _M_t.find(__x); } 12329: 12329: const_iterator 12329: find(const key_type& __x) const 12329: { return _M_t.find(__x); } 12329: 12329: 12329: template 12329: auto 12329: find(const _Kt& __x) 12329: -> decltype(iterator{_M_t._M_find_tr(__x)}) 12329: { return iterator{_M_t._M_find_tr(__x)}; } 12329: 12329: template 12329: auto 12329: find(const _Kt& __x) const 12329: -> decltype(const_iterator{_M_t._M_find_tr(__x)}) 12329: { return const_iterator{_M_t._M_find_tr(__x)}; } 12329: # 828 "/usr/include/c++/12/bits/stl_set.h" 3 12329: iterator 12329: lower_bound(const key_type& __x) 12329: { return _M_t.lower_bound(__x); } 12329: 12329: const_iterator 12329: lower_bound(const key_type& __x) const 12329: { return _M_t.lower_bound(__x); } 12329: 12329: 12329: template 12329: auto 12329: lower_bound(const _Kt& __x) 12329: -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) 12329: { return iterator(_M_t._M_lower_bound_tr(__x)); } 12329: 12329: template 12329: auto 12329: lower_bound(const _Kt& __x) const 12329: -> decltype(const_iterator(_M_t._M_lower_bound_tr(__x))) 12329: { return const_iterator(_M_t._M_lower_bound_tr(__x)); } 12329: # 858 "/usr/include/c++/12/bits/stl_set.h" 3 12329: iterator 12329: upper_bound(const key_type& __x) 12329: { return _M_t.upper_bound(__x); } 12329: 12329: const_iterator 12329: upper_bound(const key_type& __x) const 12329: { return _M_t.upper_bound(__x); } 12329: 12329: 12329: template 12329: auto 12329: upper_bound(const _Kt& __x) 12329: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 12329: { return iterator(_M_t._M_upper_bound_tr(__x)); } 12329: 12329: template 12329: auto 12329: upper_bound(const _Kt& __x) const 12329: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 12329: { return const_iterator(_M_t._M_upper_bound_tr(__x)); } 12329: # 897 "/usr/include/c++/12/bits/stl_set.h" 3 12329: std::pair 12329: equal_range(const key_type& __x) 12329: { return _M_t.equal_range(__x); } 12329: 12329: std::pair 12329: equal_range(const key_type& __x) const 12329: { return _M_t.equal_range(__x); } 12329: 12329: 12329: template 12329: auto 12329: equal_range(const _Kt& __x) 12329: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 12329: { return pair(_M_t._M_equal_range_tr(__x)); } 12329: 12329: template 12329: auto 12329: equal_range(const _Kt& __x) const 12329: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 12329: { return pair(_M_t._M_equal_range_tr(__x)); } 12329: 12329: 12329: 12329: template 12329: friend bool 12329: operator==(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: friend bool 12329: operator<(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); 12329: 12329: }; 12329: # 983 "/usr/include/c++/12/bits/stl_set.h" 3 12329: template 12329: inline bool 12329: operator==(const set<_Key, _Compare, _Alloc>& __x, 12329: const set<_Key, _Compare, _Alloc>& __y) 12329: { return __x._M_t == __y._M_t; } 12329: # 1021 "/usr/include/c++/12/bits/stl_set.h" 3 12329: template 12329: inline bool 12329: operator<(const set<_Key, _Compare, _Alloc>& __x, 12329: const set<_Key, _Compare, _Alloc>& __y) 12329: { return __x._M_t < __y._M_t; } 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(const set<_Key, _Compare, _Alloc>& __x, 12329: const set<_Key, _Compare, _Alloc>& __y) 12329: { return !(__x == __y); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>(const set<_Key, _Compare, _Alloc>& __x, 12329: const set<_Key, _Compare, _Alloc>& __y) 12329: { return __y < __x; } 12329: 12329: 12329: template 12329: inline bool 12329: operator<=(const set<_Key, _Compare, _Alloc>& __x, 12329: const set<_Key, _Compare, _Alloc>& __y) 12329: { return !(__y < __x); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>=(const set<_Key, _Compare, _Alloc>& __x, 12329: const set<_Key, _Compare, _Alloc>& __y) 12329: { return !(__x < __y); } 12329: 12329: 12329: 12329: template 12329: inline void 12329: swap(set<_Key, _Compare, _Alloc>& __x, set<_Key, _Compare, _Alloc>& __y) 12329: noexcept(noexcept(__x.swap(__y))) 12329: { __x.swap(__y); } 12329: 12329: 12329: # 1084 "/usr/include/c++/12/bits/stl_set.h" 3 12329: 12329: } 12329: # 62 "/usr/include/c++/12/set" 2 3 12329: # 1 "/usr/include/c++/12/bits/stl_multiset.h" 1 3 12329: # 64 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: namespace std __attribute__ ((__visibility__ ("default"))) 12329: { 12329: 12329: 12329: 12329: template 12329: class set; 12329: # 94 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: template , 12329: typename _Alloc = std::allocator<_Key> > 12329: class multiset 12329: { 12329: # 110 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: static_assert(is_same::type, _Key>::value, 12329: "std::multiset must have a non-const, non-volatile value_type"); 12329: 12329: static_assert(is_same::value, 12329: "std::multiset must have the same value_type as its allocator"); 12329: 12329: 12329: 12329: public: 12329: 12329: typedef _Key key_type; 12329: typedef _Key value_type; 12329: typedef _Compare key_compare; 12329: typedef _Compare value_compare; 12329: typedef _Alloc allocator_type; 12329: 12329: private: 12329: 12329: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 12329: rebind<_Key>::other _Key_alloc_type; 12329: 12329: typedef _Rb_tree, 12329: key_compare, _Key_alloc_type> _Rep_type; 12329: 12329: _Rep_type _M_t; 12329: 12329: typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; 12329: 12329: public: 12329: typedef typename _Alloc_traits::pointer pointer; 12329: typedef typename _Alloc_traits::const_pointer const_pointer; 12329: typedef typename _Alloc_traits::reference reference; 12329: typedef typename _Alloc_traits::const_reference const_reference; 12329: 12329: 12329: 12329: typedef typename _Rep_type::const_iterator iterator; 12329: typedef typename _Rep_type::const_iterator const_iterator; 12329: typedef typename _Rep_type::const_reverse_iterator reverse_iterator; 12329: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 12329: typedef typename _Rep_type::size_type size_type; 12329: typedef typename _Rep_type::difference_type difference_type; 12329: # 164 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: multiset() = default; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: explicit 12329: multiset(const _Compare& __comp, 12329: const allocator_type& __a = allocator_type()) 12329: : _M_t(__comp, _Key_alloc_type(__a)) { } 12329: # 186 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: template 12329: multiset(_InputIterator __first, _InputIterator __last) 12329: : _M_t() 12329: { _M_t._M_insert_range_equal(__first, __last); } 12329: # 202 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: template 12329: multiset(_InputIterator __first, _InputIterator __last, 12329: const _Compare& __comp, 12329: const allocator_type& __a = allocator_type()) 12329: : _M_t(__comp, _Key_alloc_type(__a)) 12329: { _M_t._M_insert_range_equal(__first, __last); } 12329: # 218 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: multiset(const multiset&) = default; 12329: # 227 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: multiset(multiset&&) = default; 12329: # 239 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: multiset(initializer_list __l, 12329: const _Compare& __comp = _Compare(), 12329: const allocator_type& __a = allocator_type()) 12329: : _M_t(__comp, _Key_alloc_type(__a)) 12329: { _M_t._M_insert_range_equal(__l.begin(), __l.end()); } 12329: 12329: 12329: explicit 12329: multiset(const allocator_type& __a) 12329: : _M_t(_Key_alloc_type(__a)) { } 12329: 12329: 12329: multiset(const multiset& __m, 12329: const __type_identity_t& __a) 12329: : _M_t(__m._M_t, _Key_alloc_type(__a)) { } 12329: 12329: 12329: multiset(multiset&& __m, const __type_identity_t& __a) 12329: noexcept(is_nothrow_copy_constructible<_Compare>::value 12329: && _Alloc_traits::_S_always_equal()) 12329: : _M_t(std::move(__m._M_t), _Key_alloc_type(__a)) { } 12329: 12329: 12329: multiset(initializer_list __l, const allocator_type& __a) 12329: : _M_t(_Key_alloc_type(__a)) 12329: { _M_t._M_insert_range_equal(__l.begin(), __l.end()); } 12329: 12329: 12329: template 12329: multiset(_InputIterator __first, _InputIterator __last, 12329: const allocator_type& __a) 12329: : _M_t(_Key_alloc_type(__a)) 12329: { _M_t._M_insert_range_equal(__first, __last); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: ~multiset() = default; 12329: # 294 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: multiset& 12329: operator=(const multiset&) = default; 12329: 12329: 12329: multiset& 12329: operator=(multiset&&) = default; 12329: # 312 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: multiset& 12329: operator=(initializer_list __l) 12329: { 12329: _M_t._M_assign_equal(__l.begin(), __l.end()); 12329: return *this; 12329: } 12329: 12329: 12329: 12329: 12329: 12329: key_compare 12329: key_comp() const 12329: { return _M_t.key_comp(); } 12329: 12329: value_compare 12329: value_comp() const 12329: { return _M_t.key_comp(); } 12329: 12329: allocator_type 12329: get_allocator() const noexcept 12329: { return allocator_type(_M_t.get_allocator()); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: begin() const noexcept 12329: { return _M_t.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: end() const noexcept 12329: { return _M_t.end(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: rbegin() const noexcept 12329: { return _M_t.rbegin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: rend() const noexcept 12329: { return _M_t.rend(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: cbegin() const noexcept 12329: { return _M_t.begin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: iterator 12329: cend() const noexcept 12329: { return _M_t.end(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: crbegin() const noexcept 12329: { return _M_t.rbegin(); } 12329: 12329: 12329: 12329: 12329: 12329: 12329: reverse_iterator 12329: crend() const noexcept 12329: { return _M_t.rend(); } 12329: 12329: 12329: 12329: bool 12329: empty() const noexcept 12329: { return _M_t.empty(); } 12329: 12329: 12329: size_type 12329: size() const noexcept 12329: { return _M_t.size(); } 12329: 12329: 12329: size_type 12329: max_size() const noexcept 12329: { return _M_t.max_size(); } 12329: # 437 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: void 12329: swap(multiset& __x) 12329: noexcept(__is_nothrow_swappable<_Compare>::value) 12329: { _M_t.swap(__x._M_t); } 12329: # 456 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: template 12329: iterator 12329: emplace(_Args&&... __args) 12329: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 12329: # 482 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: template 12329: iterator 12329: emplace_hint(const_iterator __pos, _Args&&... __args) 12329: { 12329: return _M_t._M_emplace_hint_equal(__pos, 12329: std::forward<_Args>(__args)...); 12329: } 12329: # 502 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: iterator 12329: insert(const value_type& __x) 12329: { return _M_t._M_insert_equal(__x); } 12329: 12329: 12329: iterator 12329: insert(value_type&& __x) 12329: { return _M_t._M_insert_equal(std::move(__x)); } 12329: # 532 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: iterator 12329: insert(const_iterator __position, const value_type& __x) 12329: { return _M_t._M_insert_equal_(__position, __x); } 12329: 12329: 12329: iterator 12329: insert(const_iterator __position, value_type&& __x) 12329: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 12329: # 550 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: template 12329: void 12329: insert(_InputIterator __first, _InputIterator __last) 12329: { _M_t._M_insert_range_equal(__first, __last); } 12329: # 563 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: void 12329: insert(initializer_list __l) 12329: { this->insert(__l.begin(), __l.end()); } 12329: # 638 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: iterator 12329: erase(const_iterator __position) 12329: { return _M_t.erase(__position); } 12329: # 669 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: size_type 12329: erase(const key_type& __x) 12329: { return _M_t.erase(__x); } 12329: # 690 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: __attribute ((__abi_tag__ ("cxx11"))) 12329: iterator 12329: erase(const_iterator __first, const_iterator __last) 12329: { return _M_t.erase(__first, __last); } 12329: # 718 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: void 12329: clear() noexcept 12329: { _M_t.clear(); } 12329: # 730 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: size_type 12329: count(const key_type& __x) const 12329: { return _M_t.count(__x); } 12329: 12329: 12329: template 12329: auto 12329: count(const _Kt& __x) const -> decltype(_M_t._M_count_tr(__x)) 12329: { return _M_t._M_count_tr(__x); } 12329: # 775 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: iterator 12329: find(const key_type& __x) 12329: { return _M_t.find(__x); } 12329: 12329: const_iterator 12329: find(const key_type& __x) const 12329: { return _M_t.find(__x); } 12329: 12329: 12329: template 12329: auto 12329: find(const _Kt& __x) 12329: -> decltype(iterator{_M_t._M_find_tr(__x)}) 12329: { return iterator{_M_t._M_find_tr(__x)}; } 12329: 12329: template 12329: auto 12329: find(const _Kt& __x) const 12329: -> decltype(const_iterator{_M_t._M_find_tr(__x)}) 12329: { return const_iterator{_M_t._M_find_tr(__x)}; } 12329: # 810 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: iterator 12329: lower_bound(const key_type& __x) 12329: { return _M_t.lower_bound(__x); } 12329: 12329: const_iterator 12329: lower_bound(const key_type& __x) const 12329: { return _M_t.lower_bound(__x); } 12329: 12329: 12329: template 12329: auto 12329: lower_bound(const _Kt& __x) 12329: -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) 12329: { return iterator(_M_t._M_lower_bound_tr(__x)); } 12329: 12329: template 12329: auto 12329: lower_bound(const _Kt& __x) const 12329: -> decltype(iterator(_M_t._M_lower_bound_tr(__x))) 12329: { return iterator(_M_t._M_lower_bound_tr(__x)); } 12329: # 840 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: iterator 12329: upper_bound(const key_type& __x) 12329: { return _M_t.upper_bound(__x); } 12329: 12329: const_iterator 12329: upper_bound(const key_type& __x) const 12329: { return _M_t.upper_bound(__x); } 12329: 12329: 12329: template 12329: auto 12329: upper_bound(const _Kt& __x) 12329: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 12329: { return iterator(_M_t._M_upper_bound_tr(__x)); } 12329: 12329: template 12329: auto 12329: upper_bound(const _Kt& __x) const 12329: -> decltype(iterator(_M_t._M_upper_bound_tr(__x))) 12329: { return iterator(_M_t._M_upper_bound_tr(__x)); } 12329: # 879 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: std::pair 12329: equal_range(const key_type& __x) 12329: { return _M_t.equal_range(__x); } 12329: 12329: std::pair 12329: equal_range(const key_type& __x) const 12329: { return _M_t.equal_range(__x); } 12329: 12329: 12329: template 12329: auto 12329: equal_range(const _Kt& __x) 12329: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 12329: { return pair(_M_t._M_equal_range_tr(__x)); } 12329: 12329: template 12329: auto 12329: equal_range(const _Kt& __x) const 12329: -> decltype(pair(_M_t._M_equal_range_tr(__x))) 12329: { return pair(_M_t._M_equal_range_tr(__x)); } 12329: 12329: 12329: 12329: template 12329: friend bool 12329: operator==(const multiset<_K1, _C1, _A1>&, 12329: const multiset<_K1, _C1, _A1>&); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: template 12329: friend bool 12329: operator< (const multiset<_K1, _C1, _A1>&, 12329: const multiset<_K1, _C1, _A1>&); 12329: 12329: }; 12329: # 970 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: template 12329: inline bool 12329: operator==(const multiset<_Key, _Compare, _Alloc>& __x, 12329: const multiset<_Key, _Compare, _Alloc>& __y) 12329: { return __x._M_t == __y._M_t; } 12329: # 1008 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: template 12329: inline bool 12329: operator<(const multiset<_Key, _Compare, _Alloc>& __x, 12329: const multiset<_Key, _Compare, _Alloc>& __y) 12329: { return __x._M_t < __y._M_t; } 12329: 12329: 12329: template 12329: inline bool 12329: operator!=(const multiset<_Key, _Compare, _Alloc>& __x, 12329: const multiset<_Key, _Compare, _Alloc>& __y) 12329: { return !(__x == __y); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>(const multiset<_Key,_Compare,_Alloc>& __x, 12329: const multiset<_Key,_Compare,_Alloc>& __y) 12329: { return __y < __x; } 12329: 12329: 12329: template 12329: inline bool 12329: operator<=(const multiset<_Key, _Compare, _Alloc>& __x, 12329: const multiset<_Key, _Compare, _Alloc>& __y) 12329: { return !(__y < __x); } 12329: 12329: 12329: template 12329: inline bool 12329: operator>=(const multiset<_Key, _Compare, _Alloc>& __x, 12329: const multiset<_Key, _Compare, _Alloc>& __y) 12329: { return !(__x < __y); } 12329: 12329: 12329: 12329: template 12329: inline void 12329: swap(multiset<_Key, _Compare, _Alloc>& __x, 12329: multiset<_Key, _Compare, _Alloc>& __y) 12329: noexcept(noexcept(__x.swap(__y))) 12329: { __x.swap(__y); } 12329: 12329: 12329: # 1073 "/usr/include/c++/12/bits/stl_multiset.h" 3 12329: 12329: } 12329: # 63 "/usr/include/c++/12/set" 2 3 12329: # 23 "/usr/include/boost/program_options/options_description.hpp" 2 3 4 12329: # 36 "/usr/include/boost/program_options/options_description.hpp" 3 4 12329: namespace boost { 12329: 12329: namespace program_options { 12329: # 48 "/usr/include/boost/program_options/options_description.hpp" 3 4 12329: class option_description { 12329: public: 12329: 12329: option_description(); 12329: # 77 "/usr/include/boost/program_options/options_description.hpp" 3 4 12329: option_description(const char* name, 12329: const value_semantic* s); 12329: 12329: 12329: 12329: option_description(const char* name, 12329: const value_semantic* s, 12329: const char* description); 12329: 12329: virtual ~option_description(); 12329: 12329: enum match_result { no_match, full_match, approximate_match }; 12329: 12329: 12329: 12329: 12329: match_result match(const std::string& option, bool approx, 12329: bool long_ignore_case, bool short_ignore_case) const; 12329: # 104 "/usr/include/boost/program_options/options_description.hpp" 3 4 12329: const std::string& key(const std::string& option) const; 12329: # 114 "/usr/include/boost/program_options/options_description.hpp" 3 4 12329: std::string canonical_display_name(int canonical_option_style = 0) const; 12329: 12329: const std::string& long_name() const; 12329: 12329: const std::pair long_names() const; 12329: 12329: 12329: const std::string& description() const; 12329: 12329: 12329: shared_ptr semantic() const; 12329: 12329: 12329: std::string format_name() const; 12329: 12329: 12329: 12329: std::string format_parameter() const; 12329: 12329: private: 12329: 12329: option_description& set_names(const char* name); 12329: 12329: 12329: 12329: 12329: 12329: std::string m_short_name; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: std::vector m_long_names; 12329: 12329: std::string m_description; 12329: 12329: 12329: 12329: shared_ptr m_value_semantic; 12329: }; 12329: 12329: class options_description; 12329: 12329: 12329: 12329: class options_description_easy_init { 12329: public: 12329: options_description_easy_init(options_description* owner); 12329: 12329: options_description_easy_init& 12329: operator()(const char* name, 12329: const char* description); 12329: 12329: options_description_easy_init& 12329: operator()(const char* name, 12329: const value_semantic* s); 12329: 12329: options_description_easy_init& 12329: operator()(const char* name, 12329: const value_semantic* s, 12329: const char* description); 12329: 12329: private: 12329: options_description* owner; 12329: }; 12329: # 191 "/usr/include/boost/program_options/options_description.hpp" 3 4 12329: class options_description { 12329: public: 12329: static const unsigned m_default_line_length; 12329: 12329: 12329: options_description(unsigned line_length = m_default_line_length, 12329: unsigned min_description_length = m_default_line_length / 2); 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: options_description(const std::string& caption, 12329: unsigned line_length = m_default_line_length, 12329: unsigned min_description_length = m_default_line_length / 2); 12329: 12329: 12329: 12329: void add(shared_ptr desc); 12329: 12329: 12329: 12329: 12329: 12329: 12329: options_description& add(const options_description& desc); 12329: 12329: 12329: 12329: unsigned get_option_column_width() const; 12329: 12329: public: 12329: 12329: 12329: 12329: 12329: 12329: 12329: options_description_easy_init add_options(); 12329: 12329: const option_description& find(const std::string& name, 12329: bool approx, 12329: bool long_ignore_case = false, 12329: bool short_ignore_case = false) const; 12329: 12329: const option_description* find_nothrow(const std::string& name, 12329: bool approx, 12329: bool long_ignore_case = false, 12329: bool short_ignore_case = false) const; 12329: 12329: 12329: const std::vector< shared_ptr >& options() const; 12329: 12329: 12329: 12329: 12329: friend std::ostream& operator<<(std::ostream& os, 12329: const options_description& desc); 12329: 12329: 12329: 12329: void print(std::ostream& os, unsigned width = 0) const; 12329: 12329: private: 12329: 12329: 12329: 12329: 12329: 12329: typedef std::map::const_iterator name2index_iterator; 12329: typedef std::pair 12329: approximation_range; 12329: 12329: 12329: 12329: std::string m_caption; 12329: const unsigned m_line_length; 12329: const unsigned m_min_description_length; 12329: 12329: 12329: 12329: 12329: std::vector< shared_ptr > m_options; 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: std::vector belong_to_group; 12329: 12329: 12329: std::vector< shared_ptr > groups; 12329: 12329: }; 12329: 12329: 12329: class duplicate_option_error : public error { 12329: public: 12329: duplicate_option_error(const std::string& xwhat) : error(xwhat) {} 12329: }; 12329: }} 12329: # 16 "/usr/include/boost/program_options.hpp" 2 3 4 12329: # 1 "/usr/include/boost/program_options/positional_options.hpp" 1 3 4 12329: # 19 "/usr/include/boost/program_options/positional_options.hpp" 3 4 12329: namespace boost { namespace program_options { 12329: # 36 "/usr/include/boost/program_options/positional_options.hpp" 3 4 12329: class positional_options_description { 12329: public: 12329: positional_options_description(); 12329: 12329: 12329: 12329: 12329: 12329: 12329: positional_options_description& 12329: add(const char* name, int max_count); 12329: 12329: 12329: 12329: 12329: unsigned max_total_count() const; 12329: 12329: 12329: 12329: 12329: 12329: const std::string& name_for_position(unsigned position) const; 12329: 12329: private: 12329: 12329: 12329: 12329: std::vector m_names; 12329: std::string m_trailing; 12329: }; 12329: 12329: }} 12329: # 17 "/usr/include/boost/program_options.hpp" 2 3 4 12329: # 1 "/usr/include/boost/program_options/parsers.hpp" 1 3 4 12329: # 11 "/usr/include/boost/program_options/parsers.hpp" 3 4 12329: # 1 "/usr/include/boost/program_options/option.hpp" 1 3 4 12329: # 14 "/usr/include/boost/program_options/option.hpp" 3 4 12329: namespace boost { namespace program_options { 12329: # 23 "/usr/include/boost/program_options/option.hpp" 3 4 12329: template 12329: class basic_option { 12329: public: 12329: basic_option() 12329: : position_key(-1) 12329: , unregistered(false) 12329: , case_insensitive(false) 12329: {} 12329: basic_option(const std::string& xstring_key, 12329: const std::vector< std::string> &xvalue) 12329: : string_key(xstring_key) 12329: , position_key(-1) 12329: , value(xvalue) 12329: , unregistered(false) 12329: , case_insensitive(false) 12329: {} 12329: 12329: 12329: 12329: std::string string_key; 12329: 12329: 12329: 12329: 12329: 12329: 12329: int position_key; 12329: 12329: std::vector< std::basic_string > value; 12329: 12329: 12329: std::vector< std::basic_string > original_tokens; 12329: 12329: 12329: 12329: 12329: 12329: bool unregistered; 12329: 12329: 12329: 12329: bool case_insensitive; 12329: }; 12329: typedef basic_option option; 12329: typedef basic_option woption; 12329: 12329: }} 12329: # 12 "/usr/include/boost/program_options/parsers.hpp" 2 3 4 12329: # 1 "/usr/include/boost/program_options/detail/cmdline.hpp" 1 3 4 12329: # 12 "/usr/include/boost/program_options/detail/cmdline.hpp" 3 4 12329: # 1 "/usr/include/boost/program_options/cmdline.hpp" 1 3 4 12329: # 9 "/usr/include/boost/program_options/cmdline.hpp" 3 4 12329: namespace boost { namespace program_options { namespace command_line_style { 12329: # 26 "/usr/include/boost/program_options/cmdline.hpp" 3 4 12329: enum style_t { 12329: 12329: allow_long = 1, 12329: 12329: allow_short = allow_long << 1, 12329: 12329: allow_dash_for_short = allow_short << 1, 12329: 12329: allow_slash_for_short = allow_dash_for_short << 1, 12329: 12329: 12329: 12329: 12329: 12329: 12329: long_allow_adjacent = allow_slash_for_short << 1, 12329: 12329: 12329: long_allow_next = long_allow_adjacent << 1, 12329: 12329: 12329: short_allow_adjacent = long_allow_next << 1, 12329: 12329: 12329: short_allow_next = short_allow_adjacent << 1, 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: allow_sticky = short_allow_next << 1, 12329: 12329: 12329: 12329: 12329: 12329: allow_guessing = allow_sticky << 1, 12329: 12329: 12329: long_case_insensitive = allow_guessing << 1, 12329: 12329: 12329: short_case_insensitive = long_case_insensitive << 1, 12329: 12329: 12329: case_insensitive = (long_case_insensitive | short_case_insensitive), 12329: 12329: 12329: 12329: allow_long_disguise = short_case_insensitive << 1, 12329: 12329: unix_style = (allow_short | short_allow_adjacent | short_allow_next 12329: | allow_long | long_allow_adjacent | long_allow_next 12329: | allow_sticky | allow_guessing 12329: | allow_dash_for_short), 12329: 12329: default_style = unix_style 12329: }; 12329: }}} 12329: # 13 "/usr/include/boost/program_options/detail/cmdline.hpp" 2 3 4 12329: 12329: 12329: 12329: 12329: 12329: 12329: 12329: # 1 "/usr/include/boost/function.hpp" 1 3 4 12329: # 21 "/usr/include/boost/program_options/detail/cmdline.hpp" 2 3 4 12329: # 30 "/usr/include/boost/program_options/detail/cmdline.hpp" 3 4 12329: namespace boost { namespace program_options { namespace detail { 12329: # 59 "/usr/include/boost/program_options/detail/cmdline.hpp" 3 4 12329: class cmdline { 12329: public: 12329: 12329: typedef ::boost::program_options::command_line_style::style_t style_t; 12329: 12329: typedef function1, 12329: const std::string&> 12329: additional_parser; 12329: 12329: typedef function1, std::vector&> 12329: style_parser; 12329: # 78 "/usr/include/boost/program_options/detail/cmdline.hpp" 3 4 12329: cmdline(const std::vector& args); 12329: 12329: 12329: cmdline(int argc, const char*const * argv); 12329: 12329: void style(int style); 12329: # 94 "/usr/include/boost/program_options/detail/cmdline.hpp" 3 4 12329: int get_canonical_option_prefix(); 12329: 12329: void allow_unregistered(); 12329: 12329: void set_options_description(const options_description& desc); 12329: void set_positional_options( 12329: const positional_options_description& m_positional); 12329: 12329: std::vector